搜寻许久未能找到动态建立Informix的odbc连接文章,有建SQL Server的样例,按其方法一试虽建起了连接名,但连接不成功,实在没有办法解决了,后来通过对注册表信息的比对才发现其中默认参数中带有备注信息,使其参数失效了,以下代码中“ConnectionString”直接赋值部分为会造成出错的默认值,强行赋值后测试通过。此问题困扰了半天时间,现在终于解决,爽之有余,与大家分享。
*通过API动态建立odbc DECLARE INTEGER SQLConfigDataSource IN odbccp32 INTEGER, INTEGER, STRING, STRING lnWindowHandle=0 lcODBCDriver='Informix-CLI 2.5 (32 bit)' &&DRIVER类型 lcODBCName='zzsj' &&数据源名字 lcODBCDesc='总账数据库' &&数据源描述 lcODBCServer='Informix' &&SSERVER名字 lcODBCDatabase='mis2' &&要连接的数据库名字 lcSERV='zz_service' &&service lcSRVR='ccbzz_fj' &&server lcHost='11.12.13.45'
lcUID='123456'&&password
lcProtocol='onsoctcp' lcReadOnly='No' lcServerType='Informix 7.2'
ConnectionString ='DSN=' + lcODBCName + CHR(0) ; + 'Description=' + lcODBCDesc + CHR(0) ; + 'DB=' + lcODBCServer + CHR(0) ; + 'Host=' + lcHost + CHR(0) ; + 'SERV=' + lcSERV + CHR(0) ; + 'SRVR=' + lcSRVR + CHR(0) ; + 'UID=' + lcUID + CHR(0) ; + 'CursorBehavior=0' + CHR(0) ; + 'EnableScrollableCursors=0' + CHR(0) ; + 'GetDBListFromInformix=1' + CHR(0) ; + 'YieldProc=1' + CHR(0) ; + 'Protocol=' + lcProtocol + CHR(0) ; + 'Database=' + lcODBCDatabase + CHR(0)
**先试图修改已有的ODBC,如果不存在,返回0。 lreturn=SQLConfigDataSource(lnWindowHandle, 2, lcODBCDriver, ConnectionString) SQLSETPROP(0,'DispLogin',3)&&关闭登录窗 IF lreturn=0 &&不存在,则添加新的ODBC lreturn=SQLConfigDataSource(lnWindowHandle, 1, lcODBCDriver, ConnectionString) IF lreturn=0 &&失败 MessageBox('添加ODBC数据源失败,请与系统管理员联系!',16,'警告') return ENDIF ENDIf
相关链接:
2008年下半年全国计算机等级考试报名信息汇总
更多信息请访问:计算机等级考试站 计算机等级考试在线题库 计算机等级考试论坛
|