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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2010, 00:06   #1
MaNser
 
Регистрация: 14.05.2010
Сообщений: 4
Восклицание ComboBox -> таблица(ы)

Добрый вечер. Возникли трудности со следующим, при выборе значения в ComboBox сформировать запрос отображения в DBGrid. Т. е. при выборе значения из комбобох в грид должна загружатся БД, которая будет привязана только етому значению комбобох`а. Соответственно при смене значения комбобох`а менялась и БД в гриде. Возможно ли ето? Есть ли альтернативы? Буду рад любой помощи :-)
MaNser вне форума Ответить с цитированием
Старый 15.05.2010, 06:38   #2
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Если я понял правильно, то подразумевалось, что при выборе какойто позиции в combobox из неизвестной БД в неизвестный датасет должен быть загружен набор данных из неизвестной таблицы.
Нужно знать что за БД, и какие компонентны используем.

Пока вижу както так
ComboBox заполняем именами таблиц (в цикле, или просто запрашиваем их список и передаём в ComboBox, зависит от БД и компонентов),
меняем стиль
Код:
ComboBox.Style:=csDropDownList;
при выборе значения (событие onSelect) запрашиваем данные
Код:
Qry.close;
Qry.SQL.Text:='SELECT * FROM '+ComboBox.text;
Qry.open;
vovk вне форума Ответить с цитированием
Старый 15.05.2010, 17:58   #3
MaNser
 
Регистрация: 14.05.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
Если я понял правильно, то подразумевалось, что при выборе какойто позиции в combobox из неизвестной БД в неизвестный датасет должен быть загружен набор данных из неизвестной таблицы.
Нужно знать что за БД, и какие компонентны используем.

Пока вижу както так
ComboBox заполняем именами таблиц (в цикле, или просто запрашиваем их список и передаём в ComboBox, зависит от БД и компонентов),
меняем стиль
Код:
ComboBox.Style:=csDropDownList;
при выборе значения (событие onSelect) запрашиваем данные
Код:
Qry.close;
Qry.SQL.Text:='SELECT * FROM '+ComboBox.text;
Qry.open;
БД "Paradox 7", компоненты Query, DataSource.
MaNser вне форума Ответить с цитированием
Старый 15.05.2010, 18:31   #4
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

если Paradox то это значит что куча табличек и все где угодно, если в одной папке, то хорошо, но в любом случае придётся их искать, так что готовимся использовать FindFirst и FindNext если в одной папке то поиск таблиц если естль добавляем имя..

Извините сейчас с примерами ответить немогу, если пример нужен будет то сделаю, но только в понедельник не раньше..
vovk вне форума Ответить с цитированием
Старый 16.05.2010, 21:18   #5
MaNser
 
Регистрация: 14.05.2010
Сообщений: 4
По умолчанию

Цитата:
Сообщение от vovk Посмотреть сообщение
если Paradox то это значит что куча табличек и все где угодно, если в одной папке, то хорошо, но в любом случае придётся их искать, так что готовимся использовать FindFirst и FindNext если в одной папке то поиск таблиц если естль добавляем имя..

Извините сейчас с примерами ответить немогу, если пример нужен будет то сделаю, но только в понедельник не раньше..
Все таблицы будут находится в 1ой папке. Было бы интересно взглянуть на пример реализации.
MaNser вне форума Ответить с цитированием
Старый 18.05.2010, 11:14   #6
vovk
!=
Участник клуба
 
Аватар для vovk
 
Регистрация: 08.09.2008
Сообщений: 1,751
По умолчанию

Вчера не смог, да и чтото подумал ведь у BDE ест компонент Tdatabase
и сделать можно так

Код:
with TDatabase.Create(Self) do
begin
 try
  DatabaseName:=ExtractFilePath(paramstr(0));
  GetTableNames(ComboBox1.Items);
 finally
   Free;
 end;
end;

а если поиском то так
Код:
Procedure get_table_paradox(path_:string;list_:TStrings);
 var
 F: TSearchRec;
 i:integer;
 begin
 i := FindFirst(path_+'*.db',faAnyFile, F);
 while i=0 do
    begin
     list_.Add(f.name);
     i := FindNext(F);
    end;
  FindClose(F);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
get_table_paradox(ExtractFilePath(paramstr(0)),combobox1.items);
end;
vovk вне форума Ответить с цитированием
Старый 24.05.2010, 19:01   #7
MaNser
 
Регистрация: 14.05.2010
Сообщений: 4
По умолчанию

Ненужен выбор всех таблиц из папки.. нужен только определенный набор бд... Етот комбобох тоже зависим просто.. Как-то условием наверно..
MaNser вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Таблица в C# (не БД) mopozoff Общие вопросы .NET 6 15.11.2015 00:15
Таблица Namolem Общие вопросы .NET 4 15.05.2010 00:41
таблица artemavd Общие вопросы Delphi 3 23.07.2008 13:56
Не могу внести строку из combobox в combobox!? tacer Помощь студентам 1 30.11.2007 19:45