Библиотека knigago >> Компьютеры: Разработка ПО >> Программирование: прочее >> S. D. F.


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1225, книга: Исход
автор: Анатолий Москаленко

Анатолий Москаленко Боевая фантастика «Исход» - захватывающий и напряженный роман, погружающий читателя в мир постапокалипсиса. Действие происходит в опустошенной войной России, где выжившие борются за ресурсы и пытаются сохранить свою человечность. В центре сюжета - Андрей Марченко, бывший военный, который возглавляет отряд выживших в поисках нового дома. Группе предстоит столкнуться с опасными мутантами, безжалостными бандами и суровыми климатическими условиями, подвергая испытаниям их...

W Cat - S. D. F.

S. D. F.
Книга - S. D. F..  W Cat  - прочитать полностью в библиотеке КнигаГо
Название:
S. D. F.
W Cat

Жанр:

Базы данных, Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Pascal, Delphi, Lazarus и т.п.

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "S. D. F."

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

Читаем онлайн "S. D. F.". [Страница - 6]

ListBox1 do

100   for i := 0 to Items.Count - 1 do

110     PrintFields(Items[i], LHTML);

120   LHTML.SaveToFile(Path+’~.htm’);

130   Web.Navigate(Path+’~.htm’);

140   PageControl1.ActivePage := TabSheet2;

150   LHTML.Free;

160 end;

- Стр. 70 создаем листочек HTML

- Стр. 80 записываем заголовочную часть HTML

- 100-110 циклически заносим в HTML нужную информацию

- Стр. 120 Вот тут можно было пойти разными путями, я пошел простейшим сохраняю HTML файл в рабочей папке.

- Стр. 130 Отображаю готовый файл в навигаторе.

* Хорошо, копаем глубже…

- Пожалуйста:

010 procedure PrintFields(table:string; LHTML : TStringList);

020 var

030  S : string;

040 begin

050  LHTML.Add('<h2>'+table+'</h2>');

060 with DataM.IBSQL1 do

070  begin

080     Close;

090     SQL.Clear;

100      SQL.Add('select R.RDB$FIELD_POSITION, R.RDB$FIELD_NAME, '+

110 'F.RDB$FIELD_LENGTH, F.RDB$FIELD_TYPE '+

120 'from RDB$FIELDS F, RDB$RELATION_FIELDS R '+

130 'where F.RDB$FIELD_NAME = R.RDB$FIELD_SOURCE and R.RDB$SYSTEM_FLAG = 0 '+

140  'and RDB$RELATION_NAME = ''' + table +''' '+

150 'order by R.RDB$RELATION_NAME, R.RDB$FIELD_POSITION');

160     ExecQuery;

170     LHTML.Add('<center><table><tr>');

180     LHTML.Add('<th>Position</th>');

190     LHTML.Add('<th>Name</th>');

200     LHTML.Add('<th>Length</th>');

210     LHTML.Add('<th>Type</th>');

220     LHTML.Add('</tr>');

230     while not EOF do

240      begin

250       S := '<tr><td>' +Fields[0].AsString + '</td>'+

260       '<td>'+ trim(Fields[1].AsString)+'</td>'+

270       '<td>'+ trim(Fields[2].AsString) +'</td>'+

280       '<td>'+ FieadType(Fields[3].AsInteger)+'</td></tr>';

290       LHTML.Add(s);

300       Next;

310      end;

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

330  end;

340 end;

* А я стал привыкать к этим крокозябрам.

- Тем более, что текст во многом повторяется.

- Как видишь, на экран выдается название таблицы, а затем таблица с описанием полей.

* Погоди! А что это в 280 строке?

- О, кота то я, и не заметил.

function FieadType(n:integer):string;

begin

 case n of

  7  : result := 'smallint';

  8  : result := 'integer';

  9  : result := 'quad';

  10 : result := 'float';

  11 : result := 'd_float';

  12 : result := 'date';

  13 : result := 'time';

  14 : result := 'char';

  27 : result := 'double';

  35 : result := 'date';

  37 : result := 'varchar';

 261 : result := 'blob';

 else  result := IntToStr(n)+' ?';

 end; // case

end;

В результате отобразится, нечто такое:

Книгаго: S. D. F.. Иллюстрация № 4

- * -

- Ну, и чего так долго, конечно, пива много не бывает, но…

* В общем-то, получилось, но никак не могу скопировать получившееся.

- Да, есть такая задача. Вставь в самом конце (перед end.) в файле Unit1:

initialization

  OleInitialize(nil);

finalization

  OleUninitialize;

А в самом начале этого файла вставь ActiveX в разделе uses.

* Так, просто! Да что же это такое. Просто хочется рвать и метать!!

- Это Windows.

* Ну, что теперь отображаем данные?

- Нет, не к спеху, да и отображать еще нечего, давай отдохни, а я подготовлюсь к последнему рывку.

«Продолжение следует»

Последний? Рывок к ББД


- Предлагаю вернуться к выполнению SQL запроса.

- Бывают запросы SELECT и все остальные. Результат выполнения SELECT – будем выдавать в закладку result,  а остальные просто выполнять.

- Переделываем Button1Click:

010 procedure TFMain.Button1Click(Sender: TObject);

020 begin  // кнопка run SQL

030    RunSQL(MakeSQL);  // выполение команды SQL

040 end;

- Пойдем дальше.

- Теперь можно заняться кнопочкой «Show Data»

010 procedure TFMain.Button5Click(Sender: TObject);

020 var

030  i : integer;

040  S : string;

050 begin  // Show Data

060  with CheckListBox1 do

070   begin // составляем список полей

080    if Items.Count = 0 then exit;  // если список пуст - уходим

090     S := 'SELECT ';

100    for i := 0 to Items.Count - 1 do // список полей вставляем в запрос

110      if  Checked[i] then

120       S := S + LowerCase(Items[i]) + ', ';

130    end; // with CheckListBox1

140  delete(S, length(S)-1, 2);

150  Memo1.Clear;

160  Memo1.Lines.Add(S);

170  S := 'FROM '+ LowerCase( ListBox1.Items[ ListBox1.ItemIndex] );

180  Memo1.Lines.Add(S);

190  RunSQL( MakeSQL);

200  end;

- Тут все должно быть ясно: кнопка вырабатывает команду SELECT для полей отмеченных галочкой и распечатывает результат.

* Ну, как теперь-то все готово.

- Вот же шило в одном месте. Ладно, следующий пункт:

Тестирование


- Как ты помнишь, тренироваться мы будем по книге Мартина Грубера «Понимание SQL»[1], при потребности будем поглядывать в «Firebird. Руководство разработчика баз данных» Хелен Борри[2].

* Ну и в интернете найдется масса материала.

- Для нашей игры понадобится база с определенными таблицами, полюбуйся на них приложении к [1].

* Не сказать, что 3 таблицы это очень много, но…

- Я так понимаю, что тебе лень, а лень двигатель прогресса.

- В данном случае, я тебе помогу…

- На закладке SQL ставим еще одну кнопку «Run SQL by List».

- Будут выполнятся запросы записанные в текстовом файле.

- Каждый запрос должен заканчиваться «;», допускается перенос --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.