ADOQuery执行带返回值的存储过程

{
   作者: 围墙
      返回: 存储过程的返回值.
   说明: 这仅仅是一个例子,网上也有人用其他存储过程组件实现执行带参数的存储过程,但是这个例子用的是                     TADOQuery对象,类似的例子网络上非常少,所以我才贴出源码来!这是我围墙原创所写!2016-12-30
}
function CallSQLProcedure(q: TADOQuery): Integer;
begin
    Result := 0;
    with q do
    begin
        Close;
        SQL.Clear;
        SQL.Add('exec SQLProcedureName :ParamIn, :ParamOut output');
        Parameters.Clear;
        Parameters.CreateParameter('ParamIn', ftInteger, pdInput, 4, FID);
        Parameters.CreateParameter('ParamOut', ftInteger, pdOutput, 0, 0); // 存储过程返回参
        Prepared:=true;
        try
            ExecSQL;
//            Result := q.Parameters.ParamValues['ParamOut']; // 可行的,下面一句也可行
            Result := q.Parameters.ParamByName('ParamOut').Value;
        except
        end;
    end;
end;  
{
   作者: 围墙
 语句,并带原子性操作效果
    返回: 是否执行成功.
   说明: 这个例子相对简单,单类似的例子网络上也不少,但大部分都是执行单一指令语句!这是围墙原创所写!2016-12-30
}
function ExecSQLs(q: TADOQuery): Boolean;
begin
    Result := False;
    with q do
    begin
        Close;
        SQL.Clear;
        SQL.Add('begin tran');
        SQL.Add('delete table1 where PID='+IntToStr(FID));
        SQL.Add('update table2 set Status=10,CreateTime=getdate() where ID='+IntToStr(FID));
        SQL.Add('commit tran');
        try
            ExecSQL;
            Result := True;
        except
        end;
    end;
end;  


相关推荐

  • Oracle存储过程返回结果集 过程返回记录集:CREATEORREPLACEPACKAGEpkg_testASTYPEmyrctypeISREFCURSOR;PROCEDUREget(p_idNUMBER,p_rcOUTmyrctype);ENDpkg_test;/CR
  • oracle存储过程返回记录集 oracle存储过程返回记录集  关于数据库的游标(cursor)大家肯定都接触不少,我们可以通过OPEN,FETCH,CLOSE操作控制游标进行各种方便的操作,这方面的例子我就不在重复了。我们现在要介绍的是游标变量(cursorvaria
  • 从存储过程里面执行http post发短消息 从存储过程里面直接执行短信网关的URL,将短消息发出,测试下来还是比较稳定的。要注意的就是文件结尾的char(13)很讨厌,它会导致发信失败,后来发现一个规律,如果最后一个字符的ascii码为0时,就取right(str,len(str)-
  • mysql如何让一个存储过程定时执行 mysql怎么让一个存储过程定时执行查看event是否开启:showvariableslike'%sche%';将事件计划开启:setglobalevent_scheduler=1;关闭事件任务:alterevente_testONCOMP
  • EF 调用存储过程、返回多结果集和OUTPUT参数 等问题 一、EF调用存储过程:1.执行返回表类型的存储过程先上存储过程随手写的一个最简单的.Student.Enrollment,StudentEnrollment.StudentIDStudent.StudentIDEnrollment.Stud
  • C#运用存储过程新增一条记录并返回自动生成的ID @Hcy黄灿奕:http://blog.sina.com.cn/iihcy前言:1、存储过的好处:存储过程相对于其他的数据库访问方法有以下的优点:(1)重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。(2)提高性能。存储
  • Mysql存储过程、触发器和事务 Mysql存储过程、触发器和事务一、存储过程定义存储过程语法:createprocedure过程名(参数1,参数2....)beginsql语句;end创建存储过程之前我们必须修改mysql语句默认结束符;要不能我们不能创建成功,使用del
  • 达内培训:.NET 中使用存储过程(二) 下面是达内老师为大家分享的有关.NET中使用存储过程(二)的内容,前面我们继续为大家分享了.NET中使用存储过程(一)的内容,所以大家要努力学习。使用存储过程更新数据库  以上示例使用存储过程从数据库中提取信息。在复杂应用程序中使用存储过程
  • SQL存储过程基础知识【转载】 原文链接:http://www.cnblogs.com/jiajiayuan/archive/2011/06/15/2081201.html什么是存储过程呢?存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。通俗来讲:存储过程
  • JAVA 执行存储过程(和参数顺序无关,适用oracle数据库) 通常jdbc调用oracle存储过程的输入输出参数都是按顺序,和java端的参数名称没关系,这样当存储过程修改参数时不是非常方便,字段一旦多的话容易错位,这类问题的排查效率也很低,所以想看看有没有办法java端的key值能和sql的参数名称
  • 使用OLE DB和ADO调用返回记录集的Oracle存储过程 摘要OLEDB是建立在ODBC成功基础上的一种开放规范,它为访问和操纵不同类型数据提供开放的标准。ADO是OLDDB的一个消费者,它提供了对OLEDB数据源应用级的访问功能。在应用程序中使用OLEDB和ADO,可以高效地调用返回记录集的Or
  • 数据库存储过程 【存储过程的概念】存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集。经编译后存储在数据库中。存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是由

你的评论

就没有什么想说的吗?

最新博客

关于我们 移动版

©2017传客网    琼ICP备15003173号-2    

本站部分文章来源于互联网,版权归属于原作者。
本站所有转载文章言论不代表本站观点,如是侵犯了原作者的权利请发邮件联系站长(weishubao@126.com),我们收到后立即删除。
站内所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!

X