起步软件技术论坛-X3

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: shanshengsheng

操作数类型冲突: varbinary 与 text 不兼容**

[复制链接]
发表于 2007-12-14 16:45:44 | 显示全部楼层
现在只有他变成空才会引发这个错误啊。你修改的过程中没有把它清空吗?在BeforeUpdate时看看这个字段是不是变为空了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-15 16:14:26 | 显示全部楼层
我没有把他们清空。是不是因为我库里本来有为空的数据呢?
回复 支持 反对

使用道具 举报

发表于 2007-12-17 09:20:53 | 显示全部楼层
有可能。如果本来是空,保存也会引发这个问题。用这样的语句来执行一下

update xxx set yy='空' where yy is null or yy=''
回复 支持 反对

使用道具 举报

发表于 2007-12-21 09:18:34 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-6 13:57:26 | 显示全部楼层
出差忘了这事了,先结吧。等有问题我在开贴。不好意思
回复 支持 反对

使用道具 举报

发表于 2008-1-7 10:17:55 | 显示全部楼层
当数据集包含Text字段时,如果生成了更新语句,则Text字段为null时保存出错。

可以使用下面的方法规避掉,在数据集更新前对text字段重新赋值
procedure xx.BeforePost(DataSet: TDataSet);
begin
  if   DataSetMeetingSummary.FieldByName('meeting_comment').IsNull then
  begin
    DataSetMeetingSummary.FieldByName('meeting_comment').AsString:=' ';
    exit;
  end;
  DataSetMeetingSummary.FieldByName('meeting_comment').AsString:=DataSetMeetingSummary.FieldByName('meeting_comment').AsString+' ';
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-13 11:27:53 | 显示全部楼层
我发现规律好像是本次保存前如果你修改了改字段就不会报错,如果不修改就会报错
到底怎么搞啊?这个问题麻烦死了
回复 支持 反对

使用道具 举报

发表于 2008-3-13 13:21:50 | 显示全部楼层
看来这个问题比较复杂了,如果是楼主找到的规则,只要修改文本字段就正常,这样就好绕开了,在保存前(在数据导航条的BeforeAction上),处理一下这个字段就可以了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 07:05 , Processed in 0.037132 second(s), 12 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表