找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1895|回复: 3

[求助]:如何实现在mdl实现数据库的自动连接

[复制链接]
发表于 2006-11-1 21:38:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我需要在程序中给元素附加属性数据,因此每次启动程序时,需要手工连接ODBC数据源,不知道有没有函数能够自动连接数据源!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-11-2 11:39:09 | 显示全部楼层
试试mdlDB_changeDatabase()函数
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-11-2 13:42:52 | 显示全部楼层
MDL可以连接数据库的,但是前提条件是数据源必须预先创建好,然后使用下列的代码就可以实现了:
/*----------------------------------------------------------------------+
|                                                                        |
|        @NAME:mdlDatabase_setLinkType                                        |
|        @AUTHOR: XXXX                                                |
|        @DATE: 2004-1-13 16:41                                                |
|        @DESCRIPTION:设置数据库连接类型(1=ORACLE, 2=ODBC, 3,4=OLEDB)        |
|        @ALTERATION: null
|                                                                        |
+----------------------------------------------------------------------*/
Private int mdlDatabase_setLinkType
(
int        dbType,  // 数据源类型: 1=ORACLE, 2=ODBC, 3,4=OLEDB
char*        dbName  // 数据源名称
)
{
        char                full_path[MAXFILELENGTH], ch[64];
        int                status;
       
        mdlSystem_getCfgVar (full_path, "MSLOCAL", 64);
        strcpy (full_path, mdlSystem_expandCfgVar (full_path));
       
        strcat(full_path,"config\\database\\");
        switch(dbType)
        {
                case 1:  strcpy(ch,"oracle.cfg");
                         break;
                case 2:         strcpy(ch,"odbc.cfg");
                         break;
                case 3:         strcpy(ch,"sybase.cfg");
                         break;
                case 4:  strcpy(ch,"ris.cfg");
                         break;
                default: break;
        }
        strcat (full_path, ch);
       
        status = mdlSystem_processCfgVarFile (full_path, CFGVAR_LEVEL_USER);
        if(status != SUCCESS)        return ERROR;
       
        status = mdlSystem_loadMdlProgram ("SERVER.MA", "SERVER", "FRONTEND");       
        if(status != SUCCESS)        return ERROR;
       
        if (dbType == 1)
                status = mdlDB_processSQL ("connect support/support@T:DATASERV");
        else
                status = mdlDB_activeDatabase (dbName);
       
        if(status != SUCCESS)
        {
                return ERROR;
        }
       
        return SUCCESS;
}


以上那段代码在odbc连接方式下测试是成功的,但是其他两种方式没有经过严格的测试,你可以参考一下
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-11-2 16:57:48 | 显示全部楼层
数据源我已经创建好了,是不是这样每次他就能自动连接我指定的数据源,而不用手工再去连接了,要是能这样的话就太好了,先去测试一下!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-18 11:20 , Processed in 0.468086 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表