PB9.0到PB11.5升级数据库连接经验分享

4星 · 超过85%的资源 需积分: 44 29 下载量 125 浏览量 更新于2024-09-20 收藏 3KB TXT 举报
"PB9.0到PB11.5的升级过程中遇到了数据库连接问题,主要是与Microsoft SQL Server的连接方式变化以及Unicode处理的差异。本文档分享了升级过程中的经验,包括解决方法和注意事项。" 在从PowerBuilder (PB) 9.0升级到PB11.5时,可能会遇到一些技术挑战,特别是在处理Web服务支持和数据库连接方面。PB11.5已经改进了对Web服务的支持,但在数据库连接上,它采用了不同的方法来连接到Microsoft SQL Server数据库。 首先,PB11.5引入了对MSS Microsoft SQL Server驱动的内置支持,这意味着不再需要依赖SNAC(SQL Native Client)或OLE DB提供商。在升级后,可能需要更新数据库事务对象的配置以适应新的连接方式。例如,下面的代码片段展示了如何在PB11.5中使用OLE DB连接到SQL Server: ```python a_transaction.DBMS = "OLEDB" a_transaction.LogPass = "xxxxxx" # 数据库密码 a_transaction.LogId = "sa" # 登录ID a_transaction.AutoCommit = False a_transaction.DBParm = "PROVIDER='SQLOLEDB'," + \ "DATASOURCE='" + ls_server + "'," + \ "PROVIDERSTRING='database=" + ls_database + "'" ``` 这里,`a_transaction` 是一个数据库事务对象,`DBMS` 指定了数据库类型,`LogPass` 和 `LogId` 分别是数据库登录密码和用户名,`AutoCommit` 控制是否自动提交事务,而 `DBParm` 设置了连接参数,包括数据源、提供者等。 值得注意的是,如果你在PB9.0中使用了特定的连接字符串或配置,比如针对SQL Server 2000的设置,那么在PB11.5中可能需要进行调整。如上所示,`PROVIDERSTRING` 可能需要包含额外的选项,例如 `DataTypeCompatibility`、`TIMEOUT`、`OJSyntax`、`PBTrimCharColumns` 和 `PBMaxBlobSize`,以确保兼容性和性能。 此外,PB11.5对于Unicode的支持也发生了变化。在PB9.0中,可能需要手动处理Unicode字符,而在PB11.5中,这种情况已经得到改善。例如,处理Blob字段时,如 `blobedit` 函数的使用,现在可以更方便地处理包含Unicode字符的数据。 在升级过程中,确保测试所有关键功能的完整性和性能是非常重要的,尤其是涉及数据库连接和Web服务调用的部分。此外,还需要注意代码中的硬编码连接字符串和凭据,这些在升级后可能需要更新或替换。 从PB9.0升级到PB11.5涉及到数据库连接方式的改变和Unicode处理的优化。理解并适配这些变化是确保应用程序顺利迁移的关键步骤。为了减少问题的发生,建议在升级前进行详尽的规划和充分的测试。