2013-05-12 20 views
-2

我将如何将标准SELECT的while循环的所有输出与MySQL C++连接器一起放入带分隔符的字符串中以分隔输出? 我对C++相当陌生,因此对此尚未了解很多。使用C++连接器将输出选择为字符串

我目前使用Visual Studio 2012来编译和编译我的项目。

编辑:这是我一直Barmar的评论后尝试:

#include <vector> 
vector<string> dbOutput; 
while(res->next()){ 
dbOutput.push_back(res->getBlob("testcolumn")); 
} 

但我已经得到了错误的std ::向量< _Ty “重载函数的任何实例”,_Alloc> ::的push_back [与_Ty = std :: string,_Alloc = std :: allocator]“匹配参数列表...”。

+1

无论你是多么新,你必须试试我们来帮助你。我们不只是为您编写代码,我们帮助您解决您所尝试的问题。 – Barmar 2013-05-12 19:28:16

+0

我会,但我对如何做到这一点非常无知 - C++是一种全新的编码方式,通常我会做的是将所有内容放入数组中,然后使用某个函数将其转换为带分隔符的字符串。 – 2013-05-12 19:33:34

+1

你可以用C++来做到这一点。你也可以使用'std :: vector'来简化数组处理。但总体方法与大多数其他语言相同,只是语法差异较小。除非你尝试,否则你不会学习。 – Barmar 2013-05-12 19:34:55

回答

1

res->getBlob("testcolumn")返回std::istream*类型的对象,但vector<string>::push_back()仅接受一个字符串作为参数(根据vector<string>定义)。

您需要将stream中的数据提取到string中,然后将此string推送到您的vector中。例如:

vector<string> dbOutput; 
std::istream *blob = res->getBlob("testcolumn"); 
std::string blobString = ""; 
std::string buffer; 
while (!blob->eof()){ 
    *blob >> buffer; 
    blobString += buffer; 
} 
dbOutput.push_back(blobString); 
+0

谢谢,这可以让我开始就这个问题。 – 2013-05-21 07:19:07