社区
数据库
帖子详情
使用ado调存储过程如何得到return的返回值?
zhabj925
2003-09-11 05:55:18
pCmd->CommandText=_bstr_t("InsertTrans");//存储过程的名称
pCmd->ActiveConnection = pConn; //需要使用的ADO连接
pCmd->CommandType=adCmdStoredProc;
pCmd->Execute(NULL, NULL, adCmdStoredProc);
Execute()如何得到返回值。
...全文
35
2
打赏
收藏
使用ado调存储过程如何得到return的返回值?
pCmd->CommandText=_bstr_t("InsertTrans");//存储过程的名称 pCmd->ActiveConnection = pConn; //需要使用的ADO连接 pCmd->CommandType=adCmdStoredProc; pCmd->Execute(NULL, NULL, adCmdStoredProc); Execute()如何得到返回值。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhabj925
2003-09-11
打赏
举报
回复
知道了,把Param的Direct设为Return即可。
Oversense
2003-09-11
打赏
举报
回复
如果 execute 执行的是select 啊之类
execute 就会返回一个recordset
Delphi
使用
ADO
连接池(
存储过程
示例)
一个
使用
ADO
连接池的示例,演示了T
ADO
StoredProc动态参数的
使用
,带重连机制 =================== unit UnitDemo; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm2 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2; //数据库服务器 gDBServer: String = '127.0.0.1'; //数据库名称 gDBName: String = 'master'; //数据库用户名 gDBUser: String = 'sa'; //密码 gDBPass: String = '2001'; implementation {$R *.dfm} uses
ADO
DB, Unit
ADO
ConnectionPool; const CreateSQL = 'create procedure TestMyPool (@type sysname) '#13#10+ 'as'#13#10+ 'select * from sysobjects where xtype=@type'#13#10+ '
return
@@rowcount'; DeleteSQL = 'if Exists(select 1 from sysobjects where xtype=N''P'' and name=N''TestMyPool'')'#13#10+ ' drop procedure TestMyPool'; var gPoolMan: T
ADO
ConnPoolMan = Nil; procedure TForm2.Button1Click(Sender: TObject); var
ADO
Object:T
ADO
ConnPoolObject;
ADO
StoredProc:T
ADO
StoredProc; Running :Integer; I: Integer; begin //取得一个
存储过程
资源(含一数据库有效连接)
ADO
Object := gPoolMan.CreateSP('TestMyPool'); if
ADO
Object = Nil then //取得资源失败 Exit; try
ADO
StoredProc :=
ADO
Object.ExecObject as T
ADO
StoredProc; Running := 2;//允许重试(两次)操作,以便在操作失败之后达到重连 while Running>0 do begin Dec(Running); if
ADO
Object.NeedRefresh then begin//判断是否有重连标志(比如数据库断开等,可能需要进行重连) if Not
ADO
Object.Reconnect then Exit;
ADO
Object.NeedRefresh := Not
ADO
StoredProc.Parameters.Refresh; if
ADO
Object.NeedRefresh then Exit; end; for I := 1(*Zero is the *Result* Parameter*) to
ADO
StoredProc.Parameters.Count - 1 do begin //========================= //传递参数
ADO
StoredProc.Parameters.Items[I].Value := 'U'; //========================= end; if Running 0 then try //执行
存储过程
ADO
StoredProc.Open; //执行
存储过程
成功,退出循环进入后续的数据处理 break; except On E:Exception do begin //执行失败非程序级的异常通常有两种可能: //1.数据库连接断开 //2.自适合的参数传递当中可能
存储过程
已更新,参与不一致 //设置重连标志
ADO
Object.NeedRefresh := True; //=================== //这里记录数据库操作失败日志 //=================== end; end; Exit; end; //========================== //从
ADO
StoredProc当中读取记录 ShowMessage(IntToStr(
ADO
StoredProc.Parameters.ParamByName('Result').Value)); //========================== //关闭存储对象的资源
ADO
StoredProc.Close; finally //
调
用结束,释放资源
ADO
Object.Free; end; end; procedure TForm2.FormCreate(Sender: TObject); var
ADO
Conn:T
ADO
Connection; begin (****************BEGIN*******************) (*注:仅为测试准备 *) //初始化测试环境
ADO
Conn := Nil; if Not T
ADO
ConnPoolMan.Connect
ADO
( gDBServer,gDBUser,gDBPass,gDBName,true,
ADO
Conn) then Exit; try
ADO
Conn.Execute(DeleteSQL);
ADO
Conn.Execute(CreateSQL); finally try
ADO
Conn.Close; except end;
ADO
Conn.Free; end; (*****************END********************) //初始化连接池 gPoolMan := T
ADO
ConnPoolMan.Create(gDBServer,gDBUser,gDBPass,gDBName,true); end; procedure TForm2.FormDestroy(Sender: TObject); var
ADO
Conn:T
ADO
Connection; begin //释放连接池 if Assigned(gPoolMan) then gPoolMan.Free; (****************BEGIN*******************) (*注:仅为测试准备 *) //清理测试环境
ADO
Conn := Nil; if Not T
ADO
ConnPoolMan.Connect
ADO
( gDBServer,gDBUser,gDBPass,gDBName,true,
ADO
Conn) then Exit; try
ADO
Conn.Execute(DeleteSQL); finally try
ADO
Conn.Close; except end;
ADO
Conn.Free; end; (*****************END********************) end; end.
c++通过
ado
获取
存储过程
的
return
返回值
今天写了个sql server 2005的
存储过程
,主要代码很简单,就是想测试
存储过程
中既有输入参数,又有
返回值
时,如何用C++去
调
用并获取
返回值
。一开始总不能运行,后来又莫名其妙地可以运行了,故写在这里做个记录。
存储过程
源码: ALTER PROCEDURE [dbo].[PublishSchema] @mSchemaID int AS declare @m
Return
Value int
C#
调
用
存储过程
Return
返回值
Return
返回值
使用
返回值
表示
存储过程
的执行状态,它类似于输出参数,其区别: (1)
返回值
只能返回sql整数值; (2)
返回值
不能在
存储过程
内部声明,它
使用
Transcat-SQL的
RETURN
语句返回。 看例子: CREATE PROCEDURE User_Login ( @LoginID varchar(50), @UsrPassword varchar(50) ) AS
ado
.net获取
存储过程
的
返回值
假设有
存储过程
如下:--------------------------------------------- CREATE proc sp_uptmp @tmpName varchar(50),@srcPos varchar(255)as Begin TRAN insert into t_template values(@tmpName,@srcPos)COMMIT retur...
VC
ADO
调
用
存储过程
并获得
返回值
和 记录集
VC
ADO
调
用
存储过程
并获得
返回值
和 记录集 作者:雲中鶴 来源:博客园 发布时间:2009-12-25 09:16 阅读:184 次 原文链接 [收藏] 更新注意事项:1,如果是
存储过程
需要返回记录集:需要在
存储过程
里面设置:SET NOCOUNT ON否则在
使用
m_recordset的时候
数据库
4,012
社区成员
39,817
社区内容
发帖
与我相关
我的任务
数据库
VC/MFC 数据库
复制链接
扫一扫
分享
社区描述
VC/MFC 数据库
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章