OCI OCIDefineByPos函数绑定变量问题!

o46382509 2009-12-18 02:12:48
我现在在写个OCI程序需要输出结果,我绑定输出变量是这样绑定的。

ORACLE表中的字段是日期类型,我绑定的输出变量是char start[20];

输出结果是xm我想问下怎样绑定才能得到自己想要的日期值呢?




char start[20];

OCIDefineByPos(stmthpp, &bhp4, errhpp, 4, (dvoid *)&gather.start, sizeof(gather.start), SQLT_DAT, NULL, NULL, NULL, OCI_DEFAULT);

...全文
758 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
o46382509 2009-12-20
  • 打赏
  • 举报
回复
这样的话,可以是可以,是种问题解决的方法。

但是能不能直接转化呢?利用OCIDefineByPos()绑定输出变量。

从ORACLE日期类型直接转化成C字符型呢?

我差了下oralce 的 date 类型是结构体。

猜测下如果转换成long类型,得到的这个数是不是雷同与time(tmp)呢?

哪位大侠还有其他的方法没?
o46382509 2009-12-20
  • 打赏
  • 举报
回复
恩,对啊!一语惊破 糊涂人啊。

非常感谢啊。
crazylaa 2009-12-19
  • 打赏
  • 举报
回复
楼主如果不是对象绑定的话,可以把select 语句里面的date类型的那个字段用to_char函数转换成字符串型?
o46382509 2009-12-19
  • 打赏
  • 举报
回复
顶起来!!!
crazylaa 2009-12-18
  • 打赏
  • 举报
回复
不懂帮顶
oci函数的详细介绍 和应用实例 OCI 连接过程比较复杂,除了分配设置各个基本句柄外,还要明确彼此之间的联系,大致流程如下: 创建环境句柄: OCIEnvCreate(&envhp;, …); 创建一个指定环境的错误句柄: OCIHandleAlloc((dvoid *)envhp, (dvoid **)&errhp;,…); 创建一个指定环境的服务器句柄: OCIHandleAlloc((dvoid *)envhp, (dvoid **)&servhp;,…); 建立到数据源的访问路径 : OCIServerAttach(servhpp, errhpp,…); 创建一个指定环境的服务上下文句柄: (void) OCIHandleAlloc((dvoid *)envhpp,…); 为指定的句柄及描述符设置特定的属性: (void) OCIAttrSet((dvoid *)svchpp,…); 创建一个指定环境的用户连接句柄: (void) OCIHandleAlloc((dvoid *)envhpp,…); 为用户连接句柄设置登录名及密码: (void) OCIAttrSet((dvoid *)usrhpp,…); 认证用户建立一个会话连接: OCISessionBegin(svchpp, errhpp,…); 创建一个句子句柄: OCIHandleAlloc((dvoid *)envhpp,…);s 准备 SQL 语句: OCIStmtPrepare(stmthpp, errhpp,…); 绑定输入变量OCIBindByPos(stmtp &hBind;, errhp,…); 绑定输出变量OCIDefineByPos(stmthpp, &bhp1;, errhpp,…); 获得 SQL 语句类型: OCIAttrGet ((dvoid *)stmthpp, (ub4)OCI_HTYPE_STMT,…); 执行 SQL 语句: OCIStmtExecute(svchpp, stmthpp,…); 释放一个会话: OCISessionEnd(); 删除到数据源的访问 : OCIServerDetach(servhpp, errhpp, OCI_DEFAULT); 释放句柄: OCIHandleFree((dvoid *) stmthpp, OCI_HTYPE_STMT);

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧