2016-12-08 7 views
0

У меня есть простая программа, которая считывает данные из базы данных, я использую ODBC, но я хочу сохранить данные или строку в массиве. Я сохранил его в SQLPOINTER col [50]. Как я могу вернуть весь массив? Является ли это возможным? NB, я не хочу печатать данные в массиве, просто хочу, чтобы значения в массиве (у меня уже есть) и возвращали весь массив, чтобы кто-нибудь из вызывающих функцию имел данные, которые они запрашивали из базы данных. Может ли кто-нибудь предложить какие-либо рекомендации? Я вроде новичок, поэтому, пожалуйста, немного терпения :-) Большое спасибо. Функция, которая у меня есть:Как вернуть массив SQLPOINTER в C?

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

Я решил. Для парня, который сказал, что мой код не имеет смысла, спасибо за ненужный комментарий, но он прав. Я не могу вернуть весь массив. Что я сделал, так это передать массив как один из аргументов и скопировать значения массива в массив, который был передан. Я также изменил, что все пути возвратили значение. Спасибо что подметил это. Возможно, это не лучшее решение, что вы, ребята, думаете?