我用的是DELPHI2009 MYSQL5.0。我做的是李维的例子:http://book.csdn.net/bookfiles/155/1001556640.shtml
spMath是TSQLStoredProc,只要一点击TotalScore按钮就出错,错误提示是:invalid parameters。存储过程的EID是INT型,rpercent是float型。
procedure TForm1.TotalScoreClick(Sender: TObject);
begin dmstudent.spMath.Params.ParamByName('EID').Value:=
StrToInt(combobox1.Text);
dmstudent.spMath.Params.ParamByName('RPercent').Value:=
StrToFloat(edit1.Text); dmstudent.spMath.ExecProc;
dmstudent.sdsMath.Refresh;
end;
spMath是TSQLStoredProc,只要一点击TotalScore按钮就出错,错误提示是:invalid parameters。存储过程的EID是INT型,rpercent是float型。
procedure TForm1.TotalScoreClick(Sender: TObject);
begin dmstudent.spMath.Params.ParamByName('EID').Value:=
StrToInt(combobox1.Text);
dmstudent.spMath.Params.ParamByName('RPercent').Value:=
StrToFloat(edit1.Text); dmstudent.spMath.ExecProc;
dmstudent.sdsMath.Refresh;
end;
dmCallStoredProc.spRaiseSalary.Params.ParamByName('EID').Value :=
cbEID.Text;
dmCallStoredProc.spRaiseSalary.Params.ParamByName('RPERCENT').Value :=
StrToFloat(edtPercent.Text);而你两个都是转成了int型
dmstudent.spMath.Params.ParamByName('@RPercent').Value:= StrToFloat(edit1.Text); 或用adoquery adoquery1.sql.text:= 'call RAISESALARY('''+combobox1.text+''','+edit1.txt+');'
adoquery1.execsql;
ADOStoredProc1.Parameters.CreateParameter
TSQLStoredProc控件里我选了我的数据库和存储过程,然后就能看到两个参数EID和RPercent。难道还要再创建一次参数吗?