Добрый день,
Если можно подскажите (ткните носом ) где могу ошибаться, при отображении данных в TDBGrid из базы Постгрес. Используя компоненты ZEOS.
В базе постгреса есть таблица, с полями как приведено ниже.
CREATE TABLE fmbz_user.table_accountfio
(
id serial NOT NULL, -- автоинкрементное поле таблицы
id_accountidentifier numeric NOT NULL, -- Уникальный идентификатор сотрудника
id_lastname text, -- Фамилия сотрудника
id_firstname text, -- Имя сотрудника
id_middlename text, -- Отчество сотрудника
id_birthday text, -- день рождения сотрудника
id_center text, -- Центр в котором работает сотрудник
id_state text, -- состояние сотрудника (активен/в резерве)
id_specialist text, -- квалификация сотрудника как специалиста
id_manager text, -- квалификация сотрудника как менеджера
CONSTRAINT firstkey PRIMARY KEY (id_accountidentifier)
)
На форме,
ZConnection_Main : TZConnection;
ZQuery_Main : TZQuery;
DBGrid_MainForm_FIO : TDBGrid;
DataSource_Main : TDataSource;
Код:
//Устанавливаю свойства :
ZConnection_Main.HostName := tConnectionData.sHostName;
ZConnection_Main.Database := ‘FMBZ_Base’;
ZConnection_Main.User := ‘fmbz_user’;
ZConnection_Main.Password := ‘fmbz_user’;
ZConnection_Main.Protocol := ‘postgresql-9’;
ZConnection_Main.Port := 5432;
ZConnection_Main.LoginPrompt:= False;
ZConnection_Main.Properties.Add('codepage=win1251');
ZQuery_Main.Connection := ZConnection_Main;
//Производим подключение
ZConnection_Main.Connect;
// в дебагере видно что подключение произведено
//Очистка мета-данных
ZConnection_Main.DbcConnection.GetMetadata.ClearCache;
ZQuery_Main.SQL.Clear;
//создание SQL запроса
sSQLText:= ‘SELECT * FROM fmbz_user.Table_AccountFIO';
//Установка DataSource
DataSource_Main.DataSet:= ZQuery_Main;
DBGrid_MainForm_FIO.DataSource:= DataSource_Main;
//установка полей DBGrid
DBGrid_MainForm_FIO.Columns[0].FieldName :='id_lastname';
DBGrid_MainForm_FIO.Columns[1].FieldName :='id_firstname';
DBGrid_MainForm_FIO.Columns[2].FieldName :='id_middlename';
DBGrid_MainForm_FIO.Columns[3].FieldName :='id_BirthDay';
DBGrid_MainForm_FIO.Columns[4].FieldName :='id_Center';
DBGrid_MainForm_FIO.Columns[5].FieldName :='id_State';
DBGrid_MainForm_FIO.Columns[6].FieldName :='id_Specialist';
DBGrid_MainForm_FIO.Columns[7].FieldName :='id_Manager';
DBGrid_MainForm_FIO.Columns[8].FieldName :='id_AccountIdentifier';
//Выполнение SQL запроса
ZQuery_Main.SQL.Text := sSQLText;
ZQuery_Main.Active := True;
ZQuery_Main.Open;
// В дебагере,при выполнении следующего цикла, видно
// что текстовые поля id_lastname и тд имеют правильные значения ФИО // которые записаны в БД
for iQueryCnt:= 0 to ZQuery_Main.RecordCount - 1 do
Begin
sSQLText:=ZQuery_Main.Fields.Fields[2].AsString;
ZQuery_Main.Next;
End;
НО В результате
ВСЕ поля в DBGrid, за исключением поля 'id_AccountIdentifier', устанавливаются в значение “(MEMO)”
поля предназначенные для данных 'id_AccountIdentifier' показывают правильные значения
(открывал pgAdminIII и проверял)
В чем может быть моя ошибка?