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;
  
 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

 Verein
Verein 
 Links
Links Suche
Suche