我的老板让我把我的程序由用SQL SERVER改为用ORACLE
在修改的时候我想用个TABLE控件打开一个有多个BLOB字段的表出现了‘缺少表达式’的错误,
我当时是用BDE直接连接ORACLE的。后来我改用ODBC连接这个错误就解决了。
可是在读写BOLB的时候就会出现‘Invalid BOLB handle in record buffer ’的错误。
var
AStream: TMemoryStream;
ABlob:TBlobField;
begin
AStream := TMemoryStream.Create;
ABlob:= Table1.FieldByName('data') as TBlobField;
ABlob.SaveToStream(AStream);
//////////////////////////////////////
ABlob.Dataset.Edit;
AStream.Position := 0;
ABlob.LoadFromStream(AStream);
这该如何解决,请大家帮忙。
这个问题我发过一贴了,可是没有解决,只好再发一贴。
在修改的时候我想用个TABLE控件打开一个有多个BLOB字段的表出现了‘缺少表达式’的错误,
我当时是用BDE直接连接ORACLE的。后来我改用ODBC连接这个错误就解决了。
可是在读写BOLB的时候就会出现‘Invalid BOLB handle in record buffer ’的错误。
var
AStream: TMemoryStream;
ABlob:TBlobField;
begin
AStream := TMemoryStream.Create;
ABlob:= Table1.FieldByName('data') as TBlobField;
ABlob.SaveToStream(AStream);
//////////////////////////////////////
ABlob.Dataset.Edit;
AStream.Position := 0;
ABlob.LoadFromStream(AStream);
这该如何解决,请大家帮忙。
这个问题我发过一贴了,可是没有解决,只好再发一贴。
{}var
MS: TMemoryStream;
begin
RichEdit1.Font.Color := Clred;
MS:=TMemoryStream.create;
RichEdit1.Lines.LoadFromStream(MS);
MS.Position:=0;
ADOQuery1.Append;
TBlobField(ADOQuery1.FieldbyName
('Doc')).LoadFromStream(MS);
ADOQuery1.Post;
end; } with ADOQuery1 do
begin
Edit;
FieldByName('doc').AsString := RichEdit1.Text;
Post;
end; function blobcontenttostring(const filename: string):string;
begin
with tfilestream.create(filename,fmopenread) do
try
setlength(Result,size);
read(Pointer(Result)^,size);
finally
free;
end;
end;
//保存字段
var
sFileName : String;
begin
RichEdit1.Font.Color := ClRed;
RichEdit1.Lines.SaveToFile('C:\aaa.rtf');
if (opendialog1.execute) then
begin
sFileName:=OpenDialog1.FileName;
adoquery1.edit;
adoquery1.fieldbyname('doc').asstring:=Blobcontenttostring(sFileName);
adoquery1.post;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
MS: TStream;
begin
ADOQuery1.First;
with ADOQuery1 do
MS:=CreateBlobStream
(FieldbyName('Doc'),bmRead);
RichEdit2.Lines.LoadFromStream(MS);
MS.Free;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery1.Next;
end;