超奇怪问题 一直运行很好,后来客户要求添加点新功能,可是新功能与出问题的模块毫无关联代码片段 如下
with DM.ADT_JMoney do
begin
Append;
if (DM.ADQ_Student.FieldByName('XOLDMARK').AsBoolean)and(N18.Checked) then
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XOLDSN').AsString
else
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XSN').AsString;当程序运行到两个赋值语句之一时就报错,错误很常见: Dataset not in edit or insert mode我这里用的是SQLServer 2008, 客户用的是 2000,数据库是在2000上建立的,都会提示错误
要疯了,还请各位帮忙,在线等!!
with DM.ADT_JMoney do
begin
Append;
if (DM.ADQ_Student.FieldByName('XOLDMARK').AsBoolean)and(N18.Checked) then
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XOLDSN').AsString
else
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XSN').AsString;当程序运行到两个赋值语句之一时就报错,错误很常见: Dataset not in edit or insert mode我这里用的是SQLServer 2008, 客户用的是 2000,数据库是在2000上建立的,都会提示错误
要疯了,还请各位帮忙,在线等!!
begin
Append;
if (DM.ADQ_Student.FieldByName('XOLDMARK').AsBoolean)and(N18.Checked) then
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XOLDSN').AsString
else
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XSN').AsString;你这里加了WITH DO如果FieldByName('XSN')在DM下面则正确的,
若在本窗体内则改成Self.Query.FieldByName('XSN').AsString
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XOLDSN').AsString
的时候 DM.ADT_JMoney.State 为 dsBrowse 问题是我明明APPEND了
最大的问题是以前一直没问题的,突然出现这么个情况
Append后加上if DM.ADQ_Student.state = dsBrowse then showmessage('看看');
FieldByName('XSN').AsString := DM.ADQ_Student.FieldByName('XOLDSN').AsString
state 也看了,append后立马就是dsBrowse
State也看了,Append后立马是dsBrowse
我特地添加个BUTTON 代码为 DM.ADT_JMoney.Append;开始一直点 没反应 ,后来发现,当我变换ADT_JMoney的主表的数据有时会出现错误:
BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录出错后再点BUTTON居然有用,而且上面的问题也消失了!!!顺便说下 这个 ADT_JMoney 是ADOTable,作为一个ADOQuery 的从表
后来重装系统换WIN7 用的是 EHLIB 5.5哈哈,蛋疼啊!!!!