怎么用ADOQuery, ADOTable 读写oracle大字段?我在使用的时候报“数据类型不支持”。
解决方案 »
- 在delphi中出现“Cannot find resource file: X:\....\Project.res Recreat”的提示,请教如何解决,谢谢!
- 还有没有效率更高一点的统计方法?
- 给DataSet中DateTime型赋值时的问题。
- 怎样实现Delphi IDE的窗体设计器?
- Delphi6中使用ADO控件,如何得知Access表中哪个是索引字段?
- 如何用SQL语句来创建一个表中的id字段是自动编号的???
- 我把当前日期写到注册表里的话,那用户找到了这个值,能看懂吗?
- 创建唯一的 MDIChild 窗体
- 動態創建TPanel問題?
- 关于改变执行程序中某一行的数值!
- BDE里面database有一项不能设置是什么原因)
- 如何取出可复选的listbox中被选择了的多个值?
用OLE代碼如下:(樓主本人的)//Save Paper
procedure TfrmResPaper.bbnSavePaperClick(Sender: TObject);
var
Query:TADOQuery;
Stream:TADOBlobStream;
begin
if not ((OlePaper.State=osLoaded) and
(DMResPaper.State=dsBrowse) and (DMResPaper.RecordCount>0)) then Exit;
Query:=TADOQuery.Create(nil);
with Query do
begin
Connection:=Pubconn;
SQL.Clear;
SQL.Add('SELECT ID,RES_NO,PAPER FROM B_PAPER WHERE ID='+DMResPaper.FieldByName('ID').AsString
+' AND RES_NO='''+DMResPaper.FieldByName('RES_NO').AsString+'''');
Open;
Edit;
Stream:=TADOBlobStream.Create(TBlobField(FieldByName('PAPER')),bmReadWrite);
try
try
OlePaper.SaveToStream(Stream);
finally
Stream.Free;
end;
Post;
EpsDLG('圖紙保存成功!');
except
EpsDLG('圖紙保存失敗!');
end;
Query.Free;
end;
end;//Load Paper
procedure TfrmResPaper.dgMainDblClick(Sender: TObject);
var
Query:TADOQuery;
Stream:TADOBlobStream;
begin
inherited;
if not ((DMResPaper.State=dsBrowse) and (DMResPaper.RecordCount>0)) then Exit;
Query:=TADOQuery.Create(nil);
with Query do
begin
Connection:=Pubconn;
SQL.Clear;
SQL.Add('SELECT ID,RES_NO,PAPER FROM B_PAPER WHERE ID='+DMResPaper.FieldByName('ID').AsString
+' AND RES_NO='''+DMResPaper.FieldByName('RES_NO').AsString+''' AND PAPER IS NOT NULL');
Open;
if RecordCount=0 then
OlePaper.DestroyObject
else
begin
Stream:=TADOBlobStream.Create(TBlobField(FieldByName('PAPER')),bmRead);
try
OlePaper.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;
Query.Free;
end;
end;
參考
http://expert.csdn.net/Expert/topic/2483/2483251.xml?temp=.4762842