ADO事务的一个问题,无法提交,我的错在哪儿?我很急,谢谢!(100分)

  • 主题发起人 主题发起人 风子
  • 开始时间 开始时间

风子

Unregistered / Unconfirmed
GUEST, unregistred user!
我在尝试做一个在线考试系统,需要向后台(sqlserver7)题库录入题目。
我先在数据模块中建立TransactionDB(TADOconection)然后连上Addquery(TAdoquery)
代码是这样写的:
procedure TfrmAdd.bnOKClick(Sender:TObject);
begin
testmodule.TransactionDB.BeginTrans;

with testmodule.AddQuery do
begin
close;
sql.clear;
sql.add('insert into tiku(kmfl,tx,ndxs,fenzi,timu,answer)');
sql.add('values(:kmfl,:tx,:ndxs,:fenzi,:timu,:anwser)');
parameters.parambyname('kmfl').value:=cmbKemu.itemindex+cmbZJ.itemindex*10;
parameters.parambyname('tx').value:=cmbtx.itemindex;
parameters.parambyname('ndxs').value:=cmbndxs.itemindex;
parameters.parambyname('fenzi').value:=seFZ.value;
parameters.parambyname('timu').value:=memoTimu.Text;
parameters.parambyname('anwser').value:=memoAnswer.text;
sql;
execsql;
close;
end;

testmodule.TransactionDB.CommitTrans;

我觉得代码没错,可运行到testmodule.TransactionDB.BeginTrans;时出错:
project project1.exe raised exception class EOleException with message 'the application
is using arguments that are of wrong type ,are out of acceptable range,or in confilct
with one another'.process stopped. use step or run to continue.
project1是我的工程文件
 
根据错误提示,可能是赋给变量的值的数据类型不对!
检查一下表中字段的数据类型,
 
赋给变量的值的数据类型不对
可能把CHAR类型赋给了INTEGER之类的数据
 
手工指定每个parameter的类型
 
又出一个提示:
access violation at address 00489890 in module 'project'. read of address
'ffffffff'.我该怎么办?
 
能不能详细些?
 
第一个错出现以后,再继续的话,当然就会出现第二个"访问内存错"了,所以关键是要找出
第一个问题所在!
还有,你的事务要有(不知道ADO的是不是这样写,但用ODBC的是这样的)
try

except
database.rollback
raise;
end
 
多人接受答案了。
 
后退
顶部