• 4755阅读
  • 2回复

求教:帮我看看什么地方错了? [复制链接]

上一主题 下一主题
离线饭团儿
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-27
帮我看看这段程序,运行以后就死机了:{谢谢}

char ret[1024];
memset(ret,0,sizeof(ret)) ;
char **dbResult ;
int nRow , nColumn , result;
int m;
sprintf(ret,"Select max(AirOrderNo) from AirTicketOrderInfo");
result = get_dataset(ret,&nRow,&nColumn,&dbResult) ;
printf("0123\n");
if (result == SQLITE_OK){
printf("mmm\n");
if (dbResult[nColumn] == "" || dbResult[nColumn] == NULL)
m = 0;
else
m = nRow;
}
++m;
sqlite3_free_table(dbResult) ;
printf("1234\n");
printf("AirLineNo=%s\n",AirLineNo);
printf("AirOffCity=%s\n",AirOffCity);
printf("AirOnCity=%s\n",AirOnCity);
printf("CustType=%s\n",CustType);
printf("CustName=%s\n",CustName);
printf("IDType=%s\n",IDType);
printf("IDNo=%s\n",IDNo);
printf("m=%d\n",m); //到这句以后就死机了
sprintf(ret ,"Insert Into AirTicketOrderInfo Values('PNR','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%d','%s','%s')",AirLineNo,AirOffCity,AirOnCity,AirOffDate,AirOffTime,AirOnTime,SeatClassCode,Distance,CustType,CustName,IDType,IDNo,AirPortTax,FuelTax,ParPrice,SettlePrice,m,AirOrderDateTime,PlayType) ;
printf("ret=%s\n",ret);
printf("2345\n");
int rc = execute_sql(ret);
return rc ;
离线foxyz

只看该作者 1楼 发表于: 2009-03-27
你的代码不全,所以不太好判断.
sprintf(ret,"Select max(AirOrderNo) from AirTicketOrderInfo");
sprintf应该这么写吧??
sprintf(ret,"%s","Select max(AirOrderNo) from AirTicketOrderInfo");

result = get_dataset(ret,&nRow,&nColumn,&dbResult) ;
这个函数的定义怎么样的?,怎么实现的?因为我看到你定义了char **dbResult ; 也没有去分配内存阿??这样的指针除非指向
已经分配内存的别的变量,否则用起来要出问题.

printf("AirLineNo=%s\n",AirLineNo);
printf("AirOffCity=%s\n",AirOffCity);
printf("AirOnCity=%s\n",AirOnCity);
printf("CustType=%s\n",CustType);
printf("CustName=%s\n",CustName);
printf("IDType=%s\n",IDType);
printf("IDNo=%s\n",IDNo);
printf("m=%d\n",m);

上边的某些变量也没看到定义
离线饭团儿
只看该作者 2楼 发表于: 2009-03-27
因为程序比较大,贴不出来。但是该定义的我都定义了,它有时候会死,有时候有能通过,没问题。
快速回复
限100 字节
 
上一个 下一个