在编译之前,你用嵌入的 SQLC 预编译器对你的文件进行预处理,由这个预编译器把你使用的 SQL 语句转换成把变量作为参数的函数调用.不管是作为输入到 SQL 语句里面的变量还是将包含返回结果的变量都被传到函数调用里.
然后你编译你的程序,在链接时,你的程序会与一个包含所用函数的特殊的库链接.这些函数(实际上大多是一个单一的函数)从参数里取得信息,用通常的方法(libpq)执行 SQL 查询并且把结果放回到声明为输出的参数里.
这样你运行你的程序时当控制到达 SQL 语句时,SQL 语句对数据库进行操作因而你可以对结果进行继续处理.