使用OTL连接Oracle
2008-12-22 13:39
459 查看
使用OTL连接Oracle9i,不用安装oracle客户端,直接连接Oracle,非常方便实用
步骤:
1,下载一个instanceclient10_2,里面有一些dll文件,还有1个sdk的文件夹,把include和lib/msvc下的东西加入到VC工程目录里面
2,就可以开始写1个Sample的程序了
#include "otlv4.h"
#define OTL_ORA9I
otl_connect db;
BOOL CheckConnect(CString ConnectStr, CString UserName, CString Password)
{
CString Msg;
try
{
db1.server_attach(ConnectStr);
}
catch(otl_exception& p)
{
Msg.Format("%d/n : %s", p.code, p.msg);
MessageBox(Msg, NULL, MB_OK|MB_ICONSTOP);
return FALSE;
}
try
{
if(_stricmp(UserName.GetBuffer(),"sys") == 0)
db1.session_begin(UserName, Password, 0, OCI_SYSDBA);
else
db1.session_begin(UserName, Password, 0, OCI_DEFAULT);
}
catch(otl_exception)
{
db1.server_detach();
return FALSE;
}
return TRUE;
}
void retrieveDataFromDB()
{
if (CheckConnect(connStr,userName,passwd)==TRUE)
{
CString Msg;
try
{
db1.set_max_long_size(20000);
otl_stream i(10, // buffer size. To read XML as CLOBs, it can be set to a size greater than 1
"SELECT USERNAME FROM USERINFO",
// SELECT statement
db1 // connect object
);
int listIndex = 0;
while(!i.eof()){ // while not end-of-data
char *pUname = new char[21];
i >> pUname;
listIndex++;
delete []pUname;
}
}catch(otl_exception &p)
{
Msg.Format("%d/n : %s", p.code, p.msg);
MessageBox(Msg, NULL, MB_OK|MB_ICONSTOP);
}
}else
{
MessageBox(_T("连接数据库失败!!"),_T("提示"),MB_ICONERROR);
}
}
另外还有一些direct::exec()等执行,可以参照otl_example,另外,我发现9i出来的select count(*) .....,不能写到int里,好像数据结构不对
只能select to_char(count(*)) from ....,放到char[]里面了
步骤:
1,下载一个instanceclient10_2,里面有一些dll文件,还有1个sdk的文件夹,把include和lib/msvc下的东西加入到VC工程目录里面
2,就可以开始写1个Sample的程序了
#include "otlv4.h"
#define OTL_ORA9I
otl_connect db;
BOOL CheckConnect(CString ConnectStr, CString UserName, CString Password)
{
CString Msg;
try
{
db1.server_attach(ConnectStr);
}
catch(otl_exception& p)
{
Msg.Format("%d/n : %s", p.code, p.msg);
MessageBox(Msg, NULL, MB_OK|MB_ICONSTOP);
return FALSE;
}
try
{
if(_stricmp(UserName.GetBuffer(),"sys") == 0)
db1.session_begin(UserName, Password, 0, OCI_SYSDBA);
else
db1.session_begin(UserName, Password, 0, OCI_DEFAULT);
}
catch(otl_exception)
{
db1.server_detach();
return FALSE;
}
return TRUE;
}
void retrieveDataFromDB()
{
if (CheckConnect(connStr,userName,passwd)==TRUE)
{
CString Msg;
try
{
db1.set_max_long_size(20000);
otl_stream i(10, // buffer size. To read XML as CLOBs, it can be set to a size greater than 1
"SELECT USERNAME FROM USERINFO",
// SELECT statement
db1 // connect object
);
int listIndex = 0;
while(!i.eof()){ // while not end-of-data
char *pUname = new char[21];
i >> pUname;
listIndex++;
delete []pUname;
}
}catch(otl_exception &p)
{
Msg.Format("%d/n : %s", p.code, p.msg);
MessageBox(Msg, NULL, MB_OK|MB_ICONSTOP);
}
}else
{
MessageBox(_T("连接数据库失败!!"),_T("提示"),MB_ICONERROR);
}
}
另外还有一些direct::exec()等执行,可以参照otl_example,另外,我发现9i出来的select count(*) .....,不能写到int里,好像数据结构不对
只能select to_char(count(*)) from ....,放到char[]里面了
相关文章推荐
- 使用node-oracledb创建连接池,外部建立连接
- 使用ODP.NET连接Oracle数据库一个OracleCommand运行多条SQL语句的方法
- Oracle使用dblink连接SqlServer
- 使用PLSql连接Oracle时报错ORA-12541: TNS: 无监听程序
- 一起学微软Power BI系列-使用技巧(1)连接Oracle与Mysql数据库
- 使用sys无法通过sqlplus或者sqldeveloper连接数据库 分类: H2_ORACLE 2013-02-04 14:02 600人阅读 评论(0) 收藏
- Oracle---使用PL/SQL Developer连接Oracle12C(64位)版本
- 本机不安装Oracle客户端,使用PL/SQL Developer和 Instant Client 工具包连接oracle 11g远程数据库 .
- 使用Navicat远程连接Oracle
- sqlplus不使用服务名,直接使用IP地址连接Oracle
- 使用toad连接远程oracle数据库(非oracle client)
- 使用oracle客户端与PLSQL连接ORACLE数据库软件安装过程
- SQL Server使用Linkserver连接Oracle
- 不安装Oracle客户端使用PLSQL连接数据库
- 64位操作系统下连接使用Oracle的问题汇总
- C# 不安装oracle客户端使用DLL连接数据库,初始化类型错误
- 在xampp集成环境下使用 thinkphp 连接oracle
- 在64位的环境中使用VS建立Web项目进行Oracle连接需要注意WebDev是32位的
- 动态传入的逗号连接的字符串,分散成多条记录(Oracle 10g 使用REGEXP_SUBSTR 分拆字符串)
- 使用SQLPlus连接Oracle实例