Hallo,<br>
wenn ich es richtig verstanden habe, muß ich in Access2000 ein OLE-Objekt Feldtyp verwenden, um ein Blobfeld zu erzeugen.<br>
Tabelle:<br>
ID : Autowert<br>
Blob1 : OLE-Objekt<br>
<br>
Innerhalb von Access habe ich ein Bild in das Feld Blob1 geschoben. Jetzt möchte ich das Feld mit den nativen ADO Objekten (2.5) lesen und/ oder schreiben.<br>
Trotz stundenlangen lesen im ADO SDK ist es mir nicht gelungen. Hier mein jämmerlicher Versuch das Feld zu lesen.<br>
<pre>
<font face="Verdana" size="1" color="#000000">uses ADODB25_TLB;
{$R *.DFM}
resourcestring
ConnectionString = 'FILE NAME=blob.udl';
SQLRequest = 'SELECT * FROM Tabelle1';
procedure TForm1.Button1Click(Sender: TObject);
var
ADOConncetion : Connection;
ADORecordset : Recordset;
ADOStream : Stream;
begin
ADOConncetion:=CoConnection.Create;
ADORecordset:=CoRecordset.Create;
ADOStream:=CoStream.Create;
ADOConncetion.Open(ConnectionString,'','',-1);
Try
ADORecordset.Open(SQLRequest,ADOConncetion,adUseSe rver,adLockOptimistic,adCmdUnspecified);
<b><font face="Verdana" size="1" color="#FF0000">ADOStream.Open(ADORecordset.Fields .Item['Blob1'].Value,adModeRead,adOpenStreamFromRecord,'','');
</font></b> Finally
ADORecordset.Close;
ADOConncetion.Close;
ADOStream:=Nil;
ADORecordset:=Nil;
ADOConncetion:=Nil;
end;
end;
</font></pre>
In der roten Zeile erhalte ich folgende Fehlermeldung: Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar.<br>
Die Frage lautet also: Wie lesen und schreibe ich Blobfelder in einer Access2000 Datenbank mit den nativen ADO (2.5) Objekten.<br>
Jens Schumann<br>
wenn ich es richtig verstanden habe, muß ich in Access2000 ein OLE-Objekt Feldtyp verwenden, um ein Blobfeld zu erzeugen.<br>
Tabelle:<br>
ID : Autowert<br>
Blob1 : OLE-Objekt<br>
<br>
Innerhalb von Access habe ich ein Bild in das Feld Blob1 geschoben. Jetzt möchte ich das Feld mit den nativen ADO Objekten (2.5) lesen und/ oder schreiben.<br>
Trotz stundenlangen lesen im ADO SDK ist es mir nicht gelungen. Hier mein jämmerlicher Versuch das Feld zu lesen.<br>
<pre>
<font face="Verdana" size="1" color="#000000">uses ADODB25_TLB;
{$R *.DFM}
resourcestring
ConnectionString = 'FILE NAME=blob.udl';
SQLRequest = 'SELECT * FROM Tabelle1';
procedure TForm1.Button1Click(Sender: TObject);
var
ADOConncetion : Connection;
ADORecordset : Recordset;
ADOStream : Stream;
begin
ADOConncetion:=CoConnection.Create;
ADORecordset:=CoRecordset.Create;
ADOStream:=CoStream.Create;
ADOConncetion.Open(ConnectionString,'','',-1);
Try
ADORecordset.Open(SQLRequest,ADOConncetion,adUseSe rver,adLockOptimistic,adCmdUnspecified);
<b><font face="Verdana" size="1" color="#FF0000">ADOStream.Open(ADORecordset.Fields .Item['Blob1'].Value,adModeRead,adOpenStreamFromRecord,'','');
</font></b> Finally
ADORecordset.Close;
ADOConncetion.Close;
ADOStream:=Nil;
ADORecordset:=Nil;
ADOConncetion:=Nil;
end;
end;
</font></pre>
In der roten Zeile erhalte ich folgende Fehlermeldung: Die Argumente sind vom falschen Typ, liegen außerhalb des Gültigkeitsbereiches oder sind miteinander unvereinbar.<br>
Die Frage lautet also: Wie lesen und schreibe ich Blobfelder in einer Access2000 Datenbank mit den nativen ADO (2.5) Objekten.<br>
Jens Schumann<br>
Comment