delphi调用存储过程的问题
delphi代码是:
procedure TForm1.Button1Click(Sender: TObject);
begin
with ADOStoredProc1 do
begin
ADOStoredProc1.ProcedureName:='usp_selectone';
ADOStoredProc1.Parameters.Clear;
ADOStoredProc1.Parameters[0].Name:='@id';
ADOStoredProc1.Parameters[0].Direction:=pdInput;
ADOStoredProc1.Parameters[0].DataType:=ftString;
ADOStoredProc1.Parameters.ParamByName('@id').Value:=Edit1.Text;
ADOStoredProc1.Open;
end
end;
SQL Server的存储过程是:
create procedure usp_selectonea
@id int
AS
SELECT id,value FROM tb where id=@id
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
但是运行的时候报
追问:我的代码是改好了 但是查询的时候报
我现在把代码改了:
with ADODataSet1 do
begin
ADODataSet1.Active:=false;
ADODataSet1.CommandType:=cmdStoredProc;
ADODataSet1.CommandText:='usp_selectone';
ADODataSet1.Parameters.Clear;
ADODataSet1.Parameters.AddParameter;
ADODataSet1.Parameters.CreateParameter('@id',ftString,pdinput,20,0);
ADODataSet1.Parameters.Refresh;
ADODataSet1.Parameters.ParamByName('@id').Value:=Edit1.Text;
ADODataSet1.Active:=true;
ADODataSet1.ExecuteOptions;
end;
存储过程没变