W Cat - S. D. F.

Здесь есть возможность читать онлайн «W Cat - S. D. F.» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Жанр: Программирование, Базы данных, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

S. D. F.: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «S. D. F.»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Если вам интересен SQL, и знаком Delphi, давайте поразвлекаемся программированием.

S. D. F. — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «S. D. F.», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
';

180 S := S + '

'; // конец заголовка таблицы

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

200 while not EOF do

210 begin

220 S := '

'; //

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

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

250 a := Fields[i].AsString;

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

270 S := S + '

';

280 end; // for

290 Next;

300 S := S + '

';

310 LHTML.Add(S);

320 end; // while

330 LHTML.Add('

'+ Fields[i].Name +'
'+a+'
');

340 END

350 ELSE

360 LHTML.Add('

EMPTY

');

370 LHTML.Add('

');

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('

');

LHTML.add('

<>');

LHTML.add('

');

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(' ');

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.

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

- А пока потренируйся, введи еще пару таблиц, пока это без разницы, ну что-то типа «Коты Герои»(кличка, возраст, степень героизма, аппетит и т.д.) и т.д.

* А как?

- Начинай читать книги по SQL. Я предлагал только играться, (и сделать инструмент для игры) а правила игры вспоминай сам.

- А мне, пора возвращаться к своим, ко… нет к баранам.

Продолжаем клепать ББД

- Итак закладка Structure DB показывает имеющиеся в сей базе таблицы.

- Но, интересно узнать из каких полей состоит таблица.

- Именно эту информацию будет показывать CheckListBox1

* Но, кроме имен полей, хочется знать их типы, размеры и прочее.

- В числе прочей, эта информация появится на накладке Result, но как сказал классик «в очередь, с*ны дети, в очередь».

- Так, мне этот бардак надоел, делаем так, как я привык. Во-первых вставляем новый модуль:

unit gv; // Глобальные переменные

interface

var

Path : string; // Путь к исполняемой программе

implementation

end.

* Да, знатный модуль.

- Смейся, смейся. При помощи этого модуля, я привык такой фокус делать, закачаешься, но сейчас это не к месту.

- Второе: делаем обработчик создания формы:

10 procedure TFMain.FormCreate(Sender: TObject);

20 begin

30 Path := ExtractFileDir(ParamStr(0)) + '\';

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «S. D. F.»

Представляем Вашему вниманию похожие книги на «S. D. F.» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «S. D. F.»

Обсуждение, отзывы о книге «S. D. F.» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x