gpt4 book ai didi

c++ - 如何使用 libpq 插入此自定义数据类型?

转载 作者:行者123 更新时间:2023-11-29 12:37:36 25 4
gpt4 key购买 nike

我在使用 libpq 插入一些数据时遇到了一些困难。我有两种自定义数据类型:

create type size as (width real, height real);
create type rotated_rect as (angle real, center point, bounding_box box, size size)

并且我想将记录插入到具有 rotated_rect 字段的表中,因此对于使用 libpq 的字段,我将字符串值放在一起:

paramv[3] = "(10.5,10.1,10.2,20,20,20,40,(5,5))";

但是,它给了我错误:类型点的输入语法无效:“10.1”

我也试过:

paramv[3] = "(10.5,(10.1,10.2),20,20,20,40,(5,5))"; -> invalid input syntax for "(10.1"
paramv[3] = "(10.5,(10.1,10.2),(20,20,20,40),(5,5))"; -> as above

我正在使用的 sql 命令是:

res = PQexecParams(conn, "insert into test (r,b,s,rr) values ($1::real,$2::box,$3::size,$4::rotated_rect)", 4, NULL, paramv, NULL, NULL,0);

我该如何解决这个问题?

最佳答案

这有效(在 Postgres 9.3 中测试):

SELECT '(10.5,"(10.1,10.2)","(20,20,20,40)","(5,5)")'::rotated_rect

返回:

'(10.5,"(10.1,10.2)","(20,40),(20,20)","(5,5)")'

请注意 box 的不同语法。试试这个表格。

关于c++ - 如何使用 libpq 插入此自定义数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25192830/

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