存储过程如下:
CREATE PROCEDURE CheckCustomerID(@customer_id VARCHAR(3),@ReturnValue varchar(20) output)
WITH ENCRYPTION
AS--判断客户编号是否存在
if not exists ( select * from CustomerInformation where customer_id = @customer_id )
begin
set @ReturnValue = '此客户编号不存在'
return 0
end
go
CREATE PROCEDURE CheckCustomerID(@customer_id VARCHAR(3),@ReturnValue varchar(20) output)
WITH ENCRYPTION
AS--判断客户编号是否存在
if not exists ( select * from CustomerInformation where customer_id = @customer_id )
begin
set @ReturnValue = '此客户编号不存在'
return 0
end
go
begin
ExecProc;
if Parameters[2].Value='此客户编号不存在' then
....
else
....
end;我觉得存储过程的参数@ReturnValue 设成数字型还好一些。让它返回0或1就是了
with dm.ADOStoredProc1 do
begin
Close;
ProcedureName:='CheckCustomerID';
Parameters.Refresh;
Prepared;
Parameters.ParamValues['@customer_id'].Value := edtLayOuter.Text;
ExecProc;
if Parameters[2].Value = '此客户编号不存在' then
showmessage('此客户编号不存在');
end;但总是报错:
parameters '@customer_id' not find.why???
begin
Close;
ProcedureName:='CheckCustomerID';
Parameters.Refresh;
Prepared;
Parameters.ParamValues['customer_id'].Value := edtLayOuter.Text;
ExecProc;
if Parameters[2].Value = '此客户编号不存在' then
showmessage('此客户编号不存在');
end;
其次,你的参数可以设置返回值的类型,不要自动对应。还是个数的对应。
WITH ENCRYPTION
AS--判断客户编号是否存在
if not exists ( select * from CustomerInformation where customer_id = @customer_id )
begin
set @ReturnValue = 0
return @ReturnValue
end
go调用的过程有谁能帮我写一下。