aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 11683|回复: 3

利用ODBC/DSN设置数据库连接,不同数据库连接可以参考

[复制链接]

4

主题

5

回帖

86

积分

一级会员

积分
86
发表于 2012-6-28 13:38:57 | 显示全部楼层 |阅读模式
因为要连接INFORMIX数据库,参考和尝试了多种相关连接方式,结果都无法正常连接,于是考虑利用ODBC的DSN作为连接字符串的方法,一试果然成功了,这样其他数据库都可以使用ODBC的DSN进行连接,再也不用纠结连接字符串如何写了:

//创建DB连接
conn = com.CreateObject("ADODB.Connection");
conn.ConnectionString = "dsn=informix odbc;"
conn.Open();
......
conn.Close()

0

主题

5

回帖

100

积分

一级会员

积分
100
发表于 2012-8-14 08:29:52 | 显示全部楼层
好东西啊。

1

主题

4

回帖

237

积分

二级会员

积分
237
发表于 2018-5-24 16:24:19 | 显示全部楼层
太好了,我也是用的informix正准备试呢,

1

主题

4

回帖

237

积分

二级会员

积分
237
发表于 2018-6-20 09:23:55 | 显示全部楼层
本帖最后由 onlycdh 于 2018-6-20 09:27 编辑

我后来参照sql server的写了一个类似的,基本功能可以使用
class informix{
        ctor( param,...){
                var connectionString;
                if( type(param) == type.table ){
                        var tList = ..string.list(,";","=")
                        tList.mixin(param)
                       
                        if( !tList.find("DSN") ){
                                if( !tList.find("Driver") )  tList.Driver ="IBM INFORMIX ODBC DRIVER";//client端是3.5
                                if( !tList.find("Host") )  tList["Host"]=" ";//服务器IP
                                if( !tList.find("Server") )  tList["Server"]="";//数据库实例
                                if( !tList.find("Service") )  tList["Service"]="";//端口号
                                if( !tList.find("Protocol")) tList["Protocol"]= "onsoctcp";
                        };
                       
                        connectionString = tostring( tList );
                }
                else {
                        if( !param ) error("请指定数据库连接串",2)
                        connectionString = ..string.format( param,... );
                }

                var conn = ..com.CreateObject("ADODB.Connection")
                conn.ConnectionString = connectionString;
                var ok,err = call(conn.open,conn);
                if(!ok) return null,"打开数据库连接失败:" +err;
               
                this.connection = conn;
                this._tables = {@{_weak="kv"}}
                ..table.gc(this,"close");
        };
}

使用时
var db = informix(
                ["Database"] = " ";//数据库名
                ["Uid"]=" ";//用户名
                ["Pwd"]=" ";//密码
        );
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-2-10 17:17 , Processed in 0.059054 second(s), 22 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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