Задание №5
1. Откройте новое приложение
2. Поместите на форму следующие компоненты, как показано на рисунке:
TListBox, TQuery, TDataSource, TDBGrid, TMainMenu, (TMenuItem)
3. Определите свойства для объектов:
TQuery –в свойстве DatabaseName установите алиас BCDEMOS, в свойстве Name установите значение FormatQuery, в свойстве SQL select * from :Table
TDataSource –в свойстве Name –dsFormat, в свойстве DataSet –FormatQuery.
TDBGrid – в свойстве DataSource –dsFormat, в свойстве Align –значение alClient
TList – установите в свойстве Align –значение alLeft
4. Для компонента TMainMenu установите в свойстве Items StringTrick1
5. Для события OnCreate формы создайте процедуру. в которой формируется список таблиц БД и этим списком заполняется объект TListBox:
void __fastcall TForm::FormCreate(TObject *Sender)
{
Session->GetTableNames(FormatQuery->DatabaseName, “ “, False, False, ListBox1->Items);
}
6. Затем необходимо создать метод обработки события ListBox1.OnClick:
void __fastcall TForm1::ListBox1Click(TObject *Sender)
{
AnsiString S = ListBox1->Items->Strings[ListBox1->ItemIndex];
S = Format("Select * from %s", OPENARRAY(TVarRec, (S)));
Caption = S;
FormatQuery->Close();
FormatQuery->SQL->Clear();
FormatQuery->SQL->Add(S);
FormatQuery->Open();
}
Добавьте также код метода GetQuery:
AnsiString GetQuery(AnsiString S1, AnsiString S2, int Value)
{
return Format("Select * from %s where %s = %d", OPENARRAY(TVarRec, (S1, S2, Value)));
}
По событию OnClick:
void __fastcall TForm1::StringTrick1Click(TObject *Sender)
{
Caption = GetQuery("Customer", "CustNo", 42);
}
6. Запустите приложение. Убедитесь в его работоспособности.
Контрольные вопросы
1. Как задать параметрический запрос?
2. Как запросы считывать с диска?
3. Как используется функция Format в запросах?