2012-01-18 5 views
0

У меня есть DLL, где я делаю подключение к базе данных MySQL. У меня есть функции Open(), Close(), Update() и Find(). Функции Update() вставляют данные в таблицу, и это работает отлично. Однако функция Find() просто выполняет простой запрос к той же таблице. Когда я вызываю функцию getXX(), я получаю ошибку нарушения прав доступа, и я не могу понять, почему. Что мне не хватает? Обратите внимание, что запрос представляет собой представление, а не прямую таблицу, но я бы не подумал, что это имеет значение.Ошибка MySQL C++ Нарушение доступа

MT4_EXPFUNC int __stdcall Find(char* pair) 
{ 
try 
{ 
    sql::Statement *stmt; 
    sql::ResultSet* res; 
    string p = pair; 
    string buysell = ""; 
    string qry = "select * from forex.GPBUSD_CURRENT_PRICE"; 

    stmt = _connection->createStatement(); 

    res = stmt->executeQuery(qry); 

    // if we have a record it means we have a trade chance 
    if(res->next()) 
    { 
     buysell = res->getString(1);  // ACCESS VIOLATION ERROR HERE 
    } 

    // clean up 
    delete res; 
    delete stmt; 

    if(buysell == "SELL") 
     return 1; 
    else if(buysell == "BUY") 
     return 2; 
    else 
     return 0; 
} 
catch(sql::SQLException &e) 
{ 
    return -1; 
} 
} 

ответ

0

Вы считаете, что getString является нулевым индексированным методом? Или, если это нулевой тип данных, к которому вы пытаетесь получить доступ? или снимать только потому, что res-> next() работает и не падает, не означает, что res является действительным ptr.

+0

У меня есть более одного столбца, поэтому даже если это нулевой индекс, он должен вытащить столбец. Он также не должен быть пустым, поскольку я запускаю запрос в workbench MySQL, и он возвращает результат. Если это NULL, как вы это проверяете перед чтением? – user441521

+0

Я поместил a if (! Res-> isNull (1)) перед этим, и он передал эту проверку, чтобы она не была нулевой. – user441521

+0

Итак, если res не является допустимым указателем, что может быть причиной этого? Это проблема. Почему бы это не сделать? – user441521

Смежные вопросы