BLOB类型数据的插入

kerosun 2003-12-22 05:50:09
可以用SQL语句进行BLOB类型数据的插入吗?其SUBTYPE是文本。
...全文
166 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
CuteBit 2003-12-23
  • 打赏
  • 举报
回复
hi,kerosun()
# 1
呵呵,老实说在网上分析程序错误是一件"痛苦"的事情.你需要动更多的手.
虽然你的描述比较多,但我还是不能清楚的看出错误地方. :(
我猜,可能是你的 SQLStoredProc1 操作了一个"有意思"的字段:这个字段在你的数据库定义里允许为空(NULL),但你的 SimpleDataSet1 中该字段的 Requireed 却不允许为空.因为 'Field value required.'的提示不是数据库返回的.

# 2
操作 blob 字段请见 TBlobField 的帮助.

# 3
关于优化.我没有创造性的建议给你.
kerosun 2003-12-23
  • 打赏
  • 举报
回复
我想将一个excel表格转换为ib数据库表,其中有一列希望转换后成为备注文本。
请问如何操作?谢了!
kerosun 2003-12-23
  • 打赏
  • 举报
回复
我用以下代码实现
其中SimpleDataSet1用于显示转换后的ib数据库表。
ADOQuery1用于连接并显示要转换的Excel表格。
SQLStoredProc1是存储过程用于插入数据(不包括Blob字段)。

现在的问题是执行完存储过程后如果不执行SimpleDataSet1.Refresh;
程序执行到SimpleDataSet1.Post;时会抛出异常

EDBClient with message 'Field value required.'.

请问康大哥这是怎么回事。
另外还有什么方法可以操作Blob字段,我的代码如何改进会效率高一些。
拜托了康大哥。


procedure TForm1.Button3Click(Sender: TObject);
begin
SimpleDataSet1.DisableControls;
ADOQuery1.DisableControls;
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
SQLStoredProc1.ParamByName('NAME').AsString := ADOQuery1Itemno.AsString;
SQLStoredProc1.ParamByName('UNIT').AsString := ADOQuery1uom.AsString;
SQLStoredProc1.ExecProc;
ADOQuery1.Next;
end;// while
SimpleDataSet1.EnableControls;
ADOQuery1.EnableControls;
SimpleDataSet1.Refresh;//*****************************

SimpleDataSet1.First;
ADOQuery1.First;
SimpleDataSet1.DisableControls;
ADOQuery1.DisableControls;
while not ADOQuery1.Eof do
begin
SimpleDataSet1.Edit;
SimpleDataSet1DESCRIPTION.AsString := ADOQuery1DESCRIPTION.AsString;
SimpleDataSet1.Post;
SimpleDataSet1.Next;
ADOQuery1.Next;
end; // while
SimpleDataSet1.EnableControls;
ADOQuery1.EnableControls;
SimpleDataSet1.ApplyUpdates(0);
SimpleDataSet1.Refresh;
end;
CuteBit 2003-12-22
  • 打赏
  • 举报
回复
不能使用 SQL 语句操作 blob 字段.
只能通过接口(ibx 等)操作这种类型的字段.

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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