OCI方式纯粹是一些函数接口。
PROC是oracle提供的一种C与ORACLE
SQL的混合编程。程序(以.pc为后缀)编好之后,使用oracle提供的proc预编译程序,将pc文件编译成c文件(这一过程,相当于将SQL转换为OCI的接口),然后再使用c语言编译器生成可以执行文件。
OCI方式不容易入门,它拥有大量的接口函数,要很快熟悉它,非常难。但OCI方式的编程效率很高。
porc方式简单易用。可用于对性能要求不太高的项目。
我只会在unix下面写,嘿嘿win的我还不会呢。。把代码贴上。至于怎么
编译,再查查吧~
int
main()
{
EXEC
SQL
BEGIN
DECLARE
SECTION
char
oc_passwd[101]
/*数据库密码*/
char
oc_userid[101]
/*数据库用户名*/
char
oc_dbname[101]
/*数据库名*/
char
oc_coad[101]
EXEC
SQL
END
DECLARE
SECTION
memset(oc_passwd,
0x00,
sizeof(oc_passwd))
memset(oc_userid,
0x00,
sizeof(oc_userid))
memset(oc_dbname,
0x00,
sizeof(oc_dbname))
/*取数据库用户名*/
strcpy(oc_userid,
"userid")
/*取数据库用户密码*/
strcpy(oc_passwd,
"passwd")
/*取数据库名*/
strcpy(oc_dbname,
"dbname")
EXEC
SQL
CONNECT
:oc_userid
IDENTIFIED
BY
:oc_passwd
USING
:oc_dbname
if
(sqlca.sqlcode
!=
0)
{
printf("用户名[%s]密码[%s]数据库[%s]\n",
oc_userid,
oc_passwd,
oc_dbname)
printf("连接数据库失败,sqlcode=%d\n",
sqlca.sqlcode)
return
-1
}
/*读table取coad字段*/
memset(oc_coad,
0x00,
sizeof(oc_coad))
EXEC
SQL
SELECT
coad
INTO
:oc_coad
FROM
table
WHERE
1=1
if
(sqlca.sqlcode
==
NORECORD)
{
printf("查询无记录\n")
return
-1
}
else
if
(sqlca.sqlcode
!=
0)
{
printf("查询失败,sqlcode=%d\n",
sqlca.sqlcode)
return
-1
}
return
0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)