在数据库中,定义组号,组号申请人为文本,申请日期为时间日期类型!
with adoquery1 do
begin
close; //插入数据
sql.Clear;
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
Parameters.ParamByName('a').Value:= trim(edit2.text);
Parameters.ParamByName('b').Value:= trim(edit3.text);
Parameters.ParamByName('c').Value:= datetimePicker1.time;
execsql;//若此行语句execsql则点击按钮错误为下面的提示一,若为open,则提示错误为提示二
end;//运行的时候没什么错误,只是在触发事件后才出现错误,并且错误后,有时侯记录也能写进去!提示一:project Project1.exe raised exception class EAccessViolation with message'Access violation at address 1F487CAB in module'msado15.dll',Write of address 012C902C'.Process stopped.Use step or Run to continue.
提示二:当前提供者不支持从单一执行恢复多个记录集
with adoquery1 do
begin
close; //插入数据
sql.Clear;
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
Parameters.ParamByName('a').Value:= trim(edit2.text);
Parameters.ParamByName('b').Value:= trim(edit3.text);
Parameters.ParamByName('c').Value:= datetimePicker1.time;
execsql;//若此行语句execsql则点击按钮错误为下面的提示一,若为open,则提示错误为提示二
end;//运行的时候没什么错误,只是在触发事件后才出现错误,并且错误后,有时侯记录也能写进去!提示一:project Project1.exe raised exception class EAccessViolation with message'Access violation at address 1F487CAB in module'msado15.dll',Write of address 012C902C'.Process stopped.Use step or Run to continue.
提示二:当前提供者不支持从单一执行恢复多个记录集
close; //插入数据
sql.Clear;
active:=false;
Parameters.ParamByName('c').Value:= FormatDateTime('1900-1-1 hh:mm:ss',datetimePicker1.Datetime);
显示的时候需要截取下其实,有时期也没有关系
前面的adoquery1.close 已经把数据集关闭了,再加一句active:=false;好像是多余的吧!to qizhanfeng(glacier)
应该不是那的问题,我试验一下还是问题依旧,其实有时候记录的确是加进去了,可 就是再执行的时候出现上述的错误!
对于ExecSql应该没有问题,你用的是delphi7吗,我写了一下
with adoquery1 do
begin
close; //插入数据
sql.Clear;
sql.Add('insert into aa(a,b,c) values (:a,:b,:c)');
Parameters.ParamByName('a').Value:= trim(edit1.text);
Parameters.ParamByName('b').Value:= trim(edit2.text);
Parameters.ParamByName('c').Value:= Datetostr(datetimePicker1.time);
execsql;
end;
你试一下。
若用语句open,则错误为:当前提供者不支持从单一执行恢复多个记录集。
当我单步执行时,总是在执行execsql或open时出现弹出错误
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
改成
sql.Add('insert into [编组表]([组号],[组号申请人],[申请日期]) values (:a,:b,:c)');
怎么样呢?
with adoquery1 do
begin
close; //插入数据
sql.Clear;
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
Parameters.ParamByName('a').Value:= trim(edit2.text);
Parameters.ParamByName('b').Value:= trim(edit3.text);
Parameters.ParamByName('c').Value:= datetimetostr(datetimePicker1.datetime);
execsql;//
Parameters.AddParameter.Name := 'a'
Parameters.AddParameter.Name := 'b'
Parameters.AddParameter.Name := 'c'
先去了
看看错误是不是和这句相关
ADOQuery.FieldValues['Data1'] := EncryptString( sDate, AES_MIMA );
ADOQuery.FieldValues['Data2'] := EncryptString( sTime, AES_MIMA ) ;
ADOQuery.FieldValues['Data3'] := EncryptString( sTime, AES_MIMA ) ;