数据写入时遇到奇怪的错误?

tiggle 2001-07-17 02:23:40
运行时提示
Key column information insufficient or incorrent.Too many rows were affect by update
不知道什么原因?
紧!!!


TADOQuery* Query=new TADOQuery(this);
Query->Connection = Conn;
try{
Query->SQL->Text="select price from machine";
Query->Open();
while (!Query->Eof){
Query->Edit();
Query->FieldByName("price")->Value=chkPrice(Query->FieldByName("Price")->Value);
Query->Post();
Query->Next();
}
}
__finally{
delete Query;
}
...全文
212 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
tiggle 2001-07-18
  • 打赏
  • 举报
回复
总结:
出错原因:
1、表没有定义主码。
2、修改的字段有多个相同的值。
「已注销」 2001-07-17
  • 打赏
  • 举报
回复


可能有重复的关键字字段

@_@
bcboy 2001-07-17
  • 打赏
  • 举报
回复
从出错提示看,可能的原因:
1)有二条主码想同的记录。
2)表没有定义主码。
tiggle 2001-07-17
  • 打赏
  • 举报
回复
孙版主说对了一些.改了也不起作用.
Wingsun 2001-07-17
  • 打赏
  • 举报
回复
你的表中是不是有好多的重复price啊
如果这样你改一下你的SQL语句,改为:
select * from machine
wjzhuang 2001-07-17
  • 打赏
  • 举报
回复
我认为写入的数据不对,可能是类型,或者你修改的那个字段不能重复(唯一),而你改的数据有重复
tiggle 2001-07-17
  • 打赏
  • 举报
回复
还没找到原因呀!
急急!!!
FANGAO 2001-07-17
  • 打赏
  • 举报
回复
ADO补丁装了没有?
tiggle 2001-07-17
  • 打赏
  • 举报
回复
可是我只是修改
wjzhuang 2001-07-17
  • 打赏
  • 举报
回复
>>Key column information insufficient
你写入的数据和数据表肯定那里出错了,数据不够
>>Too many rows were affect by update
tiggle 2001-07-17
  • 打赏
  • 举报
回复
一样了.
它是执行到Query->Post();出错得.
我怀疑是不是它执行的是Update()操作.出错信息中可能有提示.
急急!!!

wjzhuang 2001-07-17
  • 打赏
  • 举报
回复
//再改一句看看
chkPrice(Query->FieldByName("Price")->AsString);
tiggle 2001-07-17
  • 打赏
  • 举报
回复
chkPrice(String Value)是自己写的一个函数.作用是提出字符串中的第一个数字字符串.
注意:
程序运行到Query->Post()时出错.即便不写直接用Next()也是如此.
因为Next(),Prior()之类函数调用了Post().
Query->SQL->Text可以直接赋值,不用写Clear()
wjzhuang 2001-07-17
  • 打赏
  • 举报
回复

TADOQuery* Query=new TADOQuery(this);
Query->Connection = Conn;
try{
Query->SQL->Clear();//使用前sql语句邀请空
//Query->SQL->Text="select price from machine";//好像有错,我没这样用过
Query->SQL->Add("select price from machine");
Query->Open();
Query->Edit();//这句放外面
while (!Query->Eof){
//Query->Edit();
Query->FieldByName("price")->Value=chkPrice(Query->FieldByName("Price")->Value);
//这句看不清楚
//Query->Post();
Query->Next();
}
Query->Post();//据说Next就有Post的功能
}__finally{
delete Query;
}
你为何不用sql来写入数据?
tiggle 2001-07-17
  • 打赏
  • 举报
回复
运行到Query->Post()时出错.

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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