水
水印
Unregistered / Unconfirmed
GUEST, unregistred user!
请教:最近,我在用midas组件开发C/S程序,数据库为SQL SERVER2000,当客户端采用
带返回参数的方式调用存储过程时,无法返回存储过程返回的结果参数,客户端的参数
是动态产生的(DataSet为TClientDataSet,用TDcomconnect连接,Server程序
采用TDataBase,TQuery,TDataSetProvider等),如:
DataSet.Close;
// ClearDatasetParams(DataSet);
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[0].Name:='old_pwd';
DataSet.Params[0].DataType:=ftstring;
DataSet.Params[0].ParamType:= ptinput;
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[1].Name:='new_pwd';
DataSet.Params[1].DataType:=ftstring;
DataSet.Params[1].ParamType:= ptinput;
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[2].Name:='user_name';
DataSet.Params[2].DataType:=ftstring;
DataSet.Params[2].ParamType:= ptinput;
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[3].Name:='returns';
DataSet.Params[3].DataType:=ftinteger;
DataSet.Params[3].ParamType:= ptinputoutput;
DataSet.CommandText:='execute coalstation.modify_password
ld_pwd,'+
':new_pwd,:user_name,:returns output' ;
DataSet.Params.ParamByName('old_pwd').asstring:=trim(RzEdit2.Text);
DataSet.Params.ParamByName('new_pwd').asstring:=trim(RzEdit1.text);
DataSet.Params.ParamByName('user_name').asstring:=trim(RzEdit1.text);
DataSet.Params.ParamByName('returns').asinteger:=-1000;
DataSet.Execute;
except
case Dataset.Params.ParamByName('returns').asinteger of
-1200:begin
messagebox(handle,'此用户不存在!,不能保存','警告',mb_ok);
end;
-1100:begin
messagebox(handle,'处理数据时出错!','警告',mb_ok);
end;
end;
result:=-1;
exit;
end;
带返回参数的方式调用存储过程时,无法返回存储过程返回的结果参数,客户端的参数
是动态产生的(DataSet为TClientDataSet,用TDcomconnect连接,Server程序
采用TDataBase,TQuery,TDataSetProvider等),如:
DataSet.Close;
// ClearDatasetParams(DataSet);
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[0].Name:='old_pwd';
DataSet.Params[0].DataType:=ftstring;
DataSet.Params[0].ParamType:= ptinput;
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[1].Name:='new_pwd';
DataSet.Params[1].DataType:=ftstring;
DataSet.Params[1].ParamType:= ptinput;
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[2].Name:='user_name';
DataSet.Params[2].DataType:=ftstring;
DataSet.Params[2].ParamType:= ptinput;
DataSet.Params.AddParam(Tparam.Create(DataSet.Params));
DataSet.Params[3].Name:='returns';
DataSet.Params[3].DataType:=ftinteger;
DataSet.Params[3].ParamType:= ptinputoutput;
DataSet.CommandText:='execute coalstation.modify_password
![Eek! :o :o](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f631.png)
':new_pwd,:user_name,:returns output' ;
DataSet.Params.ParamByName('old_pwd').asstring:=trim(RzEdit2.Text);
DataSet.Params.ParamByName('new_pwd').asstring:=trim(RzEdit1.text);
DataSet.Params.ParamByName('user_name').asstring:=trim(RzEdit1.text);
DataSet.Params.ParamByName('returns').asinteger:=-1000;
DataSet.Execute;
except
case Dataset.Params.ParamByName('returns').asinteger of
-1200:begin
messagebox(handle,'此用户不存在!,不能保存','警告',mb_ok);
end;
-1100:begin
messagebox(handle,'处理数据时出错!','警告',mb_ok);
end;
end;
result:=-1;
exit;
end;