使用INFORMIX-ESQL/C预编译器编译程序指南

需积分: 5 0 下载量 168 浏览量 更新于2024-06-15 收藏 145KB DOC 举报
"5.编译INFORMIX-ESQL/C程序" 在开发使用INFORMIX数据库系统的应用程序时,INFORMIX-ESQL/C是一个至关重要的工具。它是一种预编译器,专门设计用来处理嵌入在C语言源代码中的SQL语句。本章将深入讲解如何有效地使用INFORMIX-ESQL/C来构建和编译C程序。 INFORMIX-ESQL/C的核心功能是将源代码中用$符号前缀或者EXEC SQL关键字标记的SQL语句转化为C语言可执行的代码。为了指示预编译器处理SQL语句,源文件的扩展名需为“.ec”。例如,一个名为"myfile.ec"的源文件会被预编译成一个名为"myfile.c"的C源文件,其中包含了转换后的C代码。原".ec"文件在预编译后保持不变,以备后续参考。 预编译器在处理源文件时,会忽略所有标准C注释"/* ... */"以及在SQL语句行内的ANSI SQL注释"--"。然而,需要注意的是,如果SQL语句本身被注释掉,比如"DELETE--hasnoorders from customer;",FROM子句会被视为注释部分,导致编译错误。因此,确保SQL语句和注释的正确分隔至关重要,如"$delete from customer--hasnoorders",这样就不会引发问题。 在编写程序时,可能会需要将不同功能的源代码分离到不同的文件中。如果某个包含SQL语句的文件需要被引入到主程序中,INFORMIX-ESQL/C提供了两种预编译指令。对于不含SQL语句的文件,可以使用标准C的#include语句。然而,如果包含文件中含有SQL语句,必须使用INFORMIX-ESQL/C特定的预编译指令: 1. `$include filename;` 2. `execsql include filename;` 这两个指令都会让预编译器查找并读取指定的文件,但后者更倾向于在SQL上下文中使用。 在上文提到的示例中,预编译器会查找并读取名为"pgm_glo"的文件。这允许开发者将全局变量、函数声明等共同代码段组织到单独的文件中,然后在多个程序之间共享,提高了代码的复用性和可维护性。 掌握INFORMIX-ESQL/C的使用对于编写与INFORMIX数据库交互的C程序至关重要。通过预编译器,可以方便地集成SQL语句,管理代码结构,以及利用预编译指令进行文件包含,从而实现高效且可靠的编程实践。了解这些基本知识后,开发者就能够更自如地构建复杂的应用程序,充分利用INFORMIX数据库的强大功能。