中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 数据库开发 > PowerBuilder
用IS5.0将数据库的DSN自动添加ODBC中
作者:未知 时间:2005-08-07 21:03 出处:编程爱好者网站 责编:chinaitpower
              摘要:用IS5.0将数据库的DSN自动添加ODBC中
安装程序自动将数据库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中的整个过程,
安装完毕后,不用手工添加,运行程序,即可成功连接数据库。 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有