2016-12-08 3 views
0

データベースからデータを読み取る単純なプログラムがありますが、ODBCを使用していますが、データまたは行を配列に保存したいとします。私はそれをSQLPOINTER col [50]に保存しました。 アレイ全体を返すにはどうすればよいですか?出来ますか? NBでは、配列内のデータを印刷したくないだけで、配列内の値を必要としています(すでに持っています)。配列全体を返すので、関数を呼び出す人は、データベース 誰でもアドバイスを提供できますか? 私は初心者のようですので少し忍耐を持ってください:-) ありがとうございました。 私の持つ機能は次のとおりです。CでSQLPOINTER配列を返すにはどうすればよいですか?

SQLPOINTER ColPtrArray[50] 
SQLPOINTER db_getData(SQLHSTMT handle) 
{ 
    retcode = SQLFetch(handle); 
    CHECK_ERROR(retcode, "SQLFetch()", handle, SQL_HANDLE_STMT); 
    if(retcode == SQL_SUCCESS) 
    { 
     printf("\nSQL_SUCCESS\n"); 
     return ColPtrArray; 
    } 

    exit: 
    printf("JJJ"); 
} 

返品できますか?呼び出し元は、返される配列をどのように処理できますか? SQLFETCHを実行すると、配列に表の値が移入されます。この機能は、私は含まれていませんでした。 はい、すべてのパスが値を返すわけではありません。それを指摘してくれてありがとう。

+1

いいえ、あなたはCで配列全体を返すことはできません。あなたのコードはとんでもないですが、ColPtrArrayを返しますが、決してこの配列に何も入れません。何か意味があるように質問を更新してください。 –

+0

すべての制御パスが値を返すわけではありません。 –

+0

SQLFetchが実行されると、配列にはテーブルの値が格納されます。私は、別の関数でバインドされた列を持っています。 –

答えて

0

私はそれを解決しました。私のコードが意味をなさないと言った人のために、不必要なコメントに感謝しますが、彼は正しいです。私は配列全体を返すことはできません。 私がしたことは、引数の1つとして配列を渡し、渡された配列に配列の値をコピーしたことです。 また、すべてのパスが値を返すように変更しました。それを指摘してくれてありがとう。 おそらくそれは最善の解決策ではありません、あなたたちはどう思いますか?

関連する問題