0

出力を取得し、出力をユーザーに表示するには、Pro C を使用して次のクエリを実行する必要があります。

私は次のコードスニペットを試しました:

int count=0;
char query1[100]="select count(code) from customer where customer_type='a';";
EXEC SQL ALLOCATE DESCRIPTOR 'out' ;
EXEC SQL PREPARE statement FROM :query1 ;
EXEC SQL DESCRIBE OUTPUT statement USING DESCRIPTOR 'out' ;
EXEC SQL SET DESCRIPTOR 'out' VALUE 1 TYPE = :data_type, 
    LENGTH = :data_len, DATA = :count ;
EXEC SQL DECLARE c CURSOR FOR statement ;
EXEC SQL OPEN c ;
EXEC SQL FETCH c INTO DESCRIPTOR 'out' ;
EXEC SQL GET DESCRIPTOR 'out' VALUE 1 :count = DATA;
EXEC SQL CLOSE c ;
printf("%-8d ",count);

しかし、私が得る出力は常に0です。

適切な出力を取得するにはどうすればよいですか?? 誰か助けてくれませんか...

4

2 に答える 2

0

気付かないエラーがいくつかある可能性は十分にあります。

EXEC SQL WHENEVER を使用して、エラー チェックを実行します。

1 つ目に飛び込んできたのは、query1 の値の末尾にあるセミコロンです。私の記憶が正しければ、Pro*c はそれにバーフします。

于 2015-01-17T03:58:30.093 に答える