|
导读安装程序自动将数据库DSN添加到ODBC中一般通过在注册表中添加 响应信息完成,分析以下注册表的相关内容。运行regedit可以观 察到注册表中层次关系如下: HKEY_LOCAL_MACHINE ... 安装程序自动将数据库DSN添加到ODBC中一般通过在注册表中添加 响应信息完成,分析以下注册表的相关内容。运行regedit可以观 察到注册表中层次关系如下: HKEY_LOCAL_MACHINE SOFTWARE ODBC ODBC.INI C07 ----在ODBC.INI下加入DSN的信息即可。 在此介绍一个例子程序,以供参考。 ----本例子用目前流行的安装工具installshield 5.0 完成,数据库为Sybase SQL any Where,5.5; 应用程序开发工具为:Powerbuilder 6.5。 此方法已用到诸多程序中,由于此方法属于Windows 中ODBC和注册表的基本概念,可试用于其他程序。 ----1 .Sybase SQL any Where 5.5 数 据 库 的 名 称:c07.db ----2 .Powerbuilder 数 据 库 连 接 程 序: SQLCA.DBMS = “ODBC” SQLCA.Database = “c07” SQLCA.AutoCommit = True SQLCA.DBParm = “ConnectString=‘DSN=c07;UID=dba;PWD=sql’” ----3 .installshielder5.0 的 程 序 片 段 ----⑴ 定 义 头 文 件 ----在 源 程 序 中 找 到 如 下 信 息: // Include header file #include “sdlang.h” #include “sddialog.h” //string defines // #define UNINST_LOGFILE_NAME “Uninst.isu” // 加 入 头 文 件 定 义 信 息, 第 一 段 程 序 开 始 点 #define UNINST_LOGFILE_NAME “Uninst.isu” #define COMPANY_NAME “ODBC” #define PRODUCT_NAME “ODBC.INI” #define PRODUCT_VERSION “c07” #define PRODUCT_KEY “rtdsk50.exe” #define DEINSTALL_KEY“pb60_DeinstKey” #define UNINSTALL_NAME“pb60_uninstname” #define DEFAULT_LOG_PATH “pb60” // 第 一 段 程 序 结 束 点 ⑵ 定 义 全 局 变 量 在 程 序 中 找 到 如 下 信 息: // ----- global variables ------ // generated .... // your global variables // 在 此 定 义 你 的 全 局 变 量, 第 二 段 程 序 开 始 点 STRING szstrname1,szstrvalue1,svlogfile; STRING szstrname2,szstrvalue2; STRING szstrname3,szstrvalue3; STRING szstrname4,szstrvalue4; STRING szstrname5,szstrvalue5; STRING szstrname6,szstrvalue6; STRING szstrname7,szstrvalue7; STRING szstrname8,szstrvalue8; NUMBER nvsize,nvType; // 第 二 段 程 序 结 束 点 ⑶ 注 册 表 修 改 程 序 中 找 到setrpregistry 函 数: function SetupRegistry() begin //modify_source // 加 入 注 册 表 信 息, 第 三 段 程 序 开 始 点 szstrname1 = “Agent”; szstrvalue1 = “engine”; szstrname2 = “AutoStop”; szstrvalue2 = “Yes”; szstrname3 = “DatabaseFile”; //TARTGETDIR 为 全 局 变 量, 指 安 装 完 毕 后 程 序 的 路 径 szstrvalue3 = TARGETDIR ^“\\c07.db”; szstrname4 = “DatabaseName”; szstrvalue4 = “c07”; szstrname5 = “Driver”; szstrvalue5 = TARGETDIR ^“\\WOD50T.DLL”; szstrname6 = “PWD”; szstrvalue6 = “”; szstrname7 = “Start”; szstrvalue7 = TARGETDIR ^“\\rtdsk50.exe”; szstrname8 = “UID”; szstrvalue8 = “”; // 注 册 表 入 口 RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); // 生 成 注 册 表 信 息 的 各 级 分 支 InstallationInfo(COMPANY_NAME,PRODUCT_NAME,PRODUCT_VERSION,PRODUCT_K EY); DeinstallStart(DEFAULT_LOG_PATH,svlogfile,DEINSTALL_KEY,0); // 向 注 册 表 的 分 支 中 加 入 键 名 和 键 值 RegDBSetAppInfo(szstrname1,REGDB_STRING,szstrvalue1,-1); RegDBSetAppInfo(szstrname2,REGDB_STRING,szstrvalue2,-1); RegDBSetAppInfo(szstrname3,REGDB_STRING,szstrvalue3,-1); RegDBSetAppInfo(szstrname4,REGDB_STRING,szstrvalue4,-1); RegDBSetAppInfo(szstrname5,REGDB_STRING,szstrvalue5,-1); RegDBSetAppInfo(szstrname6,REGDB_STRING,szstrvalue6,-1); RegDBSetAppInfo(szstrname7,REGDB_STRING,szstrvalue7,-1); RegDBSetAppInfo(szstrname8,REGDB_STRING,szstrvalue8,-1); // 第 三 段 程 序 结 束 点 return 0; end; ----以上程序完成了将数据库的DSN自动添加到ODBC中的整个过程, 安装完毕后,不用手工添加,运行程序,即可成功连接数据库。 |
温馨提示:喜欢本站的话,请收藏一下本站!