Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Connect to Informix [D7, Informix]


Страницы:   1 2

Хома ©   (2004-09-29 17:35:00) 

Уважаемые програмисты. Помогите, если знаете. Насамом деле вопроса 2 и они друг друга заменяют.
1. Использую для конекта к информиксу dbExpress (возможно не лучшый вариант, может что еще посоветуете?). Но создаю его динамически в потоке. Компоненты такие: TSQLConnection <- TSQLDataSet <- TDataSetProvider <- TClientDataSet <- TDataSource.
SQL-запрос добавляю в TSQLDataSet, а открываю TClientDataSet. Но это так, к слову для проверки. Проблема в следующем. Создаю компоненты с владельцем nil. Инициализирую по примеру компонент из палитры. Но при попытки открыть Client выдается ошибка "Client: Missing data provider or data packet". Что могло ее вызвать?
2. Есть ли какие более хорошие компоненты для доступа к Информиксу? Я слышал о IDAC (Informix Data Access Components), но она триальная. Нет ли у кого крякнутой?


Хома   (2004-09-30 09:56:00) [21]


 Connection:=TSQLConnection.Create(nil);
 qSelect:=TSQLDataSet.Create(nil);
 qUpdate:=TSQLDataSet.Create(nil);
 Provider:=TDataSetProvider.Create(nil);
 Client:=TClientDataSet.Create(nil);
 Source:=TDataSource.Create(nil);

 with Connection do begin
   ConnectionName:='InformixConnection';
   DriverName:='Informix';
   GetDriverFunc:='getSQLDriverINFORMIX';
   LibraryName:='dbexpinf.dll';
   LoginPrompt:=false;
   VendorLib:='isqlb09a.dll';
   Params.Add('DriverName=Informix');
   Params.Add('HostName=server');
   Params.Add('DataBase=db');
   Params.Add('User_Name=user');
   Params.Add('Password=pwd');
   Params.Add('Informix TransIsolation=ReadCommited');
 end;

 qSelect.NoMetadata:=true;
 qSelect.ObjectView:=true;
 qSelect.SQLConnection:=Connection;

 qUpdate.NoMetadata:=true;
 qUpdate.SQLConnection:=Connection;

 with Provider do begin
   Constraints:=true;
   DataSet:=qSelect;
   Exported:=true;
   Name:='Provider';
   Options:=[];
   ResolveToDataSet:=true;
   UpdateMode:=upWhereAll;
 end;

 with Client do begin
   AggregatesActive:=false;
   DisableStringTrim:=false;
   FetchOnDemand:=true;
   ObjectView:=true;
   PacketRecords:=-1;
   ProviderName:='Provider';
   StoreDefs:=true;
 end;

 Source.DataSet:=Client;

 qSelect.Close;
 qSelect.CommandText:=exec_sql;
 Client.Open;



Это код создания. Клиент вроде заполнил весь. Может что еще не указал? Бага вылезает на строке Client.Open;


sniknik   (2004-09-29 17:46:00) [22]

> выдается ошибка "Client: Missing data provider or data packet". Что могло ее вызвать?
не все заполнил в клиентском датасете
имя правайдера не указал.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо