На этом шаге мы рассмотрим пример приложения, иллюстрирующего использование
метода GetTableNames.
Рассматриваемое приложение позволяет с помощью метода GetTableNames компонента AdoConnection1, получить имена всех таблиц базы данных. Имена таблиц помещаются в список ListBox1 при нажатии на кнопку "Показать таблицы". Обработчик этого события имеет следующий вид:
procedure TForm1.Button1Click(Sender: TObject); Begin AdoConnection1.GetTableNames(ListBox1.Items); End;
Рис. 1. Приложение в работе
При нажатии на кнопку "Посмотреть выбранную таблицу" таблица, выделенная в списке ListBox1 отображается в сетке DBGrid1, при этом используется компонент-набор ADODataSet1. Если в списке ListBox1 не выделена ни одна таблица, то выводится соответствующее сообщение.
Обработчик нажатия кнопки "Посмотреть выбранную таблицу" имеет следующий вид:
procedure TForm1.Button2Click(Sender: TObject); var i : Byte; Fl : Boolean; Begin Fl:=False; if (ListBox1.items.Count=0) then MessageDlg('Нет таблиц!',mtInformation,[mbOK],0) //Если в списке ListBox1 нет таблиц, то выводим соответствующее сообщение else Begin for i:=Listbox1.items.Count-1 downto 0 do if Listbox1.Selected[i] then //Проверяем, какой элемент списка выделен Begin Fl:=True; AdoDataSet1.Close; //Закрываем набор данных AdoDataSet1.CommandText:=St+Listbox1.items[i]; //Создаем команду ADODataSet1.Open; //Открываем набор данных End; if (not Fl) then MessageDlg('Таблица не выбрана!',mtInformation,[mbOK],0) End; End;
Cвойство CommandText компонента AdoDataSet1 формируется из строки St и названия таблицы, которое берется из списка ListBox1. Строка St получает значение "select * from" во время создания формы:
procedure TForm1.FormCreate(Sender: TObject); Begin st:='select * from '; End;
При уничтожении формы ADO-набор закрывается:
procedure TForm1.FormDestroy(Sender: TObject); Begin AdoDataSet1.Close; End;
Текст этого приложения можно взять здесь. Файлы базы данных, используемой в приложении можно взять здесь.
На следующем шаге мы рассмотрим пример приложения, осуществляющего сортировку записей.