Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2010, 18:21   #1
Snake_ua
Пользователь
 
Регистрация: 25.09.2007
Сообщений: 66
По умолчанию Список таблиц выбранной базы занести в массив:)

Вообще мне необходимо выбрать таблицы с конкретными названиями.
Допустим есть такие таблицы как
Table1
Table2
Table3
qwerty
Tab
И так далее. Необходимо показать только те таблицы, в именах которых есть строка "Table" (Table1, Table2, Table3).

Код:
ADOConnection1.GetTableNames(ComboBox1.Items, False)
Выберет все таблицы. Думал может занести названия в массив, там отсеить названия и выдать уже необходимый результат. Только не придумаю, как в массив все записать... Если есть вариант попроще с радостью выслушаю
Snake_ua вне форума Ответить с цитированием
Старый 11.08.2010, 19:22   #2
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
Сообщение

Используйте SQL. Если СУБД Firebird,то смотрите http://www.programmersforum.ru/showthread.php?t=108965 - я уже задавал
подобный вопрос.
Просто добавите туда,где WHERE ещё AND (RDB$RELATION_NAME LIKE 'Table%') - показать начинающиеся на Table.
В Delphi-коде чтоб занести имена табличек в массив пишите что-то типа
Код:
...
if ADOQuery1.Active then  ADOQuery1.close;
ADOQuery1.clear;
ADOQuery1.SQL.Add(<Ваш запрос>);
ADOQuery1.Open;
while not ADOQuery1.eof do//пока не кончились записи в запросе
begin
   ...
   ЭлементМассиваТакой-то:=ADOQuery1.FieldByName('RDB$RELATION_NAME');
  //получаем по имени значение для Field
   ...
end;
...
P.S.
ADOQuery не юзаю,но думаю от простого Query св-ва несильно отличаются.
Темы для WordPress. Русские WordPress шаблоны
Alexei91 вне форума Ответить с цитированием
Старый 12.08.2010, 14:00   #3
Snake_ua
Пользователь
 
Регистрация: 25.09.2007
Сообщений: 66
По умолчанию

вот я гоню)) нет что-бы почитать доку по MySQL)) спасибо, натолкнули на нужные мысли))
Код:
show tables from test like 'Table%'
Выводит список нужных таблиц)) Собственно теперь возможно нет необходимости вносить в массив. Просто первоначальная мысль была, это взять названия таблиц, внести в массив, строковыми функциями отсеять нужные имена таблиц, а потом внести эти данные в ComboBox... Мда) Теперь вопрос как занести эти имена в ComboBox, ведь если я использую
Код:
ADOConnection1.GetTableNames(ComboBox1.Items, False);
то в ComboBox-e будут названия всех таблиц... Буду думать)

После некоторого перерыва вернулся к проге. А тут я не понимаю, как мне внести названия таблиц в мой DBComboBox.
Ну вот код с запросом
Код:
ADOQuery1.SQL.Add('SHOW TABLES FROM test LIKE "Table%"');
Если использовать "FieldByName", то мне это ничего не даст, ведь FieldByName используется для выдачи данных полей таблицы, но не как список таблицы с БД... Подскажите, как реализовать задачу...

нет, конечно есть мысль создать таблицу и записать туда имена всех необходимых мне таблиц... Но это как-то не то

Последний раз редактировалось artemavd; 13.08.2010 в 05:49.
Snake_ua вне форума Ответить с цитированием
Старый 13.08.2010, 05:50   #4
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
Сообщение

Цитата:
почитать доку по MySQL
- правильная мысль.
Про SHOW TABLES забудьте,оно вам не поможет. Найдите инф-ю о системных таблицах MySQL - а точнее как через них получить имена
пользовательских таблиц
. Далее юзаете FieldByName и всё у вас получится
Вот документация http://www.mysql.ru
P.S.
Я использую Firebird,потому по системным таблицам MySQL ничего
конкретного сказать не могу,но думаю MySQL от Firebird по некоторым
базовым принципам не сильно отличается.
Темы для WordPress. Русские WordPress шаблоны

Последний раз редактировалось Alexei91; 13.08.2010 в 06:02.
Alexei91 вне форума Ответить с цитированием
Старый 13.08.2010, 05:51   #5
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
А тут я не понимаю, как мне внести названия таблиц в мой DBComboBox.
Заносите не DBComboBox, а в обычный ComboBox
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить список таблиц базы SQL Rossoman Microsoft Office Excel 0 06.05.2010 17:39
Список таблиц выбранной базы занести в ComboBox. hk47 БД в Delphi 6 19.04.2010 10:13
Занести слова в массив [Delphi] Lemo Помощь студентам 4 20.12.2009 18:03
Требуется занести данные с клавиатуры в массив записей, упорядочить его по фамилиям в алфавитном порядке Ukkas Паскаль, Turbo Pascal, PascalABC.NET 3 17.01.2009 19:22
Копирование таблиц из одной базы в другую KuH БД в Delphi 7 27.09.2007 15:18