纯c语言oci函数 c语言o%( 四 )


gps_cache1[Cache1Rec].udate = atoi(info-udate);
gps_cache1[Cache1Rec].utime = atoi(info-utime);
gps_cache1[Cache1Rec].dir = atoi(info-dir);
sprintf(gps_cache1[Cache1Rec].tid ,"%s",info-tid);
Cache1Rec++;
if(Cache1Rec == TotalRec)
{
sflag = 0;
pthread_attr_init(attr);// 初始化属性值,均设为默认值
pthread_attr_setscope(attr, PTHREAD_SCOPE_SYSTEM);
pthread_attr_setdetachstate(attr, PTHREAD_CREATE_DETACHED); //设置线程为分离属性
if (pthread_create(thread, attr,(void*) OracleProcess,(void*)gps_cache1)) // 创建数据处理线程
lprintf(lfd, FATAL, "oracle pthread_creat error!\n");
Cache1Rec = 0;
}
}
else
{
lprintf(lfd, FATAL, "No cache to use!\n");
return (0);
}
return (1);
}
有人用过oracle的oci么oracle调用接口(oracle Call Interface简称oci)提供了一组可对oracle数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取oracle数据库的目的 。
在普通的情况下,用户可以通过sql和PL/sql来访问数据库中的数据 。oracle数据库除了提供sql和PL/sql来访问数据库外,还提供了一个第三代程序设计语言的接口,用户可以通过C、cobol、fortran等第三代语言来编程访问数据库 。oci就是为了实现高级语言访问数据库而提供的接口 。oci允许开发者在程序里使用sql和PL/sql来访问数据库 。开发者可以使用第三代语言来编写程序,而使用oci来访问数据库 。
oci是由一组应用程序开发接口(api)组成的,ORACLE提供api的方式是提供一组库 。这组库包含一系列的函数调用 。这组函数包含了连接数据库、调用SQL和事务控制等 。在安装dbms server或者客户端的时候,就安装了OCI 。
OCI开发方法实际上是将结构化查询语言(SQL)和第三代程序设计语言相结合的一种方法 。对数据库的访问是通过调用OCI库函数实现的,若将C语言作为宿主语言,那么ORACLE数据库调用其实就是C程序中的函数调用 , 一个含OCI调用的C程序其实就是用C语言编写的应用程序 。这样的程序既具有SQL语言非过程性的优点又具有C语言过程性的优点,同时还可具有SQL语言的扩展 , PL/SQL语言过程性和结构性的优点,因此使得开发出的应用程序具有高度灵活 。
C语言 中缀表达式写了个,你试试 。
#include stdio.h
#define is_digit(ch)((ch) = '0'(ch) = '9')
char pri[7][7] =
{
{'','','','','','',''},
{'','','','','','',''},
{'','','','','','',''},
{'','','','','','',''},
{'','','','','','=','$'},
{'','','','','$','',''},
{'','','','','','$','='},
};
int get_cal_index(char c)
{
switch(c)
{
case '+': return 0;
case '-': return 1;
case '*': return 2;
case '/': return 3;
case '(': return 4;
case ')': return 5;
case '#': return 6;
}
return -1;
}
int main(void)
{
char infix[200];
char suffix[200];
char cal[200];
char *np,*ip,*sp,*cp;
int nci, oci;
gets(infix);
infix[strlen(infix) +1] = '\0';
infix[strlen(infix)] = '#';
cal[0] = '#';
ip = infix;
sp = suffix;
cp = cal;
while(*ip)
{
if(is_digit(*ip))
{
int has_dot = 0;
while(is_digit(*ip) || *ip == '.')
{
*sp++ = *ip;
*sp++ = ' ';
if(*ip == '.')
{
if(has_dot)
{
printf("错误的计算数");
exit(-1);
}
has_dot = 1;
}
ip++;
}
ip--;
}
else
{
nci = get_cal_index(*ip);
if(nci == -1)
{
printf("错误的运算符");
exit(-1);

推荐阅读