I'm not sure you should need to parse the result set. It should come back as a proper recordset. I'm currently using 6.6.2rc and functions similar to the following: CREATE type test_tp as (a integer, b text); CREATE FUNCTION test_fn(code integer) RETURNS SETOF test_tp AS $$ SELECT a, b FROM test_tab...
After a little digging I think I've found a fix: Change ZAbstractRODataset.SetFieldData to read: procedure TZAbstractRODataset.SetFieldData(Field: TField; Buffer: Pointer); var ColumnIndex: Integer; RowBuffer: PZRowBuffer; WasNull: Boolean; begin WasNull := False; if not Active then raise EZDatabase...
It seems that setting a field's ReadOnly property to true on a Zeos dataset does not actually make the field read only. ZQuery1.Edit; ZQuery1id.ReadOnly := True; ZQuery1id.Value := 1; <-- This should raise an error ZQuery1.Post; <-- This completes. It's not a big problem but I think it's a bug. Does...
It looks as if the following works correctly. In the TZPostgreSQLResultSet.GetBlob function of the ZDbcPostgreSqlResultSet file replace if FPlainDriver.GetIsNull(FQueryHandle, RowNo - 1, ColumnIndex - 1) = 0 then begin Stream := nil; try // Stream := TStringStream.Create(DecodeString(GetRawString(Co...
It seems there is a problem in TZPostgreSQLResultSet.GetBlob. if you replace if FPlainDriver.GetIsNull(FQueryHandle, RowNo - 1, ColumnIndex - 1) = 0 then begin Stream := nil; try // Stream := TStringStream.Create(DecodeString(GetRawString(ColumnIndex))); Stream := TStringStream.Create(FPlainDriver.D...
FYI - I've been using Zeos in a multi-threaded Delphi app for some time now. It uses IntraWeb to produce a web application and the only problem I've had was with the TZSQLMonitor which was not completely thread safe.