【发布时间】:2020-06-05 02:34:59
【问题描述】:
我对 C 语言中的 PostgreSQL 结果和整数有一点问题。所以我有一个具有这种结构的简单表:
ID(pk int) |姓名(文字)|值(整数)
1 |苹果| 高分辨率照片| CLIPARTO 100
2 |香蕉| 高分辨率照片| CLIPARTO 9
我使用这个代码:
PGconn *conn = PQconnectdb("user=un password=pw dbname=db hostaddr=1.2.3.4 port=5432");
res = PQexec(conn, "SELECT * FROM fruits WHERE name='banana'");
int *banan_count;
banana_count = (int)PQgetvalue(res, 0, 2);
printf ("Banana values : %u\n", banana_count);
PQclear(res);
do_exit(conn);
问题是当我尝试使用“banana_count”打印时我的结果不是“9”,但是当我打印出“PQgetvalue(res, 0, 2)”时我得到了“9”,所以我认为我有一个转换问题,但我找不到解决方案。所以我的问题是,如何在 C 编程语言中将 'PQgetvalue(res, 0, 2)' 转换为整数变量? (我使用 Ubuntu 18.04 并使用 gcc 编译我的 fruits.c)。
感谢您的支持和帮助。
【问题讨论】:
-
看atoi函数。
printf("%d\n", atoi(PQgetvalue(res,0,2))); -
感谢您的快速回答,我尝试了 atoi 但遗憾的是它也无法正常工作。明天我会尝试“rb_cstr_to_inum”,也许它会起作用。 :)
-
嗯,它应该确实有效。如果您准确地展示了您尝试过的内容,那么有人会发现错误
标签: c postgresql ubuntu char integer