2

我正在使用带有 C++ 的 MySQL C API 连接到数据库。我想从数据库中选择一些数字。

有没有办法直接将 INTEGER 或 DOUBLE 等数字类型提取到 int 或 double 等原生 C 类型中,而无需从字符串中解析它们?

编辑:枚举呢?我讨厌每次都做一个 strcmp 而不是使用 switch。

4

2 回答 2

4

谢谢,但实际上我想我只是在寻找不同的东西时找到了一种方法......

准备好的语句可以完成这项工作。选择数据时,结果存储在 MYSQL_BIND 中,就像准备好的语句参数一样。而在 MYSQL_BIND 中,这些值存储为原生 C 类型。我认为这些链接很有帮助:

http://lgallardo.com/en/2011/06/23/sentencias-preparadas-de-mysql-en-c-ejemlo-completo/ http://dev.mysql.com/doc/refman/5.5/en/ mysql-stmt-fetch.html#id1363684

于 2012-03-23T10:42:03.167 回答
0

我不这么认为 - 据我所知,所有内容都会以 char * 形式返回,然后由您来解释。

如果您要获取与枚举相关的值,请使用

int res = atoi(row[0])

然后

switch(res)
{
case ENUM_VAL_1:
break;
}

对于双打,使用 strtod() 之类的东西从 char * 转换。(这也会检查非数字)

于 2012-03-21T23:18:58.723 回答