![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание колонок DBGrid'а во время прогона программы [D6, Access(mdb)]
diabolik_krsk © (2004-10-15 15:40:00)Уважаемые мастера, вопрос по добавлению колонок в DBGrid.
Создаю динамически следующие компоненты:
- ADOConnection (переменная ADOC);
- ADOQuery (переменная ADOQ)
- DataSource (переменная DS);
Затем из базы данных пытаюсь выдернуть названия столбцов и при заполнении DBGrid столбцам присвоить другое название через свойство Title параметра DBGrid.Columns.
В базе данных две таблицы main и columns. Данные столбца mastertablefield таблицы columns соответствуют названиям столбцов таблицы main.
var ADOQC: TADOQuery;
ADOC: TADOConnection;
DS: TDataSource;
CItems: TColumn;
begin
DS:=TDataSource.Create(nil);
DS.Enabled:=false;
DS.DataSet:=adoq;
DS.Enabled:=true;
DBGreed.DataSource:= ds;
ADOQ:=TADOQuery.Create(nil);
ADOQ.Active:=False;
ADOQ.Connection:=idmConnect;
ADOQ.SQL.Clear;
ADOQ.SQL.Add('SELECT * FROM Columns;');
ADOQ.Active:=True;
with ADOQ do
begin
while not Eof do
begin
CItems:= MFR.DBGTop.Columns.Add;
CItems.FieldName:=Fields.FieldByName('mastertablefield').AsString;
CItems.Title.Caption:=Fields.FieldByName('fieldcaption').AsString;
CItems.Title.Alignment:=taCenter;
end;
next;
end;
end;
end;
В результате прогона программа просто зависает и добиться от нее чего нибудь вразумительного не получается.
Подскажите где ошибка в коде??
msguns (2004-10-15 16:16:00) [1]
with DBGrid do
begin
// Перед созданием и запуском запроса в гриде :
DataSource := nil;
Columns.Clear;
...
// После
DataSource := QueryXX;
Columns.RebuildColumns;
for i := 0 to ColumnsCount-1 do
begin
Columns[i].Title.Caption := ..
...
end;
end;
Ozone (2004-10-15 15:45:00) [2]Next забыл