首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tadoquery post:“无法用null更新非空列”

tadoquery post:“无法用null更新非空列”
EN

Stack Overflow用户
提问于 2014-04-18 07:43:03
回答 1查看 844关注 0票数 2

我试图在遗留的delphi项目中使用带有的TAdoquery。dataset包含表示SQL表中标识列的字段。它有AutogenerateValue = arAutoInc和ProviderFlags [pfInWhere, pfInKey]。它也有Required = false

执行adoquery.Append后,我预先填充字段并尝试执行adoquery.Post,但得到以下错误:Non-nullable column cannot be updated to Null

在post之前,所有非空字段都设置为非空字段,因此identity列是唯一的可疑项。TADOQuery没有联接(simple Select * from my_table),但是它有查找字段和计算字段,这可能是null。对于查找字段和计算字段,我删除了提供程序标志,以确保这些字段不会出现在insert或update语句中。

在post之前标识字段为NULL,我在Profiler中没有看到在服务器上触发insert命令,而是得到了这个错误。

  • 是否可以预览由Tadoquery生成的sql语句以插入新行?
EN

回答 1

Stack Overflow用户

发布于 2014-04-21 11:29:53

我解决了,这个问题当然与身份专栏无关。初始的sql是select * from myTable,这意味着它还加载了一些额外的列,这些列没有绑定到我的DBGridEh中的任何网格列。在将*替换为我需要的列的显式列表之后,INSERT工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23149724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档