zoukankan      html  css  js  c++  java
  • DELPHI存储过程调用

    网上对该问题的帖子很多,但是经常不是很全面,笔者在使用时也遇到了很多实际问题,比如参数不存在啊、类型没有引用啊等等。下面我尽量细致地来通过例子实现一下,如果还有不正确的地方,希望得到高手指点,
     
    首先,我们使用一种简单的方式,即通过控件的方式来定义存储过程和数据源。
    新建一个单元,命名为:DataMConn,在加入一个ADO单元下的ADOStoredProc,这里命名为ADOSPTempAbove ,再加入Data Access单元下的一个DataSource,这里命名为DataSourceAbove,设置DataSourceAbove的DataSet属性为ADOSPTempAbove,当然这个属性也可以在程序中指定。
    下面,可以在另一个单元中添加一个DataGrid,这里的命名为dgAbove。下面的代码加了详细注释。
    With DataMConn.ADOSPTempAbove do
        begin
          ProcedureName := 'GetAbove';   //指定存储过程名称
          Parameters.Clear;              //清除原有参数
          //以下创建了两个新的参数,关于如何传递表名做为参数请参我在 数据库 分类的高级应用中写的文章。
          Parameters.CreateParameter('@tableName',ftString,pdinput,20,0);
          Parameters.CreateParameter('@strDate',ftString,pdinput,20,0);
          //以下为参数赋值
          Parameters.ParamByName('@tableName').Value := tempTableName;
          Parameters.ParamByName('@strDate').Value := strDate;
          try
            Open;   //返回结果集用open,否则用EexcProc;
          except
           begin
             ShowMessage('打开表错误');
             Exit;
           end;
          end;
        //如果没有在控件属性中设置DataSourceAbove的DataSet属性,可以在这里设置:
        //DataSourceAbove.DatSet := DataMConn.ADOSPTempAbove 
        dgAbove.DataSource := DataMConn.DataSourceAbove;
      end;
  • 相关阅读:
    jQuery的动画以及扩展功能
    yii2 redirect重定向
    nvaicat mysql ssh 跳板机(堡垒机???)连接服务器
    Linux下Redis的安装
    深入理解PHP的运行模式
    thinkphp5 如何监听sql?
    thinkphp5 如何使用查询事件?
    layui laydate is not defined
    CSS 实现图片灰度效果 兼容各种浏览器
    PHP基础学习----函数
  • 原文地址:https://www.cnblogs.com/smallmuda/p/1312586.html
Copyright © 2011-2022 走看看