开始加一行:
adoquery3.Parameters.Clear;
否则第一次是给第一到四个参数赋值(正确),第二次是给第五到八个参数赋值(错误),第三次...
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
adoquery3.Parameters.Clear;
否则第一次是给第一到四个参数赋值(正确),第二次是给第五到八个参数赋值(错误),第三次...
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
解决方案 »
- 不能这样设置数组变量,该怎样做?
- VC结构与DELPHI的问题?
- 关于SQLDataset控件执行CreateTable SQL语言的问题。。。
- 给我qq的窗体拖到屏幕边缘的自动缩放的代码,我就给分!
- 在线急求delphi7.0的控件!!
- 请教:如何获取DbGrid的某一行的行值
- 关于stringgrid使用?
- 如何安装class包
- 怎樣可以查出自己電腦里是否有 PC Anywhere 之類的,可以實現監控的軟件!
- 为什么delphi里,对canvas的操作,如copyrect,StretchDraw的效率好象很低???
- 问个关于edit和maskedit的弱问题
- 关于 DateTimePicker1控件
我觉得这样写更好:
procedure InitQuery//这个函数调用一次
begin
adoquery3.Active := false;
adoquery3.SQL.Clear;
adoquery3.SQL.Add(' INSERT INTO kaoDianTale'+
' (考点所在章序号,考点所在节序号,考点内容,考点级别)'
+' values(:考点所在章序号,:考点所在节序号,:考点内容,:考点级别)');
adoquery3.Parameters.Clear;0D
adoquery3.Parameters.ParseSQL(adoquery3.SQL.Text,True);
try//可能会有些DBMS不支持Prepare
adoquery3.Prepared := True;
except
end;
end;procedure ExecQuery//这个函数重复调用
begin adoquery3.Parameters.ParamByName('考点所在章序号').Value := 3;
adoquery3.Parameters.ParamByName('考点所在节序号').Value := 5;
adoquery3.Parameters.ParamByName('考点内容').Value := '美丽的小山村';
adoquery3.Parameters.ParamByName('考点级别').Value := 4;
adoquery3.ExecSQL ;
end;
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
but i think the better way is:
adoquery3.close;
adoquery3.sql.clear;
adoquery3.sql.add('INSERT INTO kaoDianTale 考点所在章序号,考点所在节序号,考点内容,考点级别 values(:考点所在章序号,:考点所在节序号,:考点内容,:考点级别)');
adoquery3.parameters.parambyname('考点所在章序号').value:=3;
adoquery3.parameters.parambyname('考点所在节序号').value:=5;
adoquery3.parameters.parambyname('考点内容').value:='美丽的小山村';
adoquery3.parameters.parambyname('考点级别').value:=4;
adoquery3.execsql;
用 CreateParameter 方法就行了。
每次调用前先把参数清除,然后创建。
用我的方法,如果用的是支持SQL预编译的DBMS,当循环次数很多时,能够提高很多运行效率。 ____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/
AdoQuery1.close
AdoQuery1.sql.clear
AdoQuery1.Sql.add
AdoQuery1.Prepared
AdoQuery1.ExecSql
____ ____
\ p \ / g /
\ l \_/ n /
\ a o /
\ i s /
\ n /
\_/