|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
应用程序需要使用数据库,数据库本身需要设计、开发和部署。还有MySQL学习教程,客户怎样实施混合系统,或者需要帮助管理多个云服务?静态
静态SQL中DESCRIPTOR的使用
王光红
静态SQL具有的天真性是尽人皆知的,自己在此先容一种使用DESCRIPTOR的静态SQL:
$shortb_num;
$char*command;
$charSql[1024];
$shortflag;
$dateDate;
$longNumber,b_count,j;
$longprec;
$longtype;
$longscale;
$doublemoney;
sprintf(Sql,"select*fromtable");
$prepareqidfrom$Sql;
if(SQLCODE)return-1;
$declareBROWSEscrollcursorforqid;
if(SQLCODE)return-2;
$allocatedescriptorbrowsdescwithmax:b_num;//在形貌辨别配空间,并设置最年夜的项目数
$getdescriptorbrowsdesc:b_count=count;//失掉查询的字段个数
if(SQLCODE){
SqlErrHandle(SQLCODE,SELECT);
gotoEXIT0;
}
$fetchBROWSEusingsqldescriptorbrowsdesc;
if(SQLCODE){
strcpy(RetPacket.data,"SELECTERROR|");
SqlErrHandle(SQLCODE,SELECT);
gotoEXIT0;
}
for(j=1;j<=b_count;j++){
$getdescriptorbrowsdescvalue$j//以后字段序号
$prec=precision,/*money、decimal*/
$scale=scale,/*money、decimal*/
$type=type;
if(SQLCODE){
SqlErrHandle(SQLCODE,SELECT);
gotoEXIT0;
}
switch(type){
caseSQLFLOAT:
caseSQLSMFLOAT:
caseSQLDECIMAL:
caseSQLMONEY:
if(prec)
sprintf(fmt,"%s%d.%df ","%",prec+1,scale);
else
strcpy(fmt,"%f");
$getdescriptorbrowsdescvalue$j
$money=data;
sprintf(result,fmt,money);
if(SQLCODE==DATAISNULL)result[0]=0;
break;
default:
$getdescriptorbrowsdescvalue$j
$result=data;
}//switch
if(SQLCODE==DATAISNULL)SQLCODE=0;
if(SQLCODE){
SqlErrHandle(SQLCODE,SELECT);
gotoEXIT0;
}
OutPut(result);//输入了局
}//for
曾经的功能列表可能会迅速变得过时了。而且,有些功能对有的应用程序非常重要,但是对别的应用程序则不一定。 |
|