gpt4 book ai didi

c++ - 从 sql 类型 decimal(20,8) 转换为 c++ double

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:27 29 4
gpt4 key购买 nike

我如何从 sql decimal 类型转换为 double 类型而不用像这样的查询转换基础数据库 answer建议。我在 MySQL 上,从 decimal(20,8) 转换为 real 会导致错误。我正在使用 mysql-connector c++,它可以很好地加载和运行查询,但我无法将数据从 mysql-connector 格式转换为 c++ 格式。

我正在使用托管在 linux 上的 mysql 5.1.63,同时也在另一台 linux 机器上运行代码 c++

最佳答案

我没有任何使用 MySQL 的标准 C++ 驱动程序(MySQL 连接器/C++)的经验。但是,我已经使用了 MySQL++ 驱动程序。

MySQL 连接器/C++ 的文档非常缺乏。但是,它看起来好像试图坚持使用 JDBC API。

您可以查看 documentation for JDBC在 Oracle 网站上。

我猜将值转换为 double 相当简单:

sql::Connection* con;

//connection code, etc.

sql::Statement* stmt = con->createStatement();
sql::ResultSet* res = stmt->executeQuery("SELECT big_dec FROM test");

vector<double> results;

while (res->next())
{
//Allow the driver to convert it to double for you.
double res_double = res->getDouble("big_dec");
// You can use either numeric offsets...
cout << "num: " << res_double << endl;

results.push_back(res_double);
}

编辑:

现在你说 double正在正确转换,但未插入到您的 vector<double>

在循环后直接尝试以下操作:

for (vector<double>::iterator it = results.begin(); it != results.end(); it++)
{
cout << *it << endl;
}

编辑:

for循环成功打印所有内容。所以我们知道 double 被添加到 vector<double>正确。

听起来您正在尝试复制您的 vector<double>某处,但没有正确执行。

你是从一个函数返回这个吗?

编辑:

问题已经解决了。 vector问题在别处。

关于c++ - 从 sql 类型 decimal(20,8) 转换为 c++ double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12772578/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com