如何在PB中调用别的运用执行程序中的过程调用和EXE文件

PB调用存储过程,需要返回多个值 [问題点数:100分结帖人feiyond]

我使用ODBC连接,数据库是Sql server2005,在存储过程中我计算了两个值,然后在Pb中我定义了两个变量,调用存储过程时传递这两个变量到存储過程中,例如:


专用连接1楼的没问题,odbc用下面的方法:

假如需要调用下面的存储过程:

这时会打开一个声明函数的窗口 

选择即可生成函数如選择p_aaa的时候生成如下函数声明 

4、保存你的对象为:uo_tran

6、然后你在执行程序中的过程调用中就可以象使用函数一样调用您的存储过程,如: 

  鼡于返回每个返回值时用PowerScrip如下:
存储过程简介 
一、存储过程介绍
  存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存儲在数据库服务器中使用时只要调用即可。在ORACLE中若干个有联系的过程可以组合在一起构成执行程序中的过程调用包。
  使用存储过程有以下的优点:
  * 存储过程的能力大大增强了SQL语言的功能和灵活性存储过程可以用流控制语句编写,有很强的灵活性可以完成复雜的判断和较复杂的运算。
  * 可保证数据的安全性和完整性
  # 通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,從而保证数据的安全
  # 通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性
  * 再运行存储过程前,数据库巳对其进行了语法和句法分析并给出了优化执行方案。这种已经编译好的过程可极大地改善SQL语句的性能
  由于执行SQL语句的大部分工莋已经完成,所以存储过程能以极快的速度执行
  * 可以降低网络的通信量。
  * 使体现企业规则的运算执行程序中的过程调用放入数據库服务器中以便:
  # 当企业规则发生变化时在服务器中改变存储过程即可,无须修改任何应用执行程序中的过程调用企业规则的特点是要经常变化,如果把体现企业规则的运算执行程序中的过程调用放入应用执行程序中的过程调用中则当企业规则发生变化时,就需要修改应用执行程序中的过程调用工作量非常之大(修改、发行和安装应用执行程序中的过程调用)如果把体现企业规则的运算放入存储过程中,则当企业规则发生变化时只要修改存储过程就可以了,应用执行程序中的过程调用无须任何变化
  不同数据库存储过程的写法不一,在后面的讲座中将分别介绍ORACLE和SYBASE存储过程的用法
  二、ORACLE 的存储过程
  ORACLE 创建存储过程的语法为:
  下面举例说明ORACLE数据庫存储过程的写法和用法。
  可以建立一个存储过程每当用户修改数据库的重要数据时,即把用户的用户名、日期和操作类型记录下來:
  可以在恰当的位置调用这个存储过程来记录用户对表的修改例如下面在表sal_comm上建立一个修改触发器,每当用户修改此表后用户嘚名称、修改时间和操作即被记录在了表update_log_tab中:
  三、Sybase的存储过程
  尽管Sybase存储过程的功能和写法与ORACLE类似,但他们之间还是有一定的差别下面讲述SYBASE的存储过程。
  下面是一个查询作者编码、名称和生日的存储过程:
  在CREATE PROC语句中可以为参数赋缺省值,该值可以是任何瑺量当用户不提供参数值时,该值便作为参数值提供给过程
谈谈PB中存储过程(Stored Proedure)的使用
  存储过程(Stored Produre)是为了完成特定的功能而汇集成一组的SQL语句集,并为该组SQL语句命名经编译后存储在SQL Server的数据库中。用户可以根据需要决定是否在每次执行时让SQL Server进行重新编译用户可鉯指定存储过程的名字和给出参数来执行它。
  2、存储过程的优点:
  使用存储过程可以提高:
  用存储过程进行对输入仓位的查詢:

的總結真好非常完整!

經常看到你的精彩解說!

匿名用户不能发表回复!

楼主可以参照我下面收藏的内容

利用pb数据窗口和存储过程创建动态报表的模板执行程序中的过程调用使用这个模板后不再需要在前台编写任何代码,只需要写好存储过程和配置好相关信息即可,这样pb执行程序中的过程调用中报表都可以直接用模板来完成显示而不用写任何的代码和窗口;以下列出这个功能的思路,


//:修改数据窗口的列标题和内容的外观(颜色是否突出显示,是否奇偶行颜色区分等)


在pb8.0中写了如下代码来调用:

    现发现問题是,存储过程己按我的要求正确完成了(我打开数据库发现图书表的价格己按要求更改了),但PB中的sqlca.sqlcode却不等于0,这是为何呢?哪位大侠帮我指点迷津!

另外还有一个问题是,我想在PB中执行有输入参数和返回参数的存储过程,在ms sql server2000中建立了如下存储过程,代码如下:

像上面的存储过程怎样在PB中调用?謝谢!

我要回帖

更多关于 执行程序中的过程调用 的文章

 

随机推荐