Мы получили ваш пример с дампом. Установка параметра соединения
coFetchAll=false не является причиной указанных вами ошибок. Delphi 2006 и более ранние версии имеют ограничение для установки расширенных опций драйвера, в т.ч. и опции
SchemaName. Поэтому в Deplhi 7 строка кода
Код: Выделить всё
SQLConnection1.Params.Values['SchemaName'] := 'data';
не установит
data текущей схемой для соединения.
О том как использовать расширенные опции в dbExpress driver for PostgreSQL для Delphi 7 - Delphi 2006, вы можете прочесть в Readme.html файле. Этот файл находится в папке, куда был установлен dbExpress driver for PostgreSQL.
Для решения проблемы вам необходимо установить расширенные опции драйвера FetchAll и SchemaName в событии AfterConnect соединения. Например:
Код: Выделить всё
procedure TForm1.SQLConnection1AfterConnect(Sender: TObject);
const
coFetchAll = TSQLConnectionOption(301); //boolean
coSchemaName = TSQLConnectionOption(28); // string
begin
SQLConnection1.SQLConnection.SetOption(coFetchAll, Integer(False));
SQLConnection1.SQLConnection.SetOption(coSchemaName, Integer(PChar('data')));
end;
А для выполнения SQL запросов достаточно использовать такой код:
Код: Выделить всё
SimpleDataSet1.Active:=false;
SQLConnection1.Connected:=false;
SimpleDataSet1.DataSet.CommandText := 'select data.f_AsInteger('12345') from data.duals';
SQLConnection1.Connected:=true;
SimpleDataSet1.Active:=true;