在c++中读取SQL表

Reading SQL table in C++

本文关键字:SQL 读取 c++      更新时间:2023-10-16

我正在尝试使用像这样的函数在c++中读取SQL Server表。

CCommand<CDynamicAccessor>* Read(char* tblName)
    {
     wostringstream query;
     query << "SELECT * FROM " << tblName;
     return dataSource -> Query (query);
    }

调用另一个函数

    CCommand<CDynamicAccessor>* Query(wostringstream& query)
    {
        HRESULT hr;
        hr = _cmd.Open(_sess, _T(query.str().c_str()));
        if (FAILED(hr))
           {
            std::wcout<<query.str().c_str() << "n";
            THROW_EXCEPTION("Command not executed.");
           }
        return &_cmd;
        }

问题是,当我试图检索列值使用这样的东西

char* column20= (char*)cmd->GetValue("column20");
char* column21= (char*)cmd->GetValue("column21"); //Error

因为在column20中我得到了完整的字符串ex。"Value1"但是在列21中,我只得到第一个字符ex。V,当我应该得到Value2

是否有任何大小限制或类似的东西,不允许我检索完整的字符串为column21?

如果是,解决这个问题的最好方法是什么?

最有可能的结果是wchar_t *字符串,您将其强制转换为char *