2010-11-18 7 views
1

このエラーは何を意味していますか?可能な限りすべての方法を変更しましたが、機能していません。ODBCエラーありSQLINTEGER

引数は 'long int型*' から 'SQLINTEGERを*' に変換できません '6' 'SQLRETURNのSQLGetData(ボイド*、SQLUSMALLINT、SQLSMALLINT、void *型、long int型、long int型*)' には、テキスト

Here is the code 
#ifndef CPSC_408_DB_H 
#define CPSC_408_DB_H 

#include <sql.h> 
#include <sqlext.h> 
#include <iostream> 
#include <string> using namespace std; 


class Monster { public: 

    Monster(string dsn); ~Monster(); 
    void execQuery(); 


    private: //used for connection and status 
    SQLHENV env; 
    SQLHDBC dbc; 
    SQLHSTMT stmt; 
    SQLRETURN ret; /* ODBC API return status */ 
    SQLCHAR outstr[1024]; SQLSMALLINT outstrlen; 




}; 



#endif 


//sql getdata method 
/* retrieve column data as a string */ 
    ret = SQLGetData(stmt, i+1, SQL_C_CHAR, 
         buf, sizeof(buf), &indicator); 
を強調しました
+0

これはエラーメッセージです。あなたのコードはどのように見えますか?おそらく、誤ったキャストのために不注意であっても、SQLINTERGER *を使用してlong int *パラメータを実際に呼び出すことになります。 – winwaed

+0

@ user475529 - SQLGetDataへの呼び出しのコードを投稿していただきありがとうございます。このコードで言及されていない変数(つまり、変数i、buf、およびindicator)に記述されていない変数の宣言を追加してください。ありがとうございました。 –

答えて

0

コンパイラが苦労しているSQLGetDataへの実際の呼び出しを関連する宣言とともに投稿するのに役立つでしょうが、私はそれを刺すでしょう。

SQLGetDataの最後のパラメータは、SQLINTEGERへのポインタではなく、long int(ODBCドキュメントの一部のバージョンではSDWORDと呼ばれることもあります)へのポインタです。渡しているアドレスの変数の型をチェックし、必要に応じて変数を更新します。

共有して楽しんでください。

+0

これは動作しませんでしたが、ここではSqlGetDataメソッド – user475529

関連する問題