Шрифт:
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;
В результате отобразится, нечто такое:
– * -
– Ну, и чего так долго, конечно, пива много не бывает, но…
* В общем-то, получилось, но никак не могу скопировать получившееся.
– Да, есть такая задача. Вставь в самом конце (перед 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».
– Будут выполнятся запросы записанные в текстовом файле.
– Каждый запрос должен заканчиваться «;», допускается перенос запроса на несколько строк, не допускается несколько запросов в одной строке.
– Не отображается результат запросов SELECT
– При ошибочном запросе, выполнение списка прекращается.
010 procedure TFMain.Button6Click(Sender: TObject);
020 var
030 i : integer;
040 L : TStringList;
050 S : string;
060 begin // Run SQL by List
070 with OpenDialog1 do
080 begin // подготавливаем диалог
090 Filter := 'File with SQL|*.txt';
100 DefaultExt := 'txt';
110 if Execute then