0
我有一个连接到MySQL数据库的DLL。我有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;
}
}
我有超过1列,所以即使它是零索引它应该拉一列。它也不应该为空,因为我在MySQL工作台中运行查询并返回结果。如果它是NULL,你如何在阅读前检查它? – user441521 2012-01-18 13:12:10
我在它之前放了一个if(!res-> isNull(1)),并且它通过了这个检查,所以它不是null。 – user441521 2012-01-18 13:13:59
所以如果水库不是一个有效的指针可能会导致什么?这是问题。为什么它不是有效的? – user441521 2012-01-18 13:25:24