VFP动态建立Informix的odbc连接

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  搜寻许久未能找到动态建立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

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答