PostgreSQL 支持在 C 语言程序中嵌入 SQL 命令,使得程序能够直接与数据库进行交互。这通常涉及使用 ECPG(Embedded SQL in C)工具。以下是一个简单的嵌入式 SQL 示例,演示如何在 C 语言程序中嵌入 SQL 命令:

1. 准备工作: 确保已经安装了 PostgreSQL 数据库和 ECPG。

2. 创建数据库表: 在 PostgreSQL 数据库中创建一个简单的表,用于存储数据。
    CREATE TABLE employee (
        id SERIAL PRIMARY KEY,
        name VARCHAR(100),
        salary DECIMAL(10, 2)
    );

3. 编写嵌入式 SQL 程序: 创建一个 C 语言程序,使用 ECPG 嵌入 SQL 命令。
    #include <stdio.h>
    #include <stdlib.h>
    #include <ecpglib.h>

    EXEC SQL BEGIN DECLARE SECTION;
    // 定义嵌入式 SQL 变量
    int employee_id;
    char employee_name[100];
    double employee_salary;
    EXEC SQL END DECLARE SECTION;

    int main() {
        // 连接到 PostgreSQL 数据库
        EXEC SQL CONNECT TO your_database_name USER your_username USING your_password;

        // 插入数据
        EXEC SQL INSERT INTO employee (name, salary) VALUES ('John Doe', 50000.00);

        // 查询数据
        EXEC SQL DECLARE emp_cursor CURSOR FOR SELECT id, name, salary FROM employee;
        EXEC SQL OPEN emp_cursor;

        // 检索和打印结果
        while (1) {
            EXEC SQL FETCH emp_cursor INTO :employee_id, :employee_name, :employee_salary;
            if (SQLCODE == 100) break; // No more rows

            // 处理结果
            printf("Employee ID: %d, Name: %s, Salary: %.2f\n", employee_id, employee_name, employee_salary);
        }

        // 关闭连接
        EXEC SQL CLOSE emp_cursor;
        EXEC SQL COMMIT WORK RELEASE;

        return 0;
    }

4. 预处理和编译: 使用 ECPG 工具对 C 代码进行预处理,生成标准的 C 代码。
    ecpg your_program.ec

5. 编译和链接: 使用编译器(例如 gcc)将预处理后的 C 代码编译成可执行程序,并链接到 ECPG 库。
    gcc -o your_program your_program.c -lecpg

6. 运行程序: 运行生成的可执行程序。
    ./your_program

请注意,上述示例中的一些参数(如数据库名称、用户名、密码)需要根据你的实际设置进行替换。嵌入式 SQL 可以在 C 代码中直接嵌入 SQL 命令,使得数据库交互更加方便。


转载请注明出处:http://www.zyzy.cn/article/detail/8403/PostgreSQL