ОШИБКА ODBC ВНУТРИ SQLINTEGER - PullRequest
1 голос
/ 18 ноября 2010

Что означает эта ошибка? Я перепробовал все возможные способы ее изменения, но она не работает.

не может преобразовать «SQLINTEGER *» в «long int *» для аргумента «6» в «SQLRETURN SQLGetData (void *, 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);

1 Ответ

0 голосов
/ 18 ноября 2010

Было бы полезно, если бы вы опубликовали фактический вызов SQLGetData, о котором говорит компилятор, вместе со всеми связанными объявлениями, но я сделаю попытку.

Последний параметр SQLGetData должен указывать на длинный int (иногда называемый SDWORD в некоторых версиях документов ODBC), а не указатель на SQLINTEGER. Проверьте тип переменной, адрес которой вы передаете, и обновите ее при необходимости.

Делись и наслаждайся.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...