zoukankan      html  css  js  c++  java
  • ODBC方式连接Informix数据库

    公司某个报表系统使用Informix数据库,在谋划使用Perl语言写数据采集程序后,花费了很多时间建立Perl访问Informix连接。恰巧Windows下ActivePerl的CPAN中又没有DBD::Informix模块,故一度陷入绝望。

    有一天突然想起可以使用ODBC方式,经过一番尝试后,很快就成功建立连接。 具体方法:

    1. 在Windows系统中建立ODBC数据源。需要安装Informix SDK的客户端驱动。

    2. Perl访问ODBC

    ## 连接参数
    my $data_source="DBI:ODBC:huawu";
    my $user="aaa";
    my $password="bbb";
    my $dbh=DBI->connect($data_source,$user,$password, { AutoCommit => 1, PrintError => 1, RaiseError => 0 } );
    
    ## 执行查询
    $cur_sql = 'select * from table_a;';
    my $sth=$dbh->prepare($cur_sql);
        if(! $sth->execute() ) {
            die ;
        }
    
    保存记录
    while (my @count = $sth->fetchrow()) {
        # @count 为一条记录
    }
    $sth->finish();
    
    ##关闭连接
    $dbh->disconnect();

    3. PHP访问ODBC

    ##连接参数
    $odbc_server = "dbname";
    $odbc_conn = odbc_connect($odbc_server, $user, $pwd);
    
    ##执行语句
    $odbc_sql = 'Select * from table_a;';
    $odbc_res = odbc_exec($odbc_conn, $odbc_sql);
    
    echo "<table id='MData'>";
    while (odbc_fetch_row($odbc_res)) {
        echo "<tr>";
    echo "<td>".odbc_result($odbc_res, 1)."</td>";
    echo "<td>".odbc_result($odbc_res, 2)."</td>"; 
    echo "<td>".odbc_result($odbc_res, 3)."</td>";
    echo "<td>".odbc_result($odbc_res, 4)."</td>"; 
    echo "<td>".odbc_result($odbc_res, 5)."</td>";
    echo "<td>".odbc_result($odbc_res, 6)."</td>";
        echo "</tr>";
    }
    echo "</table>";
    ##关闭连接
    odbc_close($odbc_conn);

    PHP的ODBC函数较弱,获取查询记录集貌似只有odbc_fetch_row() 这一个函数,通过数组下标或关联数组Key访问字段。

  • 相关阅读:
    删库了一定要跑路吗?爱情 36 技之记忆重生!
    程序员和他的朋友们!
    聊起 BigTable,让你不再胆怯
    [Ant Design] Warning: Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?
    Git 常用命令
    Git 名词解释
    js中void 0和undefined的区别
    js运算符优先级
    搭建React项目(低配版)
    mac常用shell指令笔记
  • 原文地址:https://www.cnblogs.com/herzog/p/3534482.html
Copyright © 2011-2022 走看看