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访问字段。

  • 相关阅读:
    Linq聚合操作之Aggregate,Count,Sum,Distinct源码分析
    Linq分区操作之Skip,SkipWhile,Take,TakeWhile源码分析
    Linq生成操作之DefautIfEmpty,Empty,Range,Repeat源码分析
    Linq基础操作之Select,Where,OrderBy,ThenBy源码分析
    PAT 1152 Google Recruitment
    PAT 1092 To Buy or Not to Buy
    PAT 1081 Rational Sum
    PAT 1084 Broken Keyboard
    PAT 1077 Kuchiguse
    PAT 1073 Scientific Notation
  • 原文地址:https://www.cnblogs.com/herzog/p/3534482.html
Copyright © 2011-2022 走看看