ecpg 插入的demo,pgc格式
时间: 2024-02-24 10:57:35 浏览: 65
ECP平台demo
以下是一个使用ECPG插入数据的demo,pgc格式的文件:
```
/* exec sql begin declare section */
char name[20];
int age;
/* exec sql end declare section */
EXEC SQL BEGIN DECLARE SECTION;
varchar conninfo[100] = "user=postgres password=123456 dbname=test";
PGconn *conn;
PGresult *res;
EXEC SQL END DECLARE SECTION;
int main() {
/* exec sql connect to :conninfo */
EXEC SQL CONNECT TO :conninfo;
if (sqlca.sqlcode < 0) {
printf("Connect failed\n");
exit(1);
}
printf("Enter name: ");
scanf("%s", name);
printf("Enter age: ");
scanf("%d", &age);
/* exec sql insert into test(name, age) values(:name, :age) */
EXEC SQL INSERT INTO test(name, age) VALUES(:name, :age);
if (sqlca.sqlcode < 0) {
printf("Insert failed\n");
exit(1);
}
/* exec sql commit */
EXEC SQL COMMIT;
if (sqlca.sqlcode < 0) {
printf("Commit failed\n");
exit(1);
}
/* exec sql disconnect all */
EXEC SQL DISCONNECT ALL;
return 0;
}
```
这个demo连接到了PostgreSQL数据库,从用户输入中获取名字和年龄,将其插入到test表中。需要注意的是,ECPG中的SQL语句需要放在`exec sql begin declare section` 和 `exec sql end declare section`之间,在C程序中使用时需要使用`EXEC SQL`语法执行。在pgc格式的文件中,可以使用`EXEC SQL BEGIN DECLARE SECTION`和`EXEC SQL END DECLARE SECTION`将变量声明放在中间,这样可以使代码更加清晰易读。
阅读全文