oracle oci 调用 1
http://blog.163.com/earth_of_fire/blog/static/1368943200791211622278/(总结)
http://blog.163.com/earth_of_fire/blog/static/1368943200791223416510/(数据列表)
http://blog.163.com/earth_of_fire/blog/static/13689432007918112936198/(select)
http://www.cnblogs.com/hustskyking/p/webAudio-listen.html
http://blog.csdn.net/evgd2288/article/details/6607035 (好)
http://hi.baidu.com/mgqw864/item/e54b48552b8a56978d12ed7f()
http://blog.csdn.net/wbj1234566/article/details/2003200()
http://read.pudn.com/downloads51/sourcecode/windows/database/176187/OCIExample/OCIExampleDlg.cpp__.htm:
http://www.pudn.com/downloads51/sourcecode/windows/database/detail176187.html
http://read.pudn.com/downloads195/sourcecode/database/916923/testoci/testociDlg.cpp__.htm
http://www.pudn.com/downloads195/sourcecode/database/detail916923.html
- void COCIExampleDlg::OnButtonConnect()
- {
- this->UpdateData (); //更新数据
- //代码5.2,处理SQL的第一步,准备SQL
- wsprintf((char*)textSQL, "SELECT * FROM Score %s",SQL);
- if(status=OCIStmtPrepare(stmthp, errhp,textSQL, strlen((char*)textSQL),OCI_NTV_SYNTAX, OCI_DEFAULT))
- {
- ErrorProc (errhp, status) ;
- return;
- }
- //代码5.3,处理SOL的第三步,执行
- if (status=OCIStmtExecute(svchp, stmthp,errhp, (ub4)0, 0, NULL, NULL, OCI_DEFAULT))
- {
- ErrorProc (errhp, status) ;
- return;
- }
- //代码5.4,处理SOL的第四步,描述
- //代码5.4.1,读取选择列表中的项数
- ErrorProc(errhp, OCIAttrGet(stmthp,OCI_HTYPE_STMT,&col_num, 0, OCI_ATTR_PARAM_COUNT,errhp ));
- int ColumnNumbers=(int) col_num;
- text *namep; //字段名称
- ub4 sizep; //字段名称的字符串长度
- text tempText[100];
- //获取表的字段的属性信息
- int nindex=m_CombolFieldName.GetCurSel();
- if(nindex<0) nindex=0;
- m_CombolFieldName.ResetContent();
- for(int i=0;i<(int)col_num; i++)
- {
- //为选择项分配参数描述符
- ErrorProc(errhp, OCIParamGet(stmthp,OCI_HTYPE_STMT, errhp, (void**)&colhp, ub4(i+1)));
- //读取选择项的数据长度
- ErrorProc(errhp, OCIAttrGet(colhp, OCI_DTYPE_PARAM,&collen[i], 0, OCI_ATTR_DATA_SIZE, errhp ));
- //读取选择项的数据类型
- ErrorProc(errhp, OCIAttrGet(colhp, OCI_DTYPE_PARAM,&coltype[i],0, OCI_ATTR_DATA_TYPE, errhp));
- //若这个字段为日期型,则把其字符宽度置为50
- if (coltype[i]==SQLT_DATE)collen[i] =50;
- //分配缓冲区
- colbuf[i]=(text*)new text[(int)collen[i]+1];
- //代码5.4.2获取字段名称
- ErrorProc(errhp, OCIAttrGet(colhp, OCI_DTYPE_PARAM,(dvoid*)&namep, (ub4*)&sizep, OCI_ATTR_NAME, errhp ));
- strncpy((char*)tempText, (char*)namep, (size_t)sizep) ;
- tempText [sizep]= '\0';
- m_grid.SetTextMatrix(0,i+1,(const char *)tempText); //将数据写入表格控件
- m_CombolFieldName.AddString((const char *)tempText); //将字段名称添加入下拉列表框
- }
- m_CombolFieldName.SetCurSel (nindex);
- //代码5.5,处理SQL的第五步,定义变量
- for(i=0; i<(int)col_num; i++)
- {
- if (status=OCIDefineByPos (stmthp,&defhp[i],errhp, i+1,(ub1*)colbuf[i],
- collen[i]+1,SQLT_STR,&ind[i], 0, 0, OCI_DEFAULT))
- {
- ErrorProc(errhp, status);
- return;
- }
- }
- //代码5.6,处理SQL的第六步,取值
- int row=0;
- CString tempstr;
- while((OCIStmtFetch(stmthp, errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT))!=OCI_NO_DATA)
- {
- row = row+1;
- m_grid.SetRows(row+1); //根据数据的行数动态设置表格控件的最大行数
- tempstr.Format ("%d",row);
- m_grid.SetTextMatrix(row,0,tempstr); //设置序号
- for(i=0; i<(int)col_num; i++)
- {
- tempstr=(char*)colbuf[i];
- tempstr.TrimRight(' '); //删除右空格
- //把获取的用户的基表的数据赋予字段数值数组
- m_grid.SetTextMatrix(row,i+1,tempstr);
- }
- }
- SQL="";
- }
oracle oci 调用 1的更多相关文章
- 基于Oracle OCI的数据访问C语言接口ORADBI .
基于Oracle OCI的数据访问C语言接口ORADBI cheungmine@gmail.com Mar. 22, 2008 ORADBI是我在Oracle OCI(Oracle 调用接口)基础 ...
- ORACLE存储过程调用Web Service
1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...
- .NET易忘备留 ORACLE存储过程调用
1.Oracle存储过程调用[返回信息,单体或者列表] public IResult FundBuild(string partnerId,string userId, DateTime beginD ...
- Qt编译Oracle OCI驱动
最近使用qt开发了一个访问数据库的工具, 默认使用ODBC驱动注入的方式,后来发现Oracle中ODBC驱动注入经常失败. 后来就想直接使用OCI方式访问,而默认情况下Qt只有Sqlite和ODBC驱 ...
- oracle 存储过程 调用动态sql
oracle 存储过程 调用动态sql CreationTime--2018年8月16日11点25分 Author:Marydon 1.错误实现方式 --开始时间拼接' 00:00:00' V_S ...
- Oracle OCI操作UDT相关学习(二)
沿用 Oracle OCI操作UDT相关学习 一文中定义的类型和表. 1.更改数据 在sqldeveloper 中更新数据, update dxl.cust set addr.street='a11' ...
- Oracle 存储过程调用语句
#oracle 存储过程调用语句declare v_custName varchar2(10); --客户姓名 v_num number; --订单分布天数 v_time number; --每日订单 ...
- oracle 存储过程调用 执行
oracle 存储过程调用 博客分类: 数据库相关 oracle存储过程 2011年02月11日 星期五 14:47 SQL中调用存储过程语句: call procedure_name(); 调用 ...
- Oracle OCI操作UDT相关学习
1.Oracle数据类型 Oracle的数据类型如下 字符串类型 char nchar varchar2 nvarchar2 数值类型 int number integer smallint 日期类型 ...
随机推荐
- AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用
对于异步操作的原理我就不讲了.在这我着重讲怎么使用异步操作的doinbackground onProgressUpdate onCancelled onPostExecute这四个方法 doinbac ...
- 算法笔记_130:行列递增矩阵的查找(Java)
目录 1 问题描述 2 解决方案 2.1定位法 1 问题描述 在一个m行n列的二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列.现在输入这样的一个二维数组和一个整 ...
- Unix 网络编程 I/O 模型 第六章
前提,也是重点是, 当接收收据.或者读取数据时,分两步 1 等待数据准备好. 2 从内核拷贝数据到进程. 对于一个network IO 即 socket(这里我们以read举例),它会涉及到两个系统对 ...
- 【VBA】点击工作簿中的每个单元格,整行整列变色
需求描述 在点击单元格的时候,单元格所在行与列都变色显示 实现方案 打开Excle表格,按住ALT+F11 双击上图中的ThisWorkbook Private Sub Workbook_SheetS ...
- iOS 3DTouch
概述 iOS10系统登录中国,在系统中对3D Touch的使用需求更频繁,所以对iOS9中便引入的3D Touch功能做一些了解是很有必要的 详细 代码下载:http://www.demodashi. ...
- Android开发之短信
短信主要界面:会话列表,会话详情,新建短信. 联系人主要界面:联系人列表,编辑联系人. 创建首页.首页由TabActivity表现. 在Android4.1中,TabActivity处于保护状态. T ...
- 为MFC中的ListBox添加水平滚动条
我们知道,MFC中的水平滚动条并不像垂直滚动条那样的智能.当文字超出ListBox的宽度时,水平滚动条并不会自己出现,我们需要手动的调用CListBox中的函数SetHorizontalExtent设 ...
- Python实现百度搜索并保存到本地示例,Python实现百度搜索
实现百度搜索并保存到本地 User_Agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko ...
- C++ 类的实例中 内存分配详解
一个类,有成员变量:静态与非静态之分:而成员函数有三种:静态的.非静态的.虚的. 那么这些个东西在内存中到底是如何分配的呢? 以一个例子来说明: #include"iostream.h&qu ...
- 开发avr单片机网络资源
1.avr用的c语言标准库 http://www.nongnu.org/avr-libc/ 2.avr的下载上传器 http://www.nongnu.org/avrdude/ 3.编程环境platf ...