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. 编程算法 - 从1到n整数中1出现的次数 代码(C)

    从1到n整数中1出现的次数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个整数n, 求从1到n这n个整数的十进制表示中1出现的次数. ...

  2. 〖C++〗string2int把字符串转换成int的函数

    #include <stdio.h> #include <stdlib.h> #include <string.h> int string2int(char *ar ...

  3. 旧文备份:简单CANOpen 协议说明

    (十年前的旧文,不舍等扔) 创建日期:2005-11-17 修改日期:2005-11-17 文件名称:简单CANOpen 协议说明.doc 作者:winshton 版本:V1.0 (注:本文以24in ...

  4. javascript 字符串中单引号和双引号区别

    最近在使用JavaScript编程,遇到使用字符串的情况. 以下是一些测试代码: var str = 'This is Jack'; var str2 = "This is Tom" ...

  5. HDU 5005(Compromise-双人目标为最大化不同值的博弈)

    Compromise Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  6. 在 Ubuntu12.04/Xubuntu12.04 上安装 QQ2012,这才是真正可行的

     2012-5-18 11:16:29   1. 安装wine 终端下输入: sudo apt-get install wine 复制代码 有人这样:sudo apt-get install wine ...

  7. “好奇号”火星车和它搭载的软件(来自Erlang程序员的观点)

    http://www.aqee.net/on-curiosity-and-its-software/

  8. 常见URL字符及URL编码值

    大家上网的时候一定会看到很多这类情况有的网页地址都是%22%32%11%23%21等这种机器语言恐怕只有机器能马上辨认吧现在我把大概知道的总结一下 字符                         ...

  9. Linux命令-权限管理命令:chmod

    特别注意:在linux中,目录通常是有r和x两个权限的.删除文件的前题是要对文件所在的目录有w的权限才可以. cd /tmp 切换到tmp目录下面 touch chengshi.list 在当前目录中 ...

  10. sql2008拒绝了对对象 (数据库 ,架构'dbo')的SELECT权限

    连接sql2008的时候,出现了这种一直报权限错误:错误截图如下: 所见效果描述:在windows身份验证的 情况下登陆进去数据库的表都是可以打开的,当换到sa或者别的账号登陆进去的时候这个时候我们点 ...