私はCで埋め込みSQLを学習する課題を行っています。最初の5つのクエリは正常に動作しますが、今は固執しているようです。以前のクエリとまったく同じ構造になっていても、私はこの出力を得られません。私はたぶん愚かなものを逃しているだけだろう。思考?Embedded SQL - 出力はありませんか?
[編集]以下は、クエリの結果であるべき表です。それにはnull値があり、SQLエラー-305 Nullインジケータが必要です。
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
あなたのコードを編集テキストボックスに貼り付けて、その上にある '{}'ボタンをクリックするだけで、あなたのコードに印を付けるだけです。 – thkala
それは簡単ですか?私は次回はそれを手に入れよう! LOL – Eric