如何在 PowerBuilder (v9+) 中使用...建立数据库连接池
- ...ODBC?
- ...SQL 服务器?
- ...甲骨文?
如何在 PowerBuilder (v9+) 中使用...建立数据库连接池
冒着自我推销的风险,这些可能会让您开始使用 Oracle:
如果您访问Sybase 手册(直观,嗯?),访问您正在查看的版本的连接到您的数据库手册,搜索“池”可能会很有成效。查看 11.5 的本地副本,我可以看到对 SNC (MS) 和 ODBC 的引用。
至于“非本地”方法,我猜 Jason 可能指的是与应用程序服务器建立连接池,然后通过它获取数据。
祝你好运。
不幸的是,至少在 PB 9 中,你不能原生. PB 一直是一个两层的开发工具。但是,如果您使用的是从 PB 9 开始的 WebServices 支持,您可以通过在连接池 appServer 上调用 WebServices 来绕过此限制。顺便说一句,我还没有玩过 PB 11.5。那里可能会有所不同。
杰森
在 PowerBuilder 版本 9 及更高版本中,使用 Oracle 本地驱动程序并连接到 Oracle 9i 及更高版本的数据库,您可以使用CnnPool='Yes'数据库参数告诉 Oracle 在池中维护连接:
来自 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 中,您应该考虑一些很酷的新方法。
@杰森沃格尔...
你说我不能在本地做......所以有另一种方法可以做到吗?
/* 声明为实例变量*/
/* 实例化连接对象*/
i_to_server = CREATE transaction //在n_to_server的实例变量中声明
i_to_server.DBMS = "ODBC"
i_to_server.AutoCommit = TRUE
i_to_server.DBParm = "ConnectString='DSN=SourceServer;UID=username;PWD=password'"
使用 i_to_server 连接;
选择@@trancount INTO :li_TranCount
来自系统对象
WHERE 名称 = 'sysobjects'
使用 i_to_server ;//必须在不使用 SQLCA(本机事务)的事务中使用 USING