![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Найти все таблицы базы данных при помощи ADODelphi , Базы данных , ADOНайти все таблицы базы данных при помощи ADO
Оформил: DeeCo //How to retrieve all database tables with ADO unit dbTables; interface uses ADODb; type TTableType = (ttTable, ttView, ttSynonym, ttSystemTable, ttAccessTable); type TTableTypes = set of TTableType; type TTableItem = record ItemName: string; ItemType: string; end; type TTableItems = array of TTableItem; function addFilter(string1, string2: string): string; function ADODbTables(ADOConnection: TADOConnection; types: TTableTypes): TTableItems; implementation function addFilter(string1, string2: string): string; begin if string1 <> '' then Result := string1 + ' or ' + string2 else Result := string2; end; function ADODbTables(ADOConnection: TADOConnection; types: TTableTypes): TTableItems; var ADODataSet: TADODataSet; i: integer; begin ADODataSet := TADODataSet.Create(nil); ADODataSet.Connection := ADOConnection; ADOConnection.OpenSchema(siTables, EmptyParam, EmptyParam, ADODataSet); if (ttTable in types) then ADODataSet.Filter := addFilter(ADODataSet.Filter, '(TABLE_TYPE = ''TABLE'')'); if (ttView in types) then ADODataSet.Filter := addFilter(ADODataSet.Filter, '(TABLE_TYPE = ''VIEW'')'); if (ttSynonym in types) then ADODataSet.Filter := addFilter(ADODataSet.Filter, '(TABLE_TYPE = ''SYNONYM'')'); if (ttSystemTable in types) then ADODataSet.Filter := addFilter(ADODataSet.Filter, '(TABLE_TYPE = ''SYSTEM TABLE'')'); if (ttAccessTable in types) then ADODataSet.Filter := addFilter(ADODataSet.Filter, '(TABLE_TYPE = ''ACCESS TABLE'')'); ADODataSet.Filtered := True; SetLength(Result, ADODataSet.RecordCount); i := 0; with ADODataSet do begin First; while not EOF do begin with Result[i] do begin ItemName := FieldByName('TABLE_NAME').AsString; ItemType := FieldByName('TABLE_TYPE').AsString; end; Inc(i); Next; end; end; ADODataSet.Free; end; end. { Example: create a new project and add a TADOConnection (ADOConnection1), a TButton (Button1) and a TMemo (Memo1); assign a ConnectionString to the TADOConnection component and set "ADOConnection1.Active := True" } procedure TForm1.Button1Click(Sender: TObject); var output: ttableitems; i: integer; begin output := ADODbTables(ADOConnection1, [ttTable, ttView, ttSynonym]); // output := ADODbTables(ADOConnection1, [ttSystemTable, ttAccessTable]); for i := Low(output) to High(output) do begin Memo1.Lines.Add(output[i].ItemName + '---' + output[i].ItemType); end; output := nil; end; Программный код на языке Delphi для извлечения всех таблиц из базы данных Microsoft Access с помощью ActiveX Data Objects (ADO). Основные функции
Реализация
Пример использования В примере кода создана форма с кнопкой, для которой задан строка подключения к Замечания
В целом, этот код предоставляет простой способ извлечения таблиц из базы данных Access с помощью ADO в Delphi. В статье описано, как с помощью компонента ADO в Delphi найти все таблицы базы данных и отобразить их список. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |