【问题标题】:Solved:Query Results (to CString) in C++ using mysql.h已解决:使用 mysql.h 在 C++ 中查询结果(到 CString)
【发布时间】:2021-04-14 14:58:55
【问题描述】:

我目前正在尝试 C++ 并使用 oracle 的 mysql c api 构建数据库连接。首先它工作正常。
如果我查询像“select username [...] where id=1”这样的 col,我会得到我的结果:
testuser.
但是,如果我尝试“从...中选择 *”,我会得到:
1 //正确的ID
t // 只有第一个字母。

我环顾四周,即使在这里,但无法弄清楚如何获得完整的结果:
1
测试用户

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

纳斯腾

我的代码:

#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));
                }
            }
        }
    }

【问题讨论】:

    标签: c++ mysql string resultset


    【解决方案1】:

    问题已解决: 结果集是指针上的 Char 指针。通过使用 * 取消引用它,它只会提供第一个字符(如果是强字符)。所以没有它可以正常工作:
    更改“CString strTest(*m_mysqlRow[i]);”到“CString strTest(m_mysqlRow[i]);” .
    它将按预期工作。

    【讨论】:

      猜你喜欢
      • 2021-05-26
      • 2012-06-03
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 2012-04-30
      • 1970-01-01
      • 2010-09-30
      • 1970-01-01
      相关资源
      最近更新 更多