求助:SQL语句错误[Prarmeter对象被不正确地定义,提供了不一致或不完整的信息] ( 积分: 50 )

  • 主题发起人 主题发起人 冰冷的雨
  • 开始时间 开始时间

冰冷的雨

Unregistered / Unconfirmed
GUEST, unregistred user!
错误:Prarmeter对象被不正确地定义,提供了不一致或不完整的信息
程序片断如下:
Area:=0

for i:=1 to 35 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT N'+inttostr(i)+' FROM Lottery7in35');
Active:=True;
ExecSQL;
temp:=RecordCount;
Close;
SQL.Clear;
SQL.Add(
'INSERT INTO CoolOrHot(Number,Degree,TimeArea) VALUES(:vI,:vTemp,:vArea)'
);
Active:=True;
ExecSQL

end;
 
错误:Prarmeter对象被不正确地定义,提供了不一致或不完整的信息
程序片断如下:
Area:=0

for i:=1 to 35 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT N'+inttostr(i)+' FROM Lottery7in35');
Active:=True;
ExecSQL;
temp:=RecordCount;
Close;
SQL.Clear;
SQL.Add(
'INSERT INTO CoolOrHot(Number,Degree,TimeArea) VALUES(:vI,:vTemp,:vArea)'
);
Active:=True;
ExecSQL

end;
 
"-"
 
是用的半角的减号啊
 
delphi7没有这个问题。6好像有的。
 
首先,你的程序有几個錯誤的地方
Area:=0

for i:=1 to 35 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT N'+inttostr(i)+' FROM Lottery7in35');
Active:=True;
ExecSQL
//SELECT查詢語句只要Active:=True;或Open;就可以了,ExecSQL是執行沒有返回結果的SQL語句.
temp:=RecordCount;
Close;
SQL.Clear;
SQL.Add('INSERT INTO CoolOrHot(Number,Degree,TimeArea) VALUES(:vI,:vTemp,:vArea)');
//這里少了參數付值
Active:=True
//INSERT INTO,DELETE,UPDATE等無返回結果的SQL語句不能設Active:=True;
ExecSQL

end;
正確的代碼如下:
Area:=0

for i:=1 to 35 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT N'+inttostr(i)+' FROM Lottery7in35');
Active:=True;
temp:=RecordCount;
Close;
SQL.Clear;
SQL.Add('INSERT INTO CoolOrHot(Number,Degree,TimeArea) VALUES(:vI,:vTemp,:vArea)');
Parameters.ParamByName('vI').Value:=vI的值;
Parameters.ParamByName('vTemp').Value:=vTemp的值;
Parameters.ParamByName('vArea').Value:=vArea的值;
ExecSQL

end;
 
谢谢clwlyc,按您的指点修改后,错误变成了“INSERT INTO 语句的语法错误”,
麻烦您再看看。
 
谢谢clwlyc,按您的指点修改后,错误变成了“INSERT INTO 语句的语法错误”,
麻烦您再看看。
说明:CoolOrHot是表名,Number,Degree,TimeArea是字段名
SQL.Add(
'INSERT INTO CoolOrHot(Number,Degree,TimeArea) VALUES(:vI,:vTemp,:vArea)');
 
接受答案了.
 
后退
顶部