求一个 ADOCommand 或者 ADOStoredproc 使用 存储过程 的 实例

auqfiudh 2008-09-10 02:16:45
最近看的那些书比较凌乱,
所以需要一个具体实例来帮忙整理下思路.

小弟先谢 了


要求:
插入数据后返回来结果集的 存储过程 也要附上
表名 Tabel1 字段: Name VARChar(12), Age(Int)



...全文
141 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
auqfiudh 2008-09-10
  • 打赏
  • 举报
回复
僵还是老的辣


受教了...


^-^
shuihan20e 2008-09-10
  • 打赏
  • 举报
回复
刚才没看到这帖子啊
僵哥 2008-09-10
  • 打赏
  • 举报
回复
其实可以看看我发布的资源:Delphi使用ADO连接池(存储过程示例)
僵哥 2008-09-10
  • 打赏
  • 举报
回复
CREATE PROCEDURE InsertSomeThing
(
@Name varchar(12),
@Age int
)
AS
begin transaction --开启事务
insert into table1(Name,Age) values(@Name,@Age) --插入数据
if @@error<> 0 --判断错误码
begin
rollback transaction --出错则回滚事务
select -1 as ErrorNo,'新增数据失败' as ErrorMessage
return -1 --返回 -1 作为错误码
end

commit transaction --提交事务
select * from table1(nolock) --返回结果集
return 0 --返回 0 表示没有发生错误


TADOConnection一个:ADOConnection1 自己连接好数据库
TADOStoredProc一个:ADOStoredProc1 设置Connection为ADOConnection1

ADOStoredProc1.ProcedureName := 'InsertSomeThing'; --设置存储过程名称
ADOStoredProc1.Parameters.Refresh; --刷新ADOStoredproc1,让它自动取得存储过程的参数信息
ADOStoredProc1.Parameters.ParamByName('@Name').Value := StringOfName; //姓名
ADOStoredProc1.Parameters.ParamByName('@Age').Value := IntegerOfAge; //年龄
ADOStoredProc1.Prepared := true;
ADOStoredProc1.Open;
if ADOStoredProc1.Parameters.ParamByName('@RETURN_VALUE').Value = 0 then
begin//成功
//这里可以读取ADOStoredproc1的数据集记录

end else begin //失败
//新增数据失败
end;
fangsp 2008-09-10
  • 打赏
  • 举报
回复
顶一下
内存泄漏 2008-09-10
  • 打赏
  • 举报
回复
这个要修改存储过程,让它在最后用select返回这个记录集了..
auqfiudh 2008-09-10
  • 打赏
  • 举报
回复
结果集里包含了插入的那条数据
auqfiudh 2008-09-10
  • 打赏
  • 举报
回复
如果是一个空集,那么插入数据后,返回来的就是我插入的那条数据了.

最好注解下 谢谢 ^-^
僵哥 2008-09-10
  • 打赏
  • 举报
回复
结果集包含什么?

2,499

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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