急!!!!!!!在线等待ing。。。。一个简单的问题

tom_sun 2005-04-20 10:28:28
请问各位大虾
在pb中如何引用sqlsever中的存储过程

请各位大虾给我解答。
小弟很菜,希望多多学习。
...全文
136 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sh_zll 2005-04-20
  • 打赏
  • 举报
回复
比如有个存储过程名为new,参数为@Param1,@Param2,
DECLARE new_procedure PROCEDURE FOR
newprocedure @Param1 = :ls_param1, @Param2 = :ls_param2;

EXECUTE newprocedure;//执行

close newprocedure;//关闭存储过程


//ls_param1和ls_param2分别是pb程序中传给它的值 string ls_param1,string ls_param2
//当然也可以是其他不同类型的参数


具体请参见pb帮助
j9dai 2005-04-20
  • 打赏
  • 举报
回复
帮顶
aichangfeng 2005-04-20
  • 打赏
  • 举报
回复
數據源選擇Stored Procedure
tom_sun 2005-04-20
  • 打赏
  • 举报
回复
sh_zll() ( )
大哥能否说明一下.
sh_zll 2005-04-20
  • 打赏
  • 举报
回复
DECLARE logical_procedure_name PROCEDURE FOR
SQL_Server_procedure_name
@Param1 = value1, @Param2 = value2 ;

EXECUTE SQL_Server_procedure_name;
princelily 2005-04-20
  • 打赏
  • 举报
回复
数据库存储过程说明
PowerScript 中调用数据库的存储过程Stored Procedure 时存储过程作为事务对象

的对象函数来使用调用方法为
object.function ()
其中object 是事务对象名function 是存储过程名
需要注意的是只有当应用程序连接到诸如Sybase Oracle Informix 或其他支持存
储过程的ODBC 数据库时才能够使用存储过程
数据库存储过程在使用之前需要首先予以说明可以把存储过程说明成局部外部函
数如果PowerBuilder 开发环境已经连接到某个数据库上并且该数据库系统支持存储过
程那么在Declare Local External Functions 对话框中就会出现一个Procedures 按钮
单击该按钮你就会看到该数据库中已经定义的存储过程
按存储过程的返回值可分为两类一类有返回值我们可以把它看成函数另一类没
有返回值可以把它看成过程在下面的说明语法中函数型存储过程使用FUNCTION
关键字过程型存储过程使用SUBROUTINE 关键字
函数型存储过程说明的语法为说明时应该写成一行
FUNCTION rtndatatype functionname ( { { REF } datatype1 arg1,..., { REF }
datatypen argn } ) RPCFUNC { ALIAS FOR "spname" }
过程型存储过程说明的语法为说明时应该写成一行
SUBROUTINE functionname ( { { REF } datatype1 arg1 , ..., { REF } datatypen
argn } ) RPCFUNC { ALIAS FOR "spname" }
其中
rtndatatype 在函数型存储过程的说明中说明存储过程的返回值类型
functionname 指定存储过程的名称如果该名称不是有效的PowerScript 标
识符或在不同的数据库管理系统中存储过程功能相同但名称不同那么应该
ALIAS FOR 子句为该存储过程说明一个别名
REF 关键字指明参数以引用方式传递省略该关键字时参数以传值方式
传递
datatype arg 指明参数的数据类型以及参数名
RPCFUNC 关键字指明该说明是数据库的存储过程的说明而不是动态链
接库中外部函数的说明
ALIAS FOR "spname" 可选项ALIAS FOR 是关键字spname 是开发人员
为该存储过程起的别名代码中可以使用别名来调用该存储过程
示例1 下面的语句说明一个有返回值的存储过程GIVE_RAISE 说明时应该写成一

FUNCTION double GIVE_RAISE(ref double SALARY) RPCFUNC ALIAS
FOR "GIVE_RAISE_PROC"
代码中可如下调用该存储过程
double val = 20000
double rv
rv = SQLCA.GIVE_RAISE_PROC(val)
示例2 下面的语句说明一个有返回值的存储过程SPM8 但没有使用别名
FUNCTION integer SPM8(integer value) RPCFUNC
代码中可如下调用该存储过程:
int myresut
myresult = SQLCA.spm8(myresult)
if SQLCA.sqlcode <> 0 then
messagebox("error",SQLCA.sqlerrtext)
end if
tom_sun 2005-04-20
  • 打赏
  • 举报
回复
gg不是datawin
我说的是在程序代码中如何引用.
谢谢阿
多多赐教
xxdyy 2005-04-20
  • 打赏
  • 举报
回复
如果是datawindow的话,只要定义datawindows时data source 选择 Stored Procedure就可

1,108

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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