Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > получения списка таблиц


Автор: Step 14.1.2003, 23:30
имеется псевдоним, как с помощь sql можно получить список таблиц, и полей таблицы. или с помощью чего это можно сделать из программы.

Автор: Vit 15.1.2003, 00:41
Если через BDE то через объект session, если через ADO то используй объект TADOConnection

Автор: AntonSaburov 15.1.2003, 01:25
Кроме этого в каждом SQL-сервер есть системные таблицы, которые содержат такой список. Но в принципе то, что предложил Vit, более универсально.

Автор: Medved 15.1.2003, 02:10
ADOConnection1.GetTableNames(ListBox1.Items, False);

Session1.GetTableNames(текущий алиас, '*.*' False, False, ListBox1.Items);

(Реализация в Delphi)

Автор: Step 16.1.2003, 03:01
Цитата
ADOConnection1.GetTableNames(ListBox1.Items, False);

Session1.GetTableNames(текущий алиас, '*.*' False, False, ListBox1.Items);

(Реализация в Delphi)


Распиши что, и как работает

Автор: Vit 16.1.2003, 03:10
А что тут расписывать, поставь на форму ListBox1, в Uses добавь dbtables, подставь нужный Alias и запусти этот код...

Автор: Step 16.1.2003, 03:28
а если без АДО

Автор: Vit 16.1.2003, 04:03
Что значит без ADO?!!


Ну взял бы, указал, вначале, через какую систему ты обращаешься к базам данных? - ADO, DAO, BDE, ODBC, RDO, DBExpress, JDBC, DOA и т.д.
Стандартного способа нет. Зависит от провайдера баз данных, мы же не телепаты! Узнать что ты имеешь ввиду не можем, как именно ты коннектишься к базе данных мы не знаем. Если тебя интересует команда SQL, то таковой нет.

Через ADO это делается:  
ADOConnection1.GetTableNames(ListBox1.Items, False);

Через BDE это делается:
Session1.GetTableNames(текущий алиас, '*.*' False, False, ListBox1.Items);

PS. Тебе несколько раз дали варианты ответов, неужели нельзя ткнуть F1 на указанных функциях и прочитать чтО они делают и если что-то непонятно то именно это и спрашивать, а тут у меня впечатление, что ты одним глазом взглянул и решил что непонятно...?


Автор: Vit 16.1.2003, 04:09
Пример получения списка полей таблицы я только что написал в другой топик: http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?act=ST;f=2;t=5755 (не совсем об этом, но там используется), вообще-то  объект TFields содержит в себе список всех полей. Сам  объект TFields это свойство таблицы или квери. Так что пройти по всем полям будет что-то типа:

for i:=0 to table1.fieldcount-1 do
table1.fields[i].fieldname - имя поля, делай с ним что хочешь.

Это не полный код, просто пример...

Автор: Oleg 16.1.2003, 05:56
А какая вообще БД? Действительно, если какой-нибудь SQL- сервер,
оракл или мискл, то лучше в словарь данных обратиться.

Автор: Medved 18.1.2003, 11:58
Если Oracle то выполнить запрос:

SQL
SELECT * FROM all_all_tables

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)