Oracle: Blobfeld lesen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Oracle: Blobfeld lesen

Beitrag von am2 »

Hi,

ich habe nun schon etliche Versuche hinter mir, ein BLOB- Feld aus einer Oracle- Datenbank herauszukitzeln. Mein letzter Versuch lautete wie folgt:

Code: Alles auswählen

 
function LoadGetBlobFieldFromDataBase(const pcsUserName, pcsPassword, pcsDatabaseName, pcsSQL:string):string;
var
  lvConn : TOracleConnection;
  lvQuery : TSQLQuery;
  lvTransaction : TSQLTransaction;
  lvStream : TMemoryStream;
  lvnSize : integer;
begin
  lvConn := TOracleConnection.Create(NIL);
  lvTransaction := TSQLTransaction.Create(NIL);
  lvQuery := TSQLQuery.Create(NIL);
  lvStream := TMemoryStream.Create();
 
  lvConn.UserName := pcsUserName;
  lvConn.Password := pcsPassword;
  lvConn.DatabaseName := pcsDatabaseName;
 
  lvTransaction.DataBase := lvConn;
 
  lvQuery.DataBase := lvConn;
  lvQuery.Transaction := lvTransaction;
  lvQuery.SQL.Text := pcsSQL;
 
  try
    lvConn.Open;
    lvQuery.Open;
    lvQuery.FieldDefs[0].DataType := ftOraClob;
    lvQuery.SaveToStream(lvStream);
    result := lvStream.ToString;
  finally
    FreeAndNil(lvStream);
    FreeAndNil(lvQuery);
    FreeAndNil(lvTransaction);
    FreeAndNil(lvConn);
  end;
end;
 


EDatabaseError: Missing (compatible) underlying dataset, can not open :(


Meine Versuche davor (zu Fuss) waren:
Oracle Connection bauen, Transaction dran, SQL- Query dran, Dataset dran, DBMemo dran
Wenn das SQL "select sysdate from dual" lautet, dann klappte alles fein. Wenn ich das geplante SQL hineinwürge, kommt Oracle mit einer Fehlermeldung 1406: String wurde abgeschnitten.

So langsam geht mir die Puste aus :?:

Antrepolit
Beiträge: 340
Registriert: Di 12. Sep 2006, 08:57
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Kontaktdaten:

Re: Oracle: Blobfeld lesen

Beitrag von Antrepolit »

Hallo am2,

schau doch mal in den Quelltext von TOracleConnection, ob BLOB mittlerweile implementiert ist. Beim letzten Mal, als ich geschaut habe, war es das noch nicht.

Gruß
Grüße, Antrepolit

care only if your os is really burning

am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Re: Oracle: Blobfeld lesen

Beitrag von am2 »

Danke für den Tip, leider nicht implementiert :(

AM

EgonHugeist
Beiträge: 93
Registriert: Di 17. Apr 2012, 22:41

Re: Oracle: Blobfeld lesen

Beitrag von EgonHugeist »

Bin gerade drüber gestolpert ... wird wohl etwas spät sein:

Mit Zeos läuft das alles inklusive BFILE etc.
LudoB wollte einst einmal die Zeos Teile auf SQLDB übertragen. Scheint wohl die Zeit nicht mehr gefunden zu haben, oder hat es verworfen, da das TBufDataset alles nach 2000Bytes/Chars abschneidet.
ZeosDevTeam

am2
Lazarusforum e. V.
Beiträge: 116
Registriert: Di 21. Dez 2010, 09:59
OS, Lazarus, FPC: Win (L 0.9.26 beta FPC 2.2.2)
CPU-Target: 32 Bit

Re: Oracle: Blobfeld lesen

Beitrag von am2 »

Danke dennoch für die Antwort. Schade, dass das nicht klappt. So muss ich mir immer andere Wege suchen.

Antworten