已解决:使用mysql.h在C++中查询结果(到CString)



我目前正在尝试C++,并从oracle构建一个与mysql C api的数据库连接。首先,它运行良好
如果我查询类似于";选择用户名[…],其中id=1";我将得到我的结果:
testuser
但是如果我尝试"从中选择*"我会得到:
1//正确的ID
t//只有第一个字母

即使在这里,我也在四处寻找,但无法找出如何获得完整的结果:
1
testuser

一如既往:感谢您的时间和经验。

Nasten

我的代码:

#include "mysql.h"
[...]
sendToLog(_T("Abfrage Starten."));
MYSQL* m_pConn = ConnectToDatabase();
ASSERT(m_pConn != nullptr);
MYSQL_RES *m_pResultSet;
MYSQL_ROW m_mysqlRow;

//Query:
mysql_query(m_pConn, "SELECT * FROM fplaner.user WHERE ll_UserID=1");

//Result speichern
m_pResultSet = mysql_store_result(m_pConn);

//Resultset durchgehen
ASSERT(m_pResultSet != nullptr);                            

int m_llResCount = mysql_num_fields(m_pResultSet);          
if (m_llResCount == 0)                                      
{
sendToLog(_T("ResultSet ist NICHT null aber Leer."));
}
else
{
while ((m_mysqlRow = mysql_fetch_row(m_pResultSet)))    
{
for (int i = 0; i < m_llResCount; i++)
{
if (m_mysqlRow == NULL)
{
sendToLog(_T("Ungültiges ResultSet erhalten on COunt: "+i));
}
else
{
sendToLog(_T("Gültiges ResultSet erhalten."));
CString strTest(*m_mysqlRow[i]);
//CString strTest(*m_mysqlRow);--> gives correct name when query with select name                     
from...
m_mysqlRow
sendToLog((strTest));
}
}
}
}

问题已解决:结果集是指针上的Char指针。通过用*取消引用它,它只会在强的情况下提供第一个字符。因此,如果没有它,效果很好:
更改"CString strTest(*m_mysqlRow[i]("至";CString strTest(m_mysqlRow[i](&">
并且它将按预期工作。

相关内容

  • 没有找到相关文章

最新更新