我正在做一個學習C語言嵌入式SQL的任務。前五個查詢工作得很好,但現在我似乎被卡住了。即使它的結構與之前的查詢完全一樣,我也沒有得到任何輸出。我可能只是想念一些愚蠢的東西。思考?嵌入式SQL - 無輸出?
[ed]以下是應該從查詢得到的表格。它裏面有空值,我得到一個SQL錯誤-305需要空指示符。
FIRST_NAME MIDDLE_NAME LAST_NAME BRANCH_NO
---------- ----------- -------------------- ---------
III - AAAAA 1000
KKK - BBB 1000
MMM - CC 3000
K PP DDD 3000
IIIII SSS DDDDD 3000
JJJ QQ EEE 3000
JJJ PP GGG 1000
K - GGG 1000
MEI - JIANG 3000
JASPER CHIACHUN WENG 1000
10 record(s) selected.
[/ ED]
void query6()
{
// SQL Query Definition
EXEC SQL
DECLARE c6 CURSOR FOR
SELECT s.first_name, s.middle_name, s.last_name, b.branch_no
FROM staff AS s, branch AS b
WHERE s.allocated_to = b.branch_no AND
s.allocated_to IN (SELECT branch_no
FROM branch
WHERE city = 'HAMILTON')
ORDER BY s.last_name, s.first_name, s.middle_name;
// Pretty Output
printf("\n%-15s %-15s %-15s %-15s\n",
"FIRST_NAME","MIDDLE_NAME","LAST_NAME","BRANCH_NO");
printf("%-15s %-15s %-15s %-15s\n",
"----------","-----------","---------","---------");
// Fetch SQL Result and Print
EXEC SQL OPEN c6;
while(1)
{
printf("fetch\n");
EXEC SQL FETCH c6 INTO :sqlBuffer1,
:sqlBuffer2,
:sqlBuffer3,
:sqlBuffer4;
depad(sqlBuffer1);
depad(sqlBuffer2);
depad(sqlBuffer3);
depad(sqlBuffer4);
if (SQLCODE!=0) break;
printf("%-15s %-15s %-15s %-15s\n",
sqlBuffer1,sqlBuffer2,sqlBuffer3,sqlBuffer4);
}
EXEC SQL CLOSE c6;
printf("\n");
return;
}
謝謝@thkala,我會學習最終格式化我的代碼塊! – Eric 2011-04-03 19:51:03
將它粘貼到編輯文本框中並單擊該框上方的「{}」按鈕後,只需標記您的代碼即可。 – thkala 2011-04-03 19:52:02
那簡單的呃?那我下次再拿! LOL – Eric 2011-04-03 19:53:57