问题标签 [ecpg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
365 浏览

postgresql - 带有数组参数的存储过程的 ECPG 调用

我有一个 ECPG 客户端试图获取数据。它使用带有子选择子句的准备好的语句,该子句使用带有 4 个参数的存储函数“getsipid”。我已经将第 4 个参数声明为简单的 varchar。我试图将第四个参数声明为一个数组,但是,ecpg 仅在第四个参数中传递数组的第一个参数,而不是全部。

传递整个 requsr(s) 数组的诀窍是什么。这个数组大小通常最多只能包含 5 个参数。我意识到我可以向函数添加更多参数来克服这个问题。我希望解决方案会更优雅。

感谢您的意见

戴夫

pgc 文件准备了上面的主机变量,并且有一个调用效果。

存储的函数声明为

0 投票
3 回答
1122 浏览

c - PostgreSQL ecpg 程序不保存对数据库的更改

我在笔记本电脑上使用 postgresql 服务器,并尝试使用 epcg 通过我的 C 程序连接数据库。我编写了以下命令来预编译、编译和运行我的.pgc程序。

我的程序正在编译并成功运行,即它没有显示任何错误。
但是,当我尝试在命令行提示符下检索我的数据库时,使用命令
COMMAND - psqldatabase

表中没有更新,即我在程序中编写的命令没有在数据库中更新。

以下是.pgc文件中的代码:

以下是预编译后的 C 代码:

0 投票
1 回答
890 浏览

postgresql - ecpg 找不到包含,除非从包含源文件的目录执行

当从包含源的目录运行时,ecpg 可以找到 EXEC SQL INCLUDE 头文件,但不能从任何其他目录运行。

这是一个插图。编译成功:

缺少包含参数,因此预计会失败:

添加 ecpg 包含参数。仍然失败:

我试过指定 src 目录的绝对路径。没提升。我知道 -o 不是必需的。

我正在使用 PostgreSQL 9.2。这是来自 ecpg 的版本信息:

0 投票
0 回答
273 浏览

sql - ECPG:EXEC SQL DECLARE SECTION 中的 sizeof()

我有 Sybase ASE CPRE 嵌入式 SQL С 代码:

尝试迁移到 PostgreSQL ECPG Embedded SQLС 代码:

但是 ecpg.exec 预编译器返回:

我的解决方案:

预编译后的函数C代码:

但也许有一个更正确的决定。

0 投票
1 回答
333 浏览

postgresql - Postgresql 模式 INFORMIX 或 INFORMIX_SE

PostgreSQL, withecpg中,有两种兼容模式:INFORMIX, INFORMIX_SE.

INFORMIX设置模式和设置模式有区别INFORMIX_SE吗?我没有看到有关此Postgresql Doc的任何详细信息

谢谢。

0 投票
1 回答
724 浏览

postgresql - ecpg 错误:break 语句不在循环或开关内

我写了一个ecpg代码。我正在尝试根据元组是否已存在于表中将元组插入表中。我在编译时收到“错误:break statement not within loop or switch”请帮助我在代码中注释了编译器显示错误的行

0 投票
1 回答
321 浏览

c - PostgreSQL - ECPG / C - 主机变量 UTF-8 解码

我有一个 UTF8 编码数据库。我正在使用 ECPG - 程序 C。

当我使用 EXEC SQL 获取数据记录集时

但我在 pgc 文件中打印数据,

我得到:

是否可以在程序 C 中将主机变量 UTF8 解码为 ISO-8859-1?是否可以在 .pgc 文件中说:Postgres 我想要 UTF8 解码值?

谢谢

0 投票
1 回答
1057 浏览

sql - PostgreSQL 为什么/何时应该使用 ECPG

我决定使用 postgreSQL 作为游戏项目(C++)的数据库。

目前我正在使用 Oracle,它是 Pro*C 预编译器,听说 postgreSQL 也有类似的东西,称为 ECPG。

也可以通过使用字符串中的 SQL 直接访问 postgres 数据库中的数据。

那么“正常”和使用 ECPG 之间的区别是您可以像代码一样编写 SQL 语句吗?还是我应该注意其他任何区别?

(PS:我知道我在工作中使用它,但我没有注意到任何其他差异)

期待听到你们的消息。

0 投票
1 回答
255 浏览

qt - 如何为 ecpg 和 qt 项目制作 cmake 脚本?

如何为使用 ecpg 代码生成和 qt moc 编译器的项目制作 cmake 构建脚本?

还有如何在 cmake 中添加代码生成(这在制作中很容易)?

0 投票
0 回答
297 浏览

c - C 连接问题中的嵌入式 SQL

Postgresql 角色是 db 'university' 的所有者,它的配置如下:

更改用户独木舟密码“mypassword”;

C 中的一段嵌入式 SQL 代码只是与 DB 建立连接。

printf("SQLSTATE=[%s]\n", SQLSTATE);
EXEC SQL CONNECT TO 'university' USER 'canoe/mypassword'
printf("SQLSTATE=[%s]\n", SQLSTATE);

代码被编译和链接。它在运行 postgresql 服务器的本地主机上运行并在其默认端口上侦听。

$ ecpg connection.pgc
$ gcc -I/usr/include/postgresql connection.c -o conn -lecpg

编译后的代码输出为:

SQLSTATE=[00000]
SQLSTATE=[08001]

错误代码 08001 表示“sqlclient_unable_to_establish_sqlconnection”。我已更改 postgresql 的配置以记录所有连接尝试以调试代码。

LOG:参数“log_connections”更改为“on”
LOG:00000:参数“log_error_verbosity”更改为“verbose”

但是,运行编译后的代码时,没有任何错误。当我将它与 pgsql 连接时,它有日志信息。

$ pqsql university -W
LOG:连接授权:用户=canoe 数据库=大学

我注意到的有线事情是即使我在提示后输入错误的密码,我仍然可以获得授权。但是我的一段 C 代码不起作用。

我无法解决问题或有任何想法进一步调试它。知道问题出在哪里吗?