milo.jiang 发表于 2007-11-5 11:20:20

QTP9.2 连接DB2数据库报错

请大家帮忙看一下
问题描述:DB2数据库版本是8.2,已经在ODBC中建立了数据源,而且可以成功连接数据库。
          现通过QTP9.2 连接DB2数据库,系统报错
方法一:本地已经创建数据源的的方式
      连接字符串: "DSN=TEST;UID=***PWD=***;MODE=SHARE;DBALIAS=TEST;"
       错误提示:指定的初始化字符串不符合 OLE DB 规定
方法二:本地没有创建数据源的的方式
      连接字符串: "Driver={IBM DB2 ODBC DRIVER};DBALIAS=TEST;UID=***; PWD=***;"
       错误提示: 驱动程序的 SQLAllocHandle on SQL_HANDLE_ENV 失败,
      并且,在出现该错误提示后,再运行QTP脚本,则程序就一直运行,无法结束任务,必须强制退出
程序代码如下:
Option Explicit

Dim objConn                        'CONNECTION对象实例
Dim strConnString                        '连接字符串
Dim objRst                              '对象实例

'1. 建立CONNECTION对象实例
Set objConn = CreateObject("ADODB.CONNECTION")

'2. 建立连接字符串
'strConnString = "DSN=TEST;UID=***; PWD=***;MODE=SHARE;DBALIAS=TEST;"
strConnString = "Driver={IBM DB2 ODBC DRIVER};DBALIAS=TEST;UID=***; PWD=***;"

'3. 用OPEN方法建立与数据库连接
objConn.Open strConnString

If objConn.State = 0 Then
    Reporter.ReportEvent micFail, "Testing Database Connection", "连接数据库失败"
Else
    Reporter.ReportEvent micFail, "Testing Database Connection", "连接数据库成功"
End If

'4. 关闭数据库连接并释放对象实例
objConn.Close
Set objConn = Nothing

[ 本帖最后由 milo.jiang 于 2007-11-5 11:31 编辑 ]

jackymail 发表于 2007-11-5 14:24:58

第一种方式有语法错误;->,
第二方法应该不会出现你说的错误,除非已经conn.execute sql...不太了解。。
你可以先生成一个文件类型的数据源,然后看生成文件的字符串,拷贝进去

milo.jiang 发表于 2007-11-5 15:12:28

第一种方法的语法应该就是“;”,这个是插入数据库检查点的时候QTP自动生成的,我只是把它拷贝出来,如果换成“,”,系统会提示“数据源名称过长”
不知道是否是QTP9.2的问题,其他数据库入ORACLE、SQLSERVER等都可以连接的,就是DB2报错,希望大家帮忙看看

milo.jiang 发表于 2008-4-8 22:10:25

问题解决了,下载了最新的QTP9.5版本可以解决与DB2连接报错的问题!

ivanland 发表于 2008-8-19 14:58:54

你的意思是QTP9.2版本不能连接DB2了?

ylm77ojn 发表于 2008-8-20 00:43:54

方法一:本地已经创建数据源的的方式
      连接字符串: "DSN=TEST;UID=***PWD=***;MODE=SHARE;DBALIAS=TEST;"
       错误提示:指定的初始化字符串不符合 OLE DB 规定

直接建立数据库检查点,在里面copy初始化字符串就可以

lin85210 发表于 2008-8-21 18:38:27

9.2也可连接DB2。。
页: [1]
查看完整版本: QTP9.2 连接DB2数据库报错