关于ODBC的配置、访问ORACLE的BLOB及CString的保存

原创 2014年05月30日 15:26:07

在使用C++访问ORACLE的时候,ODBC是一种选择,然后再使用CDatabase来进行openex的时候,DSN是需要配置的。以下是配置DSN的方法

  1. 打开ODBC数据源管理器(orc1是我已经配置好了的,在配置之前是没有的)


点击“添加”,出现一下对话框:


选择Oracle in OraClinetxxx,后面的xxx代表版本不一样,可能会不一样,点击“完成”


TNS Service Name是可以选择的(我的是ORCL),选中它,Data Source Name 和user ID填好,然后点击一下“Test Connection”,如果可以,就表示成功。

然后再编程的时候使用

CDatabase db;
db.OpenEx(_T("DSN=orc1;UID=uid ;PWD=pwd"), CDatabase::openReadOnly | CDatabase::noOdbcDialog ); //DSN就是第一张图的最后那个名字,uid是我的id,pwd是我的密码

2 使用CdbImage进行读取数据库的BLOB

   dbImages.h里定义了的变量一定要和数据库表里的名称是一致的。如表里有AAA,则定义也是AAA。如果BLOB所在列名是BBB,则定义CLongBinary BBB。

在cpp文件中

CString CdbImages::GetDefaultSQL()
{
return _T("[TABLENAME]"); //中括号里的是表明,也就是要查询的表的名字
}

还有一些可以参照其他教程配置好。

如果直接读取,可以使用

CdbImages dbImages(&db);

dbImages.open();

但此时获得的是表第一行的BBB值。如果需要得到AAA = ‘aaa’的时候BBB的值,即:select BBB from TABLENAME where AAA='aaa' 则可以:

CString bbb_str;
CString aaa_str = L"aaa";

dbImages.m_strFilter.Format(L"AAA='%s'",aaa_str);
if(dbImages.Open(CRecordset::snapshot,L"TABLENAME"));

{

//此时获得的就是所要的数据

}


3 CString保存到txt文档

  UNICODE情况下,采用ofstream保存,得到的结果是一串十六位进制的数据。这是因为保存的是地址,而不是数据本身。可以通过:

CString str =”cstring_str“;
CStringA stra(str);

std::ofstream outfile;
outfile.open("save.txt",ios::out);
outfile<<stra;
outfile.close();

可以保存str的数据。


相关文章推荐

win7 oracle odbc配置

Win7 64位 下安装oracle odbc 不能使用控制面板中 “管理工具”->“数据源(OBDC)”中安装数据源。 而要在“ 运行” 中输入  C:\Windows\SysWOW64\od...

Windows Oracle ODBC的安装配置

Windows Oracle ODBC安装配置   本来一脑子心思想使用Oracle OCCI接口进行编程的,一个原因是自己比较喜欢纯C++编程,二是考虑到程序是要往Linux服务器...

Websphere Message Broker 配置ODBC连接(oracle)

1、Windows环境配置 步骤: 1.单击开始 > 控制面板 > 管理工具 > 数据源 (ODBC) 2.单击系统 DSN 选项卡,并单击添加 3.配置新建DSN     4.关闭OD...

Qlikview配置ODBC连接SQL SERVER/ORACLE

1,打开ODBC数据源管理器:运行--〉ODBC 2,

Win8.1环境下配置oracle gateway for mysql(odbc)

一、环境说明 Oracle12c与gateway部署在Win8.1系统的同一台机器上,Mysql部署在Ubuntu上。 gateway版本:winx64_12102_gateways Oracle版本...

Oracle ODBC 驱动安装及详细配置(不需安装客户端)

Oracle ODBC 驱动安装及详细配置(不需安装客户端) 详细见百度网盘和360网盘 http://wenku.baidu.com/link?url=7hmzRoroZm2TQGwLcK4wVS...
  • mmbbz
  • mmbbz
  • 2017年02月10日 11:27
  • 743

深入浅析mybatis oracle BLOB类型字段保存与读取

一、BLOB字段   BLOB是指二进制大对象也就是英文Binary Large Object的所写,而CLOB是指大字符对象也就是英文Character Large Object的所写。其中BLO...
  • QCIWYY
  • QCIWYY
  • 2017年01月05日 13:48
  • 1475

关于文件保存到Oracle中BLOB字段的方法及例子

关于文件保存到Oracle中BLOB字段的方法及例子 ------------------------------------------- public class FileOpClass ...
  • hsg77
  • hsg77
  • 2011年10月12日 13:21
  • 5278

c# winform 读取oracle中blob字段的图片并且显示到pictureBox里,保存进库

C#代码   private void button2_Click(object sender, EventArgs e)   {       OracleConnection co...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于ODBC的配置、访问ORACLE的BLOB及CString的保存
举报原因:
原因补充:

(最多只允许输入30个字)