OTL使用总结

               

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

        在VC中访问Oracle,可以使用ADO或ODBC,如果你比较强大,也可以直接使用OCI API,但我个人认为OTL是最佳选择,它是一套数据库访问C++模板库,全部代码都在otlv4.h头文件中,通过OTL不但可以访问Oracle数据库(使用OCI  API),还可以访问DB2,或者使用ODBC连接字符串访问其他数据库。

 

     otl的源码只有一个头文件——otlv4.h。下面以一个例子来说明如何使用otl。

#define OTL_ORA10G#include <otlv4.h>void CAboutDlg::OnBnClickedOk(){ // TODO: 在此添加控件通知处理程序代码 otl_connect OracleDb;  // 定义一个oracle数据库的连接对象  OracleDb.otl_initialize(TRUE);// 以线程安全模式初始化OCI环境  std::string szConnectString = _T("system/zjc@ORCL");   try   {   // 连接数据库  OracleDb.rlogon(szConnectString.c_str(),1);         // 查询数据库中所有用户  std::string strSql = _T("select username from dba_users");    otl_stream i(1024, // buffer size     strSql.c_str(),     OracleDb // connect object     );    int nNumUser = 0 ;  TCHAR szNum[64];   while(!i.eof())// while not end-of-data    {   i>>szNum; //获取单个用户名   nNumUser++;  }  CString strNum;  strNum.Format(("当前oracle数据库用户个数为:%d"),nNumUser);  AfxMessageBox(strNum); }   catch (otl_exception& p)   {    TRACE(_T("Oracle connecterror(msg:%s, stm_text: %s, sqlstate: %s, var_info: %s)"), p.msg, p.stm_text, p.sqlstate, p.var_info);   }   OnOK();}

       代码在WinXp+ sp2, VS 2008 + sp1,oracle 10gr2环境下测试通过。上面代码例子连接Oracle数据库用到了rlogon()函数,调用它时需要为它提供一个连接字符串,一般是这样的:

[User Name]/[Password]@[TNS Alias]

   

        这里的TNS Alias指在tnsnames.ora中配置TNS名,比如我的tnsnames.ora里有以下的配置:

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora# Generated by Oracle configuration tools.ORCL =  (DESCRIPTION =    (ADDRESS = (PROTOCOL = TCP)(HOST = zjc)(PORT = 1521))    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = orcl)    )  )EXTPROC_CONNECTION_DATA =  (DESCRIPTION =    (ADDRESS_LIST =      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))    )    (CONNECT_DATA =      (SID = PLSExtProc)      (PRESENTATION = RO)    )  )

    那么TNS Alias就是ORCL。 

    此外需要注意的是使用otl连接oracle数据库需要链接oci.lib,也就是说需要包含它的头文件和库文件路径。

 

参考文献:

1.     在VC中使用OTL访问Oracle和程序发布

 








           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OTL功率放大电路图是一种常见的功率放大器电路图,OTL是一种意为“无输出变压器”的放大器设计。它使用运放作为主要的放大器,以消除对信号的失真,并提高功率放大的效果。 OTL功率放大电路图包括以下几个主要组成部分:输入级、差动放大器、电流镜、输出级以及电源。 输入级用于接受输入信号,并将其转化为电压信号。它通常由一个耦合电容和一个电阻组成。通过耦合电容,输入信号可以在电路中传递,并通过电阻将其转化为电压信号。这样,输入信号就能被放大器正确处理。 差动放大器是整个OTL功率放大电路图的核心。它由两个晶体管组成,其中一个为NPN型晶体管,另一个为PNP型晶体管。差动放大器可以增加信号的增益,并消除输入信号的共模干扰,从而提高放大器的性能。 电流镜用于为差动放大器提供稳定的工作电流。它通过比较放大器的输出电压与参考电压之间的差异,控制晶体管的电流,以保持输出电流恒定。 输出级是为了将放大的信号输出到负载上。它通常由输出晶体管和负载组成。输出晶体管可以提供足够的电流来驱动负载,并将放大的信号传递给负载。 电源用于为整个OTL功率放大电路图提供所需的电源电压。它通常由一组电源电池或稳压器组成,以确保电路的稳定工作。 总结而言,OTL功率放大电路图是一种通过运放和差动放大器来提供高质量功率放大的电路设计。它通过电流镜和输出级来提供稳定的电流和输出信号,通过电源来保证整个电路的稳定工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值