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

  1. void COCIExampleDlg::OnButtonConnect()
  2. {
  3. this->UpdateData ();   //更新数据
  4. //代码5.2,处理SQL的第一步,准备SQL
  5. wsprintf((char*)textSQL, "SELECT * FROM Score %s",SQL);
  6. if(status=OCIStmtPrepare(stmthp, errhp,textSQL, strlen((char*)textSQL),OCI_NTV_SYNTAX, OCI_DEFAULT))
  7. {
  8. ErrorProc (errhp, status) ;
  9. return;
  10. }
  11. //代码5.3,处理SOL的第三步,执行
  12. if (status=OCIStmtExecute(svchp, stmthp,errhp, (ub4)0, 0, NULL, NULL, OCI_DEFAULT))
  13. {
  14. ErrorProc (errhp, status) ;
  15. return;
  16. }
  17. //代码5.4,处理SOL的第四步,描述
  18. //代码5.4.1,读取选择列表中的项数
  19. ErrorProc(errhp, OCIAttrGet(stmthp,OCI_HTYPE_STMT,&col_num, 0, OCI_ATTR_PARAM_COUNT,errhp ));
  20. int ColumnNumbers=(int) col_num;
  21. text    *namep;     //字段名称
  22. ub4     sizep;      //字段名称的字符串长度
  23. text    tempText[100];
  24. //获取表的字段的属性信息
  25. int nindex=m_CombolFieldName.GetCurSel();
  26. if(nindex<0) nindex=0;
  27. m_CombolFieldName.ResetContent();
  28. for(int i=0;i<(int)col_num; i++)
  29. {
  30. //为选择项分配参数描述符
  31. ErrorProc(errhp, OCIParamGet(stmthp,OCI_HTYPE_STMT, errhp, (void**)&colhp, ub4(i+1)));
  32. //读取选择项的数据长度
  33. ErrorProc(errhp, OCIAttrGet(colhp, OCI_DTYPE_PARAM,&collen[i], 0, OCI_ATTR_DATA_SIZE, errhp ));
  34. //读取选择项的数据类型
  35. ErrorProc(errhp, OCIAttrGet(colhp, OCI_DTYPE_PARAM,&coltype[i],0, OCI_ATTR_DATA_TYPE, errhp));
  36. //若这个字段为日期型,则把其字符宽度置为50
  37. if (coltype[i]==SQLT_DATE)collen[i] =50;
  38. //分配缓冲区
  39. colbuf[i]=(text*)new text[(int)collen[i]+1];
  40. //代码5.4.2获取字段名称
  41. ErrorProc(errhp, OCIAttrGet(colhp, OCI_DTYPE_PARAM,(dvoid*)&namep, (ub4*)&sizep, OCI_ATTR_NAME, errhp ));
  42. strncpy((char*)tempText, (char*)namep, (size_t)sizep) ;
  43. tempText [sizep]= '\0';
  44. m_grid.SetTextMatrix(0,i+1,(const char *)tempText); //将数据写入表格控件
  45. m_CombolFieldName.AddString((const char *)tempText); //将字段名称添加入下拉列表框
  46. }
  47. m_CombolFieldName.SetCurSel (nindex);
  48. //代码5.5,处理SQL的第五步,定义变量
  49. for(i=0; i<(int)col_num; i++)
  50. {
  51. if (status=OCIDefineByPos (stmthp,&defhp[i],errhp, i+1,(ub1*)colbuf[i],
  52. collen[i]+1,SQLT_STR,&ind[i], 0, 0, OCI_DEFAULT))
  53. {
  54. ErrorProc(errhp, status);
  55. return;
  56. }
  57. }
  58. //代码5.6,处理SQL的第六步,取值
  59. int row=0;
  60. CString tempstr;
  61. while((OCIStmtFetch(stmthp, errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT))!=OCI_NO_DATA)
  62. {
  63. row = row+1;
  64. m_grid.SetRows(row+1); //根据数据的行数动态设置表格控件的最大行数
  65. tempstr.Format ("%d",row);
  66. m_grid.SetTextMatrix(row,0,tempstr); //设置序号
  67. for(i=0; i<(int)col_num; i++)
  68. {
  69. tempstr=(char*)colbuf[i];
  70. tempstr.TrimRight(' '); //删除右空格
  71. //把获取的用户的基表的数据赋予字段数值数组
  72. m_grid.SetTextMatrix(row,i+1,tempstr);
  73. }
  74. }
  75. SQL="";
  76. }

oracle oci 调用 1的更多相关文章

  1. 基于Oracle OCI的数据访问C语言接口ORADBI .

    基于Oracle OCI的数据访问C语言接口ORADBI cheungmine@gmail.com Mar. 22, 2008   ORADBI是我在Oracle OCI(Oracle 调用接口)基础 ...

  2. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  3. .NET易忘备留 ORACLE存储过程调用

    1.Oracle存储过程调用[返回信息,单体或者列表] public IResult FundBuild(string partnerId,string userId, DateTime beginD ...

  4. Qt编译Oracle OCI驱动

    最近使用qt开发了一个访问数据库的工具, 默认使用ODBC驱动注入的方式,后来发现Oracle中ODBC驱动注入经常失败. 后来就想直接使用OCI方式访问,而默认情况下Qt只有Sqlite和ODBC驱 ...

  5. oracle 存储过程 调用动态sql

      oracle 存储过程 调用动态sql CreationTime--2018年8月16日11点25分 Author:Marydon 1.错误实现方式 --开始时间拼接' 00:00:00' V_S ...

  6. Oracle OCI操作UDT相关学习(二)

    沿用 Oracle OCI操作UDT相关学习 一文中定义的类型和表. 1.更改数据 在sqldeveloper 中更新数据, update dxl.cust set addr.street='a11' ...

  7. Oracle 存储过程调用语句

    #oracle 存储过程调用语句declare v_custName varchar2(10); --客户姓名 v_num number; --订单分布天数 v_time number; --每日订单 ...

  8. oracle 存储过程调用 执行

    oracle 存储过程调用 博客分类: 数据库相关   oracle存储过程 2011年02月11日 星期五 14:47 SQL中调用存储过程语句: call procedure_name(); 调用 ...

  9. Oracle OCI操作UDT相关学习

    1.Oracle数据类型 Oracle的数据类型如下 字符串类型 char nchar varchar2 nvarchar2 数值类型 int number integer smallint 日期类型 ...

随机推荐

  1. AsyncTask doinbackground onProgressUpdate onCancelled onPostExecute的基本使用

    对于异步操作的原理我就不讲了.在这我着重讲怎么使用异步操作的doinbackground onProgressUpdate onCancelled onPostExecute这四个方法 doinbac ...

  2. 算法笔记_130:行列递增矩阵的查找(Java)

    目录 1 问题描述 2 解决方案 2.1定位法   1 问题描述 在一个m行n列的二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列.现在输入这样的一个二维数组和一个整 ...

  3. Unix 网络编程 I/O 模型 第六章

    前提,也是重点是, 当接收收据.或者读取数据时,分两步 1 等待数据准备好. 2 从内核拷贝数据到进程. 对于一个network IO 即 socket(这里我们以read举例),它会涉及到两个系统对 ...

  4. 【VBA】点击工作簿中的每个单元格,整行整列变色

    需求描述 在点击单元格的时候,单元格所在行与列都变色显示 实现方案 打开Excle表格,按住ALT+F11 双击上图中的ThisWorkbook Private Sub Workbook_SheetS ...

  5. iOS 3DTouch

    概述 iOS10系统登录中国,在系统中对3D Touch的使用需求更频繁,所以对iOS9中便引入的3D Touch功能做一些了解是很有必要的 详细 代码下载:http://www.demodashi. ...

  6. Android开发之短信

    短信主要界面:会话列表,会话详情,新建短信. 联系人主要界面:联系人列表,编辑联系人. 创建首页.首页由TabActivity表现. 在Android4.1中,TabActivity处于保护状态. T ...

  7. 为MFC中的ListBox添加水平滚动条

    我们知道,MFC中的水平滚动条并不像垂直滚动条那样的智能.当文字超出ListBox的宽度时,水平滚动条并不会自己出现,我们需要手动的调用CListBox中的函数SetHorizontalExtent设 ...

  8. Python实现百度搜索并保存到本地示例,Python实现百度搜索

    实现百度搜索并保存到本地 User_Agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko ...

  9. C++ 类的实例中 内存分配详解

    一个类,有成员变量:静态与非静态之分:而成员函数有三种:静态的.非静态的.虚的. 那么这些个东西在内存中到底是如何分配的呢? 以一个例子来说明: #include"iostream.h&qu ...

  10. 开发avr单片机网络资源

    1.avr用的c语言标准库 http://www.nongnu.org/avr-libc/ 2.avr的下载上传器 http://www.nongnu.org/avrdude/ 3.编程环境platf ...