標籤:erro turn into string reason for tor fail 串連
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include "sqlca.h"//指示變數:用來對宿主變數做說明//指示變數作輸入:當值-1,表示宿主變數是空值//指示變數做輸出:當值-1,表示返回的變數是空值//文法格式:宿主變數 [indicator] 指示變數 其中indicator關鍵字可加可不加//eg::name1 indicator :name_indEXEC SQL BEGIN DECLARE SECTION; char *serverid="scott/[email protected]"; int ida1[10]; int idb1[10]; varchar name1[10][20]; short name_ind[10];//定義指示變數,必須是short宿主類型EXEC SQL END DECLARE SECTION;//錯誤處理升級函數void sqlerr(){ int ret=0; char stn[120]; //sqlfc:SQL語句的實際長度 size_t sqlfc,stmlen=120; EXEC SQL WHENEVER SQLERROR CONTINUE; ret=sqlgls(stn,&stmlen,&sqlfc); if(ret!=0) { printf("sqlgls() failed ! err code: %d\r\n",ret); return ; } printf("出錯的SQL語句是:%.*s\r\n",stmlen,stn); printf("err reason:%.*s\r\n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc); EXEC SQL ROLLBACK WORK RELEASE;}void main(){ EXEC SQL WHENEVER SQLERROR DO sqlerr(); EXEC SQL connect:serverid ; printf("connect ok!\r\n"); EXEC SQL WHENEVER NOT FOUND CONTINUE; EXEC SQL select ida,idb,name into :ida1,:idb1,:name1:name_ind from t2; //sqlca.sqlerrd[2]擷取SQL語句查詢到的記錄數 int count=sqlca.sqlerrd[2]; //終端列印資料 int i=0; for(i=0;i<count;i++) { if(name_ind[i]==-1) { printf("第%d條:ida1=%d,idb1=%d,name1=%s\r\n",i,ida1[i],idb1[i],"空值"); }else { printf("第%d條:ida1=%d,idb1=%d,name1=%s\r\n",i,ida1[i],idb1[i],name1[i].arr); } } //提交中斷連線 EXEC SQL COMMIT RELEASE; system("pause");}
資料庫 proc編程六