*************如何调用一个带有参数的存储过程***************

einsteincao 2004-07-17 04:57:55
存储过程 p_findstore

一个传入参数 @input

一个传出参数 @output

该如何做

能否给出代码..
...全文
250 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
robin0925 2004-08-31
  • 打赏
  • 举报
回复
倒分贴!
lcg200x 2004-07-21
  • 打赏
  • 举报
回复
cn=new SqlConnection (cnString);
cn.Open();
cm=new SqlCommand("sp_decrypt",cn);

cm.CommandType=CommandType.StoredProcedure;
SqlParameter param;
//add the input parameter
param = cm.Parameters.Add("@objectName", SqlDbType.NVarChar, 50);
param.Value =listTable_SP.SelectedItem.Text;


// Add the output parameter.
param = cm.Parameters.Add("@SqlText", SqlDbType.VarChar,4000);
param.Direction = ParameterDirection.Output;

// Execute the command.
cm.ExecuteNonQuery();
补充 lyhold(让你飞) 的代码
object a = cm.Parameters[1].Value;
这样获取输出参数的值。
NetBoyShaB 2004-07-21
  • 打赏
  • 举报
回复
为什么我用Parameter,搞不了呢。
gkwww 2004-07-19
  • 打赏
  • 举报
回复

用SqlParameter 对象,就像上面写的。
lyhold 2004-07-19
  • 打赏
  • 举报
回复
lionlsl(林)
强,delphi的调用例子都贴上!
de
lyhold 2004-07-19
  • 打赏
  • 举报
回复
cn=new SqlConnection (cnString);
cn.Open();
cm=new SqlCommand("sp_decrypt",cn);

cm.CommandType=CommandType.StoredProcedure;
SqlParameter param;
//add the input parameter
param = cm.Parameters.Add("@objectName", SqlDbType.NVarChar, 50);
param.Value =listTable_SP.SelectedItem.Text;


// Add the output parameter.
param = cm.Parameters.Add("@SqlText", SqlDbType.VarChar,4000);
param.Direction = ParameterDirection.Output;

// Execute the command.
cm.ExecuteNonQuery();
李洪喜 2004-07-19
  • 打赏
  • 举报
回复
//创建一个Sql命令对象,用来插入记录
System.Data.OleDb.OleDbCommand mycmd = new System.Data.OleDb.OleDbCommand(updatesql,DB.OleConn());
mycmd.CommandType = CommandType.StoredProcedure;
mycmd.Parameters.Add("@image",System.Data.OleDb.OleDbType.VarBinary);
mycmd.Parameters.Add("@bh",OleDbType.VarChar,20);
mycmd.Parameters.Add("@bh2",System.Data.OleDb.OleDbType.VarChar,20);
mycmd.Parameters.Add("@tbname",System.Data.OleDb.OleDbType.VarChar,50);

mycmd.Parameters["@image"].Value = Content;
mycmd.Parameters["@bh"].Value =bh;
mycmd.Parameters["@bh2"].Value = bh2;
mycmd.Parameters["@tbname"].Value = tbname;
mydelphiworld 2004-07-17
  • 打赏
  • 举报
回复
up
lionlsl 2004-07-17
  • 打赏
  • 举报
回复


//获得员工编号

procedure TfrmEmployee.sbtnCreateEmployeeNoClick(Sender: TObject);
var sYear :string;
begin
inherited;
if trim(dbedtWorkDate.Text) ='' then
begin
application.MessageBox('没有输入工作日期','提示',mb_ok) ;
dbedtWorkDate.SetFocus ;
exit;
end;
sYear := copy(trim(dbedtWorkDate.Text),1,4);
if astpEmployeeNo.Active then astpEmployeeNo.close;
astpEmployeeNo.Parameters.Clear ;

// 调用存储过程 BDE
// astpEmployeeNo.StoredProcName := 'PROEMPLOYEENO';
// astpEmployeeNo.Params.CreateParam(ftString, 'SYEAR', ptInput) ;
// astpEmployeeNo.Params.CreateParam(ftString, 'RETURNEMPLOYEENO', ptOutput) ;

// 调用函数 BDE
// astpEmployeeNo.StoredProcName := 'GETEMPLOYEENO';
// astpEmployeeNo.Params.CreateParam(ftString, 'SYEAR', ptInput) ;
// astpEmployeeNo.Params.CreateParam(ftString, 'RETURN_VALUE', ptResult) ;
// astpEmployeeNo.ParamByName('SYEAR').Value :=sYear ;

// 调用存储过程 ADO
// astpEmployeeNo.ProcedureName :='PROEMPLOYEENO';
// astpEmployeeNo.Parameters.CreateParameter('SYEAR',ftString,pdInput,4,null) ;
// astpEmployeeNo.Parameters.CreateParameter('RETURNEMPLOYEENO',ftString,pdOutput,8,null) ;

// 调用函数 ADO
astpEmployeeNo.ProcedureName :='FUNEMPLOYEENO';
astpEmployeeNo.Parameters.CreateParameter ('Param1',ftString,pdReturnValue,8,null) ;
astpEmployeeNo.Parameters.CreateParameter('SYEAR',ftString,pdInput,4,null) ;
astpEmployeeNo.Parameters.ParamByName('SYEAR').Value := sYear;
try
astpEmployeeNo.ExecProc ;
dbedtEmployeeNo.Text := astpEmployeeNo.Parameters.ParamByName('Param1').Value;
//dbedtNo.Text := astpEmployeeNo.Parameters.ParamByName('RETURNEMPLOYEENO').Value ; //过程调用
except
Application.MessageBox(pchar('产生函数有错,请重试'), '提示', MB_OK);
exit;
end;
end;
希望对你有帮助
einsteincao 2004-07-17
  • 打赏
  • 举报
回复
up
einsteincao 2004-07-17
  • 打赏
  • 举报
回复
如何取得返回的参数

是指在Delphi当中把 @a output 取到啊..

sankis 2004-07-17
  • 打赏
  • 举报
回复
怎么个传出法啊??

返回一个参数????
einsteincao 2004-07-17
  • 打赏
  • 举报
回复
传出参数呢??

SanKis 大哥帮帮忙吧..
sankis 2004-07-17
  • 打赏
  • 举报
回复
close;
commandtext:='execute p_findstore'+Str('@Input')
Execute;
einsteincao 2004-07-17
  • 打赏
  • 举报
回复
不是这个意思

是不是ADOCommand.CommandType := StoreProcedure;
ADOCommand.CommandText := 'p_findstore'

??

传入传出参数如何做呢?
sankis 2004-07-17
  • 打赏
  • 举报
回复
错了。传入的是execute p_findstore @Input
传出的是你在p_findstore中定义的变量,就像@Input一样的用法。
sankis 2004-07-17
  • 打赏
  • 举报
回复
execute p_findstore @output

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧