PowerBuilder数据库连接池?如何
-
02-07-2019 - |
题
如何在 PowerBuilder (v9+) 中创建数据库连接池...
- ...ODBC?
- ...SQL 服务器?
- ...甲骨文?
解决方案
不幸的是,至少对于 PB 9,你不能 原生地. 。PB 一直是一个两层开发工具。但是,如果您使用的是从 PB 9 开始的 WebServices 支持,您可以通过在连接池应用程序服务器上调用 WebServices 来绕过此限制。顺便说一句,我还没有玩过 PB 11.5。那里可能会有所不同。
贾森
其他提示
冒着自我推销的风险,这些可能会帮助您开始使用 Oracle:
如果你去 Sybase 手册 (直觉吧?),请参阅您正在查看的版本的《连接到数据库》手册,搜索“池”可能会很有成效。查看 11.5 的本地副本,我可以看到对 SNC (MS) 和 ODBC 的引用。
至于“非本机”方法,我猜 Jason 可能指的是与应用程序服务器的连接池,然后通过它获取数据。
祝你好运。
在 PowerBuilder 版本 9 及更高版本中使用 Oracle 本机驱动程序并连接到 Oracle 9i 及更高版本的数据库时,您可以使用以下命令告诉 Oracle 维护池中的连接: CnnPool='是' 数据库参数:
PB 11.1 文档中的附加信息:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc33820_1110/html/dbparm/BJEBJADI.htm
我不相信
CnnPool='是'
受到支持 正式 在PB 9中。
我不确定大多数 PB 开发人员是否都熟悉如何处理池。
至少与我使用某些 Java 应用程序服务器的经验相比,ASP.Net 的方法简单且直接。(请不要对最后一句话发起口水战,我说的是我的经历)。
我编写了一个“服务器”应用程序,该应用程序接收为 ds.retrieve() 和 ds.update() 执行的 PB 数据存储,并将数据传递回客户端 PB 应用程序。这是一种打球的方式。服务器应用程序将打开多个连接...我在 PB 8 中做到了这一点(某处有一本书)。我不会推荐这种方法......很多代码。
在 PB 11.x 中,您应该考虑一些很酷的新方法。
@杰森·沃格尔...
你说我做不到 原生地 ……那么还有其他方法吗?
/* 声明为实例变量*/
n_to_server i_to_server //事务对象替代SQLCA,i_to_server是自定义名称,n_to_server也是如此
/* 实例化连接对象*/
i_to_server =创建事务//在n_to_server的实例变量中声明
i_to_server.DBMS =“ODBC”
i_to_server.AutoCommit = TRUE
i_to_server.DBParm = "ConnectString='DSN=SourceServer;UID=用户名;PWD=密码'"
使用 i_to_server 连接;
选择 @@trancount INTO :li_TranCount
来自系统对象
WHERE 名称 = 'sysobjects'
使用 i_to_server ;//在不使用SQLCA的事务中必须有USING(本机事务)