Чтение онлайн

на главную - закладки

Жанры

Cat W

Шрифт:

– Давай, это исправим:

010 procedure PrintSELECT(S:string);

020 var

030 i : integer;

040 a : string;

050 LHTML : TStringList;

060 begin

070 LHTML := TStringList.Create;

080 HTMLHead(LHTML);

090 LHTML.Add('<center> '+ s + '');

100 with DataModule2.IBSQL1 do

110 if RecordCount > 0 then

120 BEGIN

130 LHTML.Add('<h2>'+UniqueRelationName+'</h2>');

140 LHTML.Add('<center><table cellspacing=0 cellpadding=0 ><tr>');

150 S := ''; //

формирование заголовка таблицы

160 for i := 0 to Current.Count-1 do

170 S := S + '<th>'+ Fields[i].Name +'</th>';

180 S := S + '</tr>'; // конец заголовка таблицы

190 LHTML.Add(S); // печать заголовка таблицы

200 while not EOF do

210 begin

220 S := '<tr>'; //

230 for i := 0 to Current.Count-1 do

240 begin // формирование строки данных

250 a := Fields[i].AsString;

260 if a = '' then a := ' - ';

270 S := S + '<td>'+a+'</td>';

280 end; // for

290 Next;

300 S := S + '</tr>';

310 LHTML.Add(S);

320 end; // while

330 LHTML.Add('</table></center>');

340 END

350 ELSE

360 LHTML.Add('<h3> EMPTY</h3>');

370 LHTML.Add('</body>');

380 LHTML.SaveToFile(Path+'~.htm');

390 Web.Navigate(Path+'~.htm');

400 PageControl1.ActivePageIndex := 2;

410 LHTML.Free;

420 end;

* Не маленький кусочек.

– Но очень важный кусочек, пожалуй, это сердце программы. Я его многократно переписывал, теперь стыдно показать ранние версии, а сейчас я горжусь написанным. Только, некомпетентные люди считают труд программиста скучным, безэмоциональным, нет эмоции, под внешним спокойствием, бушуют…

* Да ладно, расхвастался, к делу. В начале готовится заголовок HTML.

– Ну это просто:

procedure HTMLHead(LHTML : TStringList);

begin

LHTML.add('<html><head>');

LHTML.add('<meta http-equiv=<Content-Type< content=<text/html; charset=windows-1251<>');

LHTML.add('<style>');

 LHTML.add('table {border:1px solid #c3c3c3; border-collapse:collapse;');

 LHTML.add(' text-align: center; width:90%;}');

 LHTML.add('table th {background-color:#e5eecc; border:1px solid #c3c3c3;');

 LHTML.add('padding:3px; vertical-align:top; }');

 LHTML.add('table td {border:1px solid #c3c3c3; padding:3px; vertical-align:top;');

 LHTML.add('</style></head><body>');

end;

– Тут, я ничего объяснять не буду HTML сегодня не наша тема.

В цикле стр 200 – 320 выдается результат предшествующего запроса. Остальное все просто.

* Опять, таки не вижу, чему тут гордится.

– Мартышка, к старости, слаба глазами, стала? У меня есть предложение, после того как мы закончим разговор, отложи этот файл в далекую папку, и через пол года, напиши такую же программу самостоятельно, пользуясь справочниками, интернетом, но не этим текстом. Вот тогда, посмотрим.

* Хорошо! Спорим, что я напишу лучше!

– Вполне возможно. Я буду только рад. Выиграет только вселенский разум.

* Ладно, успокоились, что у нас еще есть неясного.

* А, что такое MakeSQL – по смыслу делается строка запроса?

– Да, это очень простая функция, и возможно это надо еще упростить…

010 function MakeSQL:string;

020 var

030 i : integer;

040 begin

050 result := '';

060 with FMain.Memo1 do

070 for i := 0 to Lines.Count - 1 do

080 if trim(Lines[i]) <> '' then

090 begin

100 FMain.His.Lines.Add(Lines[i]);

110 result := result + Lines[i] + ' ';

120 end;

130 result := trim(result);

140 end;

– Все, что находится в Memo1 записывается в одну строку(стр. 110) и одновременно сохраняется в истории(стр. 100).

* Так значит мы можем теперь выполнять SQL запросы?

– И да, и нет.

* ??

– Выполнять запросы можем, но не всегда увидим результат. Ну, еще не все готово.

* Так давай! Беги, покупай, эти тр-ан-зис-то-ры!

– Не спеши. Выполним, те SQL, что запланированы.

– Но сначала еще одна мелочь. Сделай обработчик для кнопки Show DB это на самой первой закладке.

procedure TFMain.Button3Click(Sender: TObject);

begin // Show DB

 ShowTables;

end;

???????

Первые запросы

– Ну, что, давай попробуем.

– Открой или сделай новую базу и выполни следующий запрос:

CREATE TABLE Salespeople

( snum integer,

sname char (10),

city char (10),

comm decimal );

* Говорит что все OK.

– Перейди на первую закладку и нажми кнопку Show DB.

* Ура!! Заработало!!

– Рано кричать, закрой программу, включи опять и открой твою базу.

* Есть, таблица сразу отобразилась.

* Есть вопросик, для чего у нас на форме CheckListBox1 и закладка Result.

– Ну, с итоговой закладкой погоди, а вот по первому пункту поболтаем.

Поделиться:
Популярные книги

Вечный. Книга IV

Рокотов Алексей
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга IV

Альмар. Мой новый мир. Дилогия

Ищенко Геннадий Владимирович
Альмир
Фантастика:
фэнтези
попаданцы
8.09
рейтинг книги
Альмар. Мой новый мир. Дилогия

Идеальный мир для Лекаря 15

Сапфир Олег
15. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 15

Газлайтер. Том 19

Володин Григорий Григорьевич
19. История Телепата
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Газлайтер. Том 19

Последний из рода Демидовых

Ветров Борис
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Последний из рода Демидовых

Страж Тысячемирья

Земляной Андрей Борисович
5. Страж
Фантастика:
боевая фантастика
альтернативная история
фэнтези
5.00
рейтинг книги
Страж Тысячемирья

Кристалл Альвандера

Садов Сергей Александрович
1. Возвращенные звезды
Фантастика:
научная фантастика
9.20
рейтинг книги
Кристалл Альвандера

Кодекс Крови. Книга ХII

Борзых М.
12. РОС: Кодекс Крови
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Кодекс Крови. Книга ХII

Законы Рода. Том 11

Андрей Мельник
11. Граф Берестьев
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 11

Черный дембель. Часть 2

Федин Андрей Анатольевич
2. Черный дембель
Фантастика:
попаданцы
альтернативная история
4.25
рейтинг книги
Черный дембель. Часть 2

Хроники хвостатых: Ну мы же биджу...

Rana13
Фантастика:
фэнтези
5.00
рейтинг книги
Хроники хвостатых: Ну мы же биджу...

Ваше Сиятельство 7

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Стратегия обмана. Трилогия

Ванина Антонина
Фантастика:
боевая фантастика
5.00
рейтинг книги
Стратегия обмана. Трилогия

Одержимый

Поселягин Владимир Геннадьевич
4. Красноармеец
Фантастика:
боевая фантастика
5.00
рейтинг книги
Одержимый