I got a chance to play around with this and overriding setguid and making that conversion appears to solve all of my issues mentioned above. Here's what I used: procedure TZPostgreSQLPreparedStatementV3.SetGUID(Index: Integer; const Value: TGUID); var P: PByte; D1: Cardinal; D2, D3: Word; begin P := PByte(@Value); {$IFNDEF ENDIAN_BIG} {$Q-} {$R-} D1 := PG2Cardinal(P); PCardinal(P)^ := D1; D2 := PWord(P + 4)^; PWord(P + 4)^ := (D2 and $00FF shl 8) or (D2 and $FF00 shr 8); D3 := PWord(P + 6)^; PWord(P...
I agree. As mentioned above the getGuid function does: if FBinaryValues then begin {$IFNDEF ENDIAN_BIG} {$Q-} {$R-} Result.D1 := PG2Cardinal(@SrcUUID.D1); //what a *beep* swapped digits! but only on reading Result.D2 := (SrcUUID.D2 and $00FF shl 8) or (SrcUUID.D2 and $FF00 shr 8); Result.D3 := (SrcUUID.D3 and $00FF shl 8) or (SrcUUID.D3 and $FF00 shr 8); PInt64(@Result.D4)^ := PInt64(@SrcUUID.D4)^; {$IFDEF RangeCheckEnabled} {$R+} {$ENDIF} {$IFDEF OverFlowCheckEnabled} {$Q+} {$ENDIF} {$ELSE} Result...
It looks like uuid fields will be retrieved correctly, but get messed up when inserted. Here's a simple test case of inserting a guid and then selecting it back. The results are: Inserted: {783DAE87-E33E-4314-8730-398ED525F07B} Retrieved: {87AE3D78-3EE3-1443-8730-398ED525F07B} // deleted the table records first.. not shown ZQuery.SQL.Text := 'insert into uuid_simple values (:myGuid)'; var myGuid: TGuid := TGuid.Create('{783DAE87-E33E-4314-8730-398ED525F07B}'); ZQuery.Params[0].AsGUID := myGuid; ZQuery.ExecSQL;...
PostgreSQL UUID primary key editing issue
SQLite Primary Key sequence value.
PostgreSQL incorrect data on numerics as stCurrency
Ignore this! Apparently Oracle 19 cloud just automatically changed my clob to securefle even though it was create with basicfile. I'm not sure what's that about, but will test further.
x64 lcmOnLoad with later oci.dlls fail to load CLOBs