概念

你在你的 C 程序里面用一些特殊的 SQL 东西来编写程序.对于定义可以在 SQL 语句里面使用的变量,你需要把它们放到一个特殊的定义段里面.你用一些特殊的语法来表达 SQL 查询.

在编译之前,你用嵌入的 SQLC 预编译器对你的文件进行预处理,由这个预编译器把你使用的 SQL 语句转换成把变量作为参数的函数调用.不管是作为输入到 SQL 语句里面的变量还是将包含返回结果的变量都被传到函数调用里.

然后你编译你的程序,在链接时,你的程序会与一个包含所用函数的特殊的库链接.这些函数(实际上大多是一个单一的函数)从参数里取得信息,用通常的方法(libpq)执行 SQL 查询并且把结果放回到声明为输出的参数里.

这样你运行你的程序时当控制到达 SQL 语句时,SQL 语句对数据库进行操作因而你可以对结果进行继续处理.