|
做了一个调用存储过程的DAO
#include <DAO.h>
static T_PkgType seat_proc_type[]={
{CH_INT,sizeof(int),"cursor",0,-1},
{CH_INT,sizeof(int),"num"},
{-1,0,0,0}
};
typedef struct {
int cursor;
int num;
} seat_proc_s;
DAU * get_seat_for_sale(DAU *DP,int quantity,char *userid,char *devidi,char *stmt);
{
DAU proc_DAU;
SEAT_s *seat;
int ret;
char *result;
seat_proc_s p_proc;
DAU *p_DAU;
seat=DP->srm.rec;
sprintf(stmt,"getseat_for_sell(:cursor,:num,%s,%s,%s,%d,%d,%d,%d,%s,%s)",
,seat->start_date, seat->train_no ,seat->beg_station,seat->end_statio ,seat->seat_type ,
seat->purpose ,quantity ,userid ,devid);
ret=ORA_Rpc(DP->SQL_Connect,stmt,&result);
if(ret) {
if(result) free(result);
return NULL;
}
net_dispack(&p_proc,result,seat_proc_type);
free(result);
p_DAU=(DAU *) malloc(sizeof(DAU));
if(!p_DAU) {
___SQL_Close__(DP->SQL_Connect,p_proc.cursor);
return NULL;
}
DAU_init(p_DAU,DP->SQL_Connect,0,DP->srm.rec,DP->srm.tp);//模板可是听天由命了,能对齐吗?
p_DAU->cursor=p_proc.cursor;
p_DAU->srm.result=stmt;
return p_DAU; //回头自己释放吧。
}
后边DAU_next(p_DAU);
一个一个来吧。
我是没敢确定DP将来是否有用,不然直接收拾DP省得分配了。
num没用,DAU_next到底就行了。
[ 本帖最后由 yulihua49 于 2008-12-11 17:53 编辑 ] |
|