这个函数怎么了?

wm 2000-05-10 12:28:00
我在写一段Ole对象与数据库的程序时,写了如下一段代码:

function TForm1.SaveToTable(Filename:string):Boolean;
var
FS:TFileStream;
BS:TStream;
begin
Table.Append;
FS:=TFileStream.Create(Filename,fmOpenRead);
BS:=Table.CreateBlobStream(Table.FieldByName('test'),bmReadWrite);
try
BS.Copyfrom(FS,FS.Size);
Table.Post;
Table.Edit;
Result:=True;
finally
FS.Free;
BS.Free;
end;
end;

执行到Table.Post一句时,数据库提示不能将一个空值提交,我反复检查了多遍,始终没能找到问题的原因,现在将其写在这里,请各位多多指教!
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
江王 2000-05-19
  • 打赏
  • 举报
回复
在Post之前应先将BS流关闭,最好Free掉它。
wm 2000-05-10
  • 打赏
  • 举报
回复
halfream:我是在做一个实验程序,表Table中有两个字段:'ID'和'TEST',ID为INT类型字段,是KEY字段;TEST是TEXT类型字段。所用数据库是MsSQL。ID字段是一个自动增加的字段。另外,帮助中的例子我也看了,Edit我也试过,还是不行,我想问题不该在此,因为Append执行后默认的就是Edit。
halfdream 2000-05-10
  • 打赏
  • 举报
回复
这个程序把‘TEST’字段的内容加入,应该没有问题,
不知道你的这个表是怎么定义的,不过TABLE里面恐怕不只是’TEST‘字段,
至少得一个KEY字段得给它值吧。

BCB4帮助中有一个例子与你的程序非常相似,但它用的是Table1->Edit()而
你的是Append().

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧