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.
提示二:当前提供者不支持从单一执行恢复多个记录集
12 个解决方案
#1
begin
close; //插入数据
sql.Clear;
active:=false;
close; //插入数据
sql.Clear;
active:=false;
#2
Parameters.ParamByName('c').Value:= datetimePicker1.time;
改为如下试试
Parameters.ParamByName('c').Value:= FormatDateTime('1900-1-1 hh:mm:ss',datetimePicker1.Datetime);
显示的时候需要截取下
其实,有时期也没有关系
改为如下试试
Parameters.ParamByName('c').Value:= FormatDateTime('1900-1-1 hh:mm:ss',datetimePicker1.Datetime);
显示的时候需要截取下
其实,有时期也没有关系
#3
to wei_ping1979(南柯一梦)
前面的adoquery1.close 已经把数据集关闭了,再加一句active:=false;好像是多余的吧!
to qizhanfeng(glacier)
应该不是那的问题,我试验一下还是问题依旧,其实有时候记录的确是加进去了,可 就是再执行的时候出现上述的错误!
前面的adoquery1.close 已经把数据集关闭了,再加一句active:=false;好像是多余的吧!
to qizhanfeng(glacier)
应该不是那的问题,我试验一下还是问题依旧,其实有时候记录的确是加进去了,可 就是再执行的时候出现上述的错误!
#4
Open肯定是不行的,因为open执行的结果是返回数据集的
对于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;
你试一下。
对于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;
你试一下。
#5
当我用execsql语句执行时,则点击事件触发按钮后错误为下面的提示: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.
若用语句open,则错误为:当前提供者不支持从单一执行恢复多个记录集。
当我单步执行时,总是在执行execsql或open时出现弹出错误
若用语句open,则错误为:当前提供者不支持从单一执行恢复多个记录集。
当我单步执行时,总是在执行execsql或open时出现弹出错误
#6
会不会是汉字的问题?
这句
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
改成
sql.Add('insert into [编组表]([组号],[组号申请人],[申请日期]) values (:a,:b,:c)');
怎么样呢?
这句
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
改成
sql.Add('insert into [编组表]([组号],[组号申请人],[申请日期]) values (:a,:b,:c)');
怎么样呢?
#7
本人也是刚学习连接数据库,我也随到了一个和你一模一样的问题啊,不知道这位老兄搞定了没有啊,搞定了的话,帮小弟我一把了,
#8
我试过拉,这样可以执行
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;//
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;//
#9
在之前加上
Parameters.AddParameter.Name := 'a'
Parameters.AddParameter.Name := 'b'
Parameters.AddParameter.Name := 'c'
Parameters.AddParameter.Name := 'a'
Parameters.AddParameter.Name := 'b'
Parameters.AddParameter.Name := 'c'
#10
Parameters.ParamByName('c').Value:= Datetostr(datetimePicker1.time);
先去了
看看错误是不是和这句相关
先去了
看看错误是不是和这句相关
#11
ADOQuery.Insert;
ADOQuery.FieldValues['Data1'] := EncryptString( sDate, AES_MIMA );
ADOQuery.FieldValues['Data2'] := EncryptString( sTime, AES_MIMA ) ;
ADOQuery.FieldValues['Data3'] := EncryptString( sTime, AES_MIMA ) ;
ADOQuery.FieldValues['Data1'] := EncryptString( sDate, AES_MIMA );
ADOQuery.FieldValues['Data2'] := EncryptString( sTime, AES_MIMA ) ;
ADOQuery.FieldValues['Data3'] := EncryptString( sTime, AES_MIMA ) ;
#12
别用add了,用Insert吧
#1
begin
close; //插入数据
sql.Clear;
active:=false;
close; //插入数据
sql.Clear;
active:=false;
#2
Parameters.ParamByName('c').Value:= datetimePicker1.time;
改为如下试试
Parameters.ParamByName('c').Value:= FormatDateTime('1900-1-1 hh:mm:ss',datetimePicker1.Datetime);
显示的时候需要截取下
其实,有时期也没有关系
改为如下试试
Parameters.ParamByName('c').Value:= FormatDateTime('1900-1-1 hh:mm:ss',datetimePicker1.Datetime);
显示的时候需要截取下
其实,有时期也没有关系
#3
to wei_ping1979(南柯一梦)
前面的adoquery1.close 已经把数据集关闭了,再加一句active:=false;好像是多余的吧!
to qizhanfeng(glacier)
应该不是那的问题,我试验一下还是问题依旧,其实有时候记录的确是加进去了,可 就是再执行的时候出现上述的错误!
前面的adoquery1.close 已经把数据集关闭了,再加一句active:=false;好像是多余的吧!
to qizhanfeng(glacier)
应该不是那的问题,我试验一下还是问题依旧,其实有时候记录的确是加进去了,可 就是再执行的时候出现上述的错误!
#4
Open肯定是不行的,因为open执行的结果是返回数据集的
对于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;
你试一下。
对于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;
你试一下。
#5
当我用execsql语句执行时,则点击事件触发按钮后错误为下面的提示: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.
若用语句open,则错误为:当前提供者不支持从单一执行恢复多个记录集。
当我单步执行时,总是在执行execsql或open时出现弹出错误
若用语句open,则错误为:当前提供者不支持从单一执行恢复多个记录集。
当我单步执行时,总是在执行execsql或open时出现弹出错误
#6
会不会是汉字的问题?
这句
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
改成
sql.Add('insert into [编组表]([组号],[组号申请人],[申请日期]) values (:a,:b,:c)');
怎么样呢?
这句
sql.Add('insert into 编组表(组号,组号申请人,申请日期) values (:a,:b,:c)');
改成
sql.Add('insert into [编组表]([组号],[组号申请人],[申请日期]) values (:a,:b,:c)');
怎么样呢?
#7
本人也是刚学习连接数据库,我也随到了一个和你一模一样的问题啊,不知道这位老兄搞定了没有啊,搞定了的话,帮小弟我一把了,
#8
我试过拉,这样可以执行
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;//
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;//
#9
在之前加上
Parameters.AddParameter.Name := 'a'
Parameters.AddParameter.Name := 'b'
Parameters.AddParameter.Name := 'c'
Parameters.AddParameter.Name := 'a'
Parameters.AddParameter.Name := 'b'
Parameters.AddParameter.Name := 'c'
#10
Parameters.ParamByName('c').Value:= Datetostr(datetimePicker1.time);
先去了
看看错误是不是和这句相关
先去了
看看错误是不是和这句相关
#11
ADOQuery.Insert;
ADOQuery.FieldValues['Data1'] := EncryptString( sDate, AES_MIMA );
ADOQuery.FieldValues['Data2'] := EncryptString( sTime, AES_MIMA ) ;
ADOQuery.FieldValues['Data3'] := EncryptString( sTime, AES_MIMA ) ;
ADOQuery.FieldValues['Data1'] := EncryptString( sDate, AES_MIMA );
ADOQuery.FieldValues['Data2'] := EncryptString( sTime, AES_MIMA ) ;
ADOQuery.FieldValues['Data3'] := EncryptString( sTime, AES_MIMA ) ;
#12
别用add了,用Insert吧