Combobox та список таблиць
ка помістити в комбобокс список таблиць обраної бази?
У чому полягає проблема? У приміщенні рядків у комбобокс, чи визначенні списку таблиць?
1. ставиш коннект на базу 2. виконуєш SELECT * FROM INFORMATION_SCHEMA.TABLES 3. парсиш отриманий датасет і заливаєш куди завгодно.
> Mechanikus (26.03.07 18:09) [2]3. парсиш отриманий датасет і заливаєш куди завгодно.
var qw: TADOQuery; cb: TComboBox;
qw.ConnectionString:=""; //типу твій конн стрінг задай qw.SQL.Clear; qw.SQL.Add("SELECT * FROM INFORMATION_SCHEMA.TABLES"); qw.Open;
cb.Clear; qw.First; while не qw.Eof do begin cb.Items.Add(qw.FieldByName("Table_Name").AsString); qw.Next; end;
PS. Це приклад.. ніколи так у реалі не роби :)
Прикольно :) "Шурик, все вже зроблено. за нас!" :)))))
Вибачаюсь за настирливість.. але продовжу :)
використовую mysql сервер, підключаюся вдало, у випкшв все завантажується норм.
використовую query з SQL рядком "show tables".. в dbgrid все проходить норм.
пробую робити так:
ADQuery3.SQL.Clear; ADQuery3.Close; ADQuery3.SQL.add("use databas_name;"); ADQuery3.SQL.add("show tables"); ADQuery3.Open; ADQuery3.First; while ADQuery3.Eof do begin jvComboBox1.Items.add(ADQuery3.Fields[0].AsString); ADQuery3.Next end; end;
не спрацьовує. якщо використовую гриди, то все пучком.
p.s. чому так не робити в реалі? p.s.2 той код у мене не спрацював.
1. не слід використовувати прямі запити з клієнта. все стоїть через сторожу процедури. 2. не спрацював? дивно.. я з дельфі копіював :)
Але тут Дмитро прикольніший варіант показав вище. Береш TADOConnect,налаштовуєш. потім adoConnect.GetTableNames(comboBox1.Items,false);
є ще питання :)
а як бути, якщо мені потрібно загнати в комбобокс (наприклад) вміст першого поля обраної таблиці?
як зробити коректніше?
я, напевно, не в той розділ форуму потрапив. ;)