我尝试使用libpq从HP Vertica 6查询数据: SELECT * FROM列WHERE table_name =?
并收回错误: 错误:语法错误在或附近" EOL" 第1行:... FROM列WHERE table_schema =? ^
我也试过1美元而不是?,但它没有将它识别为参数。为什么呢?
答案 0 :(得分:1)
我找到了从C ++应用程序向Vertica传递参数的方法!首先,应该准备声明。其次,应使用正确的类型编号(而不是为Postgres / libpq定义的默认编号)。类型编号的示例:
PGTYPE_INT8 = -5,
PGTYPE_INT2 = 5,
PGTYPE_INT4 = 4,
PGTYPE_TEXT = -1,
PGTYPE_FLOAT4 = 7,
PGTYPE_FLOAT8 = 8,
PGTYPE_VARCHAR = 12,
PGTYPE_DATE = 91,
PGTYPE_TIME = 92,
PGTYPE_TIMESTAMP = 93,
PGTYPE_NUMERIC = 2,