日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

完全版 ESQL/C資料二(12)


printf ("n %d record(s) selectednn", counter);
/* 釋放SQLDA申請(qǐng)的空間 */
free_da(sqldaPointer);
} else { /*不是SELECT語(yǔ)句,則執(zhí)行SQL語(yǔ)句 */
EXEC SQL EXECUTE statement1;
if (CHECKERR ("executing the SQL statement") != 0) return SQLCODE;
} /* end if */
return SQLCODE;
}
/* end of program : ADHOC.SQC */
/**************************************************************************
* PROCEDURE : init_da
*為SQLDA分配空間 。其中SQLDASIZE的作用,是計(jì)算SQLDA的大小 。返回-1,
*表示無(wú)法分配空間 。
**************************************************************************/
int init_da (struct sqlda **DAPointer, int DAsqln) {
int idx;
*DAPointer = (struct sqlda *) malloc (SQLDASIZE(DAsqln));
if (*DAPointer == NULL)
return (-1);
memset (*DAPointer, "", SQLDASIZE(DAsqln));
strncpy((*DAPointer)->sqldaid, "SQLDA ", sizeof ((*DAPointer)->sqldaid));
(*DAPointer)->sqldabc = (long)SQLDASIZE(DAsqln);
(*DAPointer)->sqln = DAsqln;
(*DAPointer)->sqld = 0;
return 0;
}
/**********************************************************************
* FUNCTION : alloc_host_vars
*為sqlvar結(jié)構(gòu)申請(qǐng)空間 。返回-1表示申請(qǐng)失敗 。
***********************************************************************/
int alloc_host_vars (struct sqlda *sqldaPointer) {
short idx;
unsigned int memsize =0;
long longmemsize =0;
int precision =0;for (idx = 0; idx < sqldaPointer->sqld; idx) {
switch (sqldaPointer->sqlvar[idx].sqltype ) {
case SQL_TYP_VARCHAR:
case SQL_TYP_NVARCHAR:
case SQL_TYP_LONG:
case SQL_TYP_NLONG:
case SQL_TYP_DATE:
case SQL_TYP_NDATE:
case SQL_TYP_TIME:
case SQL_TYP_NTIME:
case SQL_TYP_STAMP:
case SQL_TYP_NSTAMP:
sqldaPointer->sqlvar[idx].sqltype = SQL_TYP_NCSTR;
sqldaPointer->sqlvar[idx].sqldata = https://www.rkxy.com.cn/dnjc/(char *SQL_POINTER)
malloc ((sqldaPointer->sqlvar[idx].sqllen));
memsize = (sqldaPointer->sqlvar[idx].sqllen);
break;
case SQL_TYP_DECIMAL:
case SQL_TYP_NDECIMAL:
precision = ((char *)&(sqldaPointer->sqlvar[idx].sqllen))[0];
sqldaPointer->sqlvar[idx].sqldata = https://www.rkxy.com.cn/dnjc/(char *SQL_POINTER)
malloc ((precision2) /2);
memsize = (precision2) /2;
break;
default:
sqldaPointer->sqlvar[idx].sqldata = https://www.rkxy.com.cn/dnjc/(char *SQL_POINTER)
malloc (sqldaPointer->sqlvar[idx].sqllen);
memsize = sqldaPointer->sqlvar[idx].sqllen;
break;
} /* endswitch */
if (sqldaPointer->sqlvar[idx].sqldata =https://www.rkxy.com.cn/dnjc/= NULL) {
return (-1);
} else {
memset (sqldaPointer->sqlvar[idx].sqldata,"",memsize);
} /* endif */
/*為sqlind申請(qǐng)空間*/
if ( sqldaPointer->sqlvar[idx].sqltype & 1 ) {
/* Allocate storage for short int */
sqldaPointer->sqlvar[idx].sqlind = (short *)malloc(sizeof(short));
/* Detect memory allocation error */
if ( sqldaPointer->sqlvar[idx].sqlind == NULL ) {
return(-1) ;
} else {
/* initialize memory to zero */
memset(sqldaPointer->sqlvar[idx].sqldata,"",sizeof(short));
} /* endif */
} /* endif */
} /* endfor */
return 0;
}
/**************************************************************************
* FUNCTION : free_da
* 釋放SQLDA 申請(qǐng)的空間 。
**************************************************************************/
void free_da (struct sqlda *sqldaPointer) {
short idx;
for (idx = 0; idx < sqldaPointer->sqld; idx) {
free (sqldaPointer->sqlvar[idx].sqldata);
if (sqldaPointer->sqlvar[idx].sqltype & 1) {
free (sqldaPointer->sqlvar[idx].sqlind);
}
} /* endfor */
free (sqldaPointer);
}
/**************************************************************************
* PROCEDURE : readColName
* 返回列名信息
**************************************************************************/
char * readColName (struct sqlda *sqldaPointer, short sqlvarIndex, char * buffer) {
strncpy(buffer, sqldaPointer->sqlvar[sqlvarIndex].sqlname.data,
sqldaPointer->sqlvar[sqlvarIndex].sqlname.length);

推薦閱讀