Error using UniDac and Postgresql
Posted: Thu 08 Apr 2021 09:00
There are still errors using version 8.4.2 and 8.4.3 The error occurres when posting Blobs. Here is my code, it works fine in version 8.3.2.
Error is Access violation.
procedure TfrmSkanneDocument.SaveDocument(dokumenttype : string; Nummeret : integer);
var
ms : TMemorystream;
i : integer;
begin
ms:=TMemorystream.create;
tiffviserd.MIO.SaveTostreamtiff(ms,false);
try
screen.cursor:=crsqlwait;
dataene.Lagre.SQL.Clear;
dataene.lagre.sql.add('INSERT INTO dokumenter');
dataene.lagre.sql.add('(Nummer,Dokumenttype,Navn,Tilhorer,Dato,Bilde,Privat,Askpassord,Bildenummer,Skalikkeslettes)');
dataene.lagre.sql.add('VALUES(:pNummer,:pDokumenttype,:pNavn,:pTilhorer,:pDato,:pBilde,:pPrivat,:pAskpassord,:pBildenummer,:pSkalikkeslettes)');
dataene.lagre.ParamByName('pNummer').asinteger:=nummeret;
dataene.lagre.ParamByName('pDokumenttype').asstring:=dokumenttype;
dataene.lagre.ParamByName('pNavn').asstring:=txtbeskrivelse.Text;
dataene.lagre.ParamByName('pTilhorer').asstring:=bruker.Pologget;
dataene.lagre.ParamByName('pDato').asdatetime:=txtdato.date;
dataene.lagre.ParamByName('pBilde').setblobdata(ms.Memory,ms.size);
dataene.lagre.ParamByName('pPrivat').asboolean:=chkprivat.Checked;
dataene.lagre.ParamByName('pAskpassord').asboolean:=chkaskpassord.Checked;
dataene.lagre.ParamByName('pSkalikkeslettes').asboolean:=chkskalikkeslettes.Checked;
dataene.lagre.ParamByName('pBildenummer').asinteger:=tiffviserd.ImageCount-1;
dataene.lagre.Execute;
finally
ms.Free;
screen.Cursor:=crdefault;
end;
end;
Regards,
Ole
Error is Access violation.
procedure TfrmSkanneDocument.SaveDocument(dokumenttype : string; Nummeret : integer);
var
ms : TMemorystream;
i : integer;
begin
ms:=TMemorystream.create;
tiffviserd.MIO.SaveTostreamtiff(ms,false);
try
screen.cursor:=crsqlwait;
dataene.Lagre.SQL.Clear;
dataene.lagre.sql.add('INSERT INTO dokumenter');
dataene.lagre.sql.add('(Nummer,Dokumenttype,Navn,Tilhorer,Dato,Bilde,Privat,Askpassord,Bildenummer,Skalikkeslettes)');
dataene.lagre.sql.add('VALUES(:pNummer,:pDokumenttype,:pNavn,:pTilhorer,:pDato,:pBilde,:pPrivat,:pAskpassord,:pBildenummer,:pSkalikkeslettes)');
dataene.lagre.ParamByName('pNummer').asinteger:=nummeret;
dataene.lagre.ParamByName('pDokumenttype').asstring:=dokumenttype;
dataene.lagre.ParamByName('pNavn').asstring:=txtbeskrivelse.Text;
dataene.lagre.ParamByName('pTilhorer').asstring:=bruker.Pologget;
dataene.lagre.ParamByName('pDato').asdatetime:=txtdato.date;
dataene.lagre.ParamByName('pBilde').setblobdata(ms.Memory,ms.size);
dataene.lagre.ParamByName('pPrivat').asboolean:=chkprivat.Checked;
dataene.lagre.ParamByName('pAskpassord').asboolean:=chkaskpassord.Checked;
dataene.lagre.ParamByName('pSkalikkeslettes').asboolean:=chkskalikkeslettes.Checked;
dataene.lagre.ParamByName('pBildenummer').asinteger:=tiffviserd.ImageCount-1;
dataene.lagre.Execute;
finally
ms.Free;
screen.Cursor:=crdefault;
end;
end;
Regards,
Ole