table3.edit;
table3.FieldByName('贷').AsFloat:=-table2.Fields[3].AsFloat;
y4:=y4+table2.Fields[3].AsFloat;
table3.FieldByName('日期').asstring:=table2.Fields[1].asstring;
table3.FieldByName('凭证').AsString:=table2.Fields[2].AsString; table3.Post;
总是出现“健列信息不足或不正确。更新影响到多行。”
但有些时候,也可以正常运行,请问这是个什么错误,什么情况会出现,已经困惑我好长时间了,分数不够可以再加,多谢高手了!
使用的是ado
table3.FieldByName('贷').AsFloat:=-table2.Fields[3].AsFloat;
y4:=y4+table2.Fields[3].AsFloat;
table3.FieldByName('日期').asstring:=table2.Fields[1].asstring;
table3.FieldByName('凭证').AsString:=table2.Fields[2].AsString; table3.Post;
总是出现“健列信息不足或不正确。更新影响到多行。”
但有些时候,也可以正常运行,请问这是个什么错误,什么情况会出现,已经困惑我好长时间了,分数不够可以再加,多谢高手了!
使用的是ado
解决方案 »
- VC++翻译到delphi (只翻译几个地方)
- 请问能否在fastreport产生的报表里加上图片或者对象
- dbgrid中如何实现特定显示?
- 三层结构的数据更新问题?
- 请问如何用Ado新建一张表然后存储存到SQL Server中的一个数据库中去!
- 送分____一个简单SQL问题;
- 这么晚了,还在加班,好兄弟们,帮我一把,在fastreport里,怎么预览窗口还是英文?
- 我有公交IC卡源码
- 请问如何防止程序重复执行
- 寻书!!哪里李维的那本关于ADO编程的书啊?最好电子版可以下载的!!
- 关于SetString?
- 急急!!!QReport 问题,请求各位大侠 200分求解(不够再加 。在线上等。。。)
y4:=y4+table2.Fields[3].AsFloat;
是不是table2.fields[3]空的时候就会报错?好像不应该为空(字符null)才对
:=-table2.Fields[3].AsFloat; 这部分中前面的'-'是什么意思?
你试试这种方法行不行:
Table3.FieldValues['贷'] := Table2.Fields[3].asFloat;
2.post命令最终会生成一条UPDATE语句,估计你这条update语句更新到了多行记录。这样的话你可以打开你所用数据库的SQL跟踪器捕获一下看看,如ms sql server的事件探测器。
... .Execute;
except on E: Exception do
begin
if Pos('PRIMARY KEY', E.Message) > 0 then
Application.MessageBox('重复,请修改!', '提示', MB_OK)
else if Pos('FOREIGN KEY', E.Message) > 0 then
Application.MessageBox('违反外键,请修改后!', '提示', MB_OK) else
Application.MessageBox(Pchar(E.Message), '提示', MB_OK);
end;
end;
还有
table3.FieldByName('贷').AsFloat:=-table2.Fields[3].AsFloat 可读性比较差
最好改为 table3.FieldByName('贷').AsFloat:=table2.Fields[3].AsFloat * -1