ehxz 发表于 2007-7-13 09:17:51

[转帖]Power Builder同时连接多个数据库

<p>&nbsp;&nbsp;&nbsp; 只 需 设 置 两 个 TRANSACTION对 象 即 可 。 <br/>&nbsp;&nbsp;&nbsp; 以 下 为 同 时 连 接 SQL SERVER和 DBF数 据 库 的 示 例 : <br/>&nbsp;&nbsp;&nbsp; 连 接 SQL SERVER: <br/>&nbsp;&nbsp;&nbsp; SetPointer(HourGlass!) <br/>&nbsp;&nbsp;&nbsp; //窗 口 居 中 <br/>&nbsp;&nbsp;&nbsp; f_center(this) <br/>&nbsp;&nbsp;&nbsp; //根 据 sgselect 连 接 不 同 的 套 <br/>&nbsp;&nbsp;&nbsp; string sSelect <br/>&nbsp;&nbsp;&nbsp; string temp <br/>&nbsp;&nbsp;&nbsp; sSelect="d_gdzc"+sgselect <br/>&nbsp;&nbsp;&nbsp; SQLCA.DbParm = ProfileString(gzINIFile,"Database","DbParm","") <br/>&nbsp;&nbsp;&nbsp; SQLCA.DBMS = ProfileString(gzINIFile,"Database","DBMS","") <br/>&nbsp;&nbsp;&nbsp; SQLCA.Database = sSelect <br/>&nbsp;&nbsp;&nbsp; SQLCA.ServerName = ProfileString(gzINIFile,"Database","ServerName","") <br/>&nbsp;&nbsp;&nbsp; SQLCA.LogId = "sa" <br/>&nbsp;&nbsp;&nbsp; RegistryGet("HKEY_CURRENT_USER\software\microsoft\windows\currentversion\explorer\g", "a", RegString!,temp ) <br/>&nbsp;&nbsp;&nbsp; f_anencrypt (temp,SQLCA.LogPass) <br/>&nbsp;&nbsp;&nbsp; SQLCA.AutoCommit = false <br/>&nbsp;&nbsp;&nbsp; SQLCA.Lock = ProfileString(gzINIFile,"Database","Lock","") <br/>&nbsp;&nbsp;&nbsp; connect using sqlca; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; IF SQLCA.SQLCode &lt;&gt; 0 THEN <br/>&nbsp;&nbsp;&nbsp; MessageBox("联 接 失 败 ", &amp; <br/>&nbsp;&nbsp;&nbsp; "不 能 联 接 数 据 库 !(错 误 信 息 :" + SQLCA.SQLErrText+")") <br/>&nbsp;&nbsp;&nbsp; setpointer(Arrow!) <br/>&nbsp;&nbsp;&nbsp; RETURN <br/>&nbsp;&nbsp;&nbsp; halt close <br/>&nbsp;&nbsp;&nbsp; END IF <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; 定 义 函 数 : <br/>&nbsp;&nbsp;&nbsp; fuction f_connectdbf(string sdbparm) return any <br/>&nbsp;&nbsp;&nbsp; string nul //用 于 生 成 null值 <br/>&nbsp;&nbsp;&nbsp; transaction trans_name <br/>&nbsp;&nbsp;&nbsp; trans_name=create transaction <br/>&nbsp;&nbsp;&nbsp; trans_name.DBMS = "ODBC" <br/>&nbsp;&nbsp;&nbsp; //trans_name.Database = "ZWDBF" <br/>&nbsp;&nbsp;&nbsp; //trans_name.LogId = <br/>&nbsp;&nbsp;&nbsp; //trans_name.LogPass = <br/>&nbsp;&nbsp;&nbsp; trans_name.AutoCommit = False <br/>&nbsp;&nbsp;&nbsp; trans_name.DBParm = sDBParm <br/>&nbsp;&nbsp;&nbsp; //trans_name.Lock =ProfileString(gzINIFile,"Database","Lock","") <br/>&nbsp;&nbsp;&nbsp; //trans_name.DbParm =ProfileString(gzINIFile,"Database","DbParm","") <br/>&nbsp;&nbsp;&nbsp; CONNECT USING trans_name; <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; IF trans_name.SQLCode &lt;&gt; 0 THEN <br/>&nbsp;&nbsp;&nbsp; MessageBox("联 接 失 败 ", &amp; <br/>&nbsp;&nbsp;&nbsp; "不 能 联 接 财 务 数 据 库 ! 请 检 查 财 务 路 径 是 否 正 确 。 (错 误 信 息 :" + SQLCA.SQLErrText+")") <br/>&nbsp;&nbsp;&nbsp; rollback; <br/>&nbsp;&nbsp;&nbsp; return setnull(nul) <br/>&nbsp;&nbsp;&nbsp; else <br/>&nbsp;&nbsp;&nbsp; return trans_name <br/>&nbsp;&nbsp;&nbsp; END IF <br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; 连 接 FOXPRO数 据 库 ( 同 时 连 接 第 二 个 数 据 库 , 还 可 以 连 接 第 三 、 第 四 个 ) : <br/>&nbsp;&nbsp;&nbsp; openwithparm(w_disp,"正 在 联 接 DBF卡 片 数 据 库 ...",parent) <br/>&nbsp;&nbsp;&nbsp; transaction sqldbf <br/>&nbsp;&nbsp;&nbsp; //用 SQLDBF连 接 财 务 ( 固 资 ) 数 据 库 <br/>&nbsp;&nbsp;&nbsp; sqldbf=f_connectdbf("Connectstring='DSN=gzdbf'") <br/>&nbsp;&nbsp;&nbsp; //判 断 是 否 联 接 成 功 <br/>&nbsp;&nbsp;&nbsp; if isnull(sqldbf) then <br/>&nbsp;&nbsp;&nbsp; Messagebox("出 错 ","联 接 DBF固 定 资 产 数 据 库 出 错 ! ") <br/>&nbsp;&nbsp;&nbsp; end if </p>
页: [1]
查看完整版本: [转帖]Power Builder同时连接多个数据库

免责声明:
本站所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:Admin@SybaseBbs.com