我的數據庫存儲器代碼如下:
CREATE PROCEDURE fPurch_store(@StringItem char)
as
set nocount on
declare @fStoreapp varchar (20)
.....
from purcheseapp where purcheseapp=@stringItem
...
在delphi中是這樣調用的
begin
ADOStoredProc2.Parameters.Clear;
ADOStoredProc2.Parameters.Add;
ADOStoredProc2.Parameters[0].Name :='@StringItem';
ADOStoredProc2.Parameters.ParamByName('@StringItem').Value:=string(edit2.Text);
ADOStoredProc2.execproc;
end;
但運行是它總是寫入一筆空值,我在存儲器中硬賦值給@stringItem能寫入一批記錄,在DELPHI中用上面代碼寫入的是空值,其原因是賦值沒有真正賦給存儲器中的@stringItem,這樣造成每次運行時,只執行一個空指令,請高手幫忙解決此問題,謝謝!!!!
CREATE PROCEDURE fPurch_store(@StringItem char)
as
set nocount on
declare @fStoreapp varchar (20)
.....
from purcheseapp where purcheseapp=@stringItem
...
在delphi中是這樣調用的
begin
ADOStoredProc2.Parameters.Clear;
ADOStoredProc2.Parameters.Add;
ADOStoredProc2.Parameters[0].Name :='@StringItem';
ADOStoredProc2.Parameters.ParamByName('@StringItem').Value:=string(edit2.Text);
ADOStoredProc2.execproc;
end;
但運行是它總是寫入一筆空值,我在存儲器中硬賦值給@stringItem能寫入一批記錄,在DELPHI中用上面代碼寫入的是空值,其原因是賦值沒有真正賦給存儲器中的@stringItem,這樣造成每次運行時,只執行一個空指令,請高手幫忙解決此問題,謝謝!!!!
ADOStoredProc2.ProcedureName:='fPurch_store';
ADOStoredProc2.Parameters.Refresh;ADOStoredProc2.Parameters[1].value:=edit2.Text;
ADOStoredProc2.execproc;
iBear(大熊 不要怀疑我的温柔):你能說的具體一些嗎?我上面的代碼要怎樣修改才能達到我的要求。
ADOStoredProc2.Parameters.ParamByName('@StringItem').Value:=string(edit2.Text);已將下標為0的指派給@stringItem再給它賦值應該是沒錯啊?可還是沒有賦給@stringItem這到底是為什麼?
sproc: TAdostoreprocedure;
begin
sproc:= TAdostoreprocedure.create(nil);
with sproc do
try
connection:= adoconn;//数据库连接adoconntion procedurename:= 'proc_name'; //存储过程名称
with parameters.addparameter do
begin
name:= 'p_name';//参数名称
datatype:= ftinteger;
direction:= pdinput;
value:= spedit.value;
end;
try
execproc;
except
//
end; finally
free;
do;
end;