SYNOPSIS

ecpg [ option...] file...

DESCRIPTION 描述

ecpg 是一个嵌入的用于C 语言的 SQL 预编译器。 它把嵌有 SQL 语句的 C 程序通过将 SQL 调用替换成特殊的函数调用的方法转换成普通的 C 代码。 然后输出的文件就可以用任何 C 编译工具进行处理。

clusterdb 将把命令行上给出的每个输入文件转换成对应的 C 输出文件。 输入文件最好有 .pgc 的扩展名, 这样,这个扩展将被替换成 .c 来决定输出文件名。 如果输入文件的扩展不是 .pgc,那么输出文件名将通过在全文件名后面附加 .c 来生成。 输出文件名也可以用 -o 选项覆盖。

本手册页并不描述嵌入的 SQL 语句,参阅 Chapter 29 获更多信息。

OPTIONS 选项

clusterdb 接受下列命令行参数:

-c
 为 SQL 代码自动生成某种 C 代码。目前,这个选项可以用于 EXEC SQL TYPE。
-C mode
 设置一个兼容模式。mode 可以是 INFORMIX 或者 INFORMIX_SE。
-D symbol
 定义一个 C 预编译器符号。
-i
 同时也分析系统包含文件。
-I include-path
 声明一个附加的包含路径。用于寻找通过 EXEC SQL INCLUDE 包含的文件。缺省是 .(当前目录), /usr/local/include, 在编译时定义的PostgreSQL 包含路径(缺省: /usr/local/pgsql/include)和 /usr/include。顺序如上。

-o filename
 声明ecpg应该把它的所有输出写到给出的 filename里。
-t
 打开自动提交模式。在这种模式象,每个查询都自动提交, 除非它是包围在一个明确的事务块中。在缺省模式下, 命令只是在发出 EXEC SQL COMMIT 的时候提交。

-v
 打印额外的信息,包括版本和包含路径。
--help
 显示一个命令用法的简单摘要,然后退出。
--version
 显示版本信息,然后退出。

NOTES
注意

在编译预处理的 C 代码文件的时候,编译器需要能够找到 PostgreSQL 包含目录里面的 ECPG 头文件。因此,我们在调用编译器的时候可能需要使用 -I  (比如,-I/usr/local/pgsql/include)。

 使用了嵌入 SQL 的 C 代码必须和 libecpg 库链接,比如,使用这样的链接选项: -L/usr/local/pgsql/lib -lecpg

 这些目录的实际值可以通过 pg_config(1) 找到。

EXAMPLES 例子

如果你有一个叫 prog1.pgc 的嵌入 SQL 的 C 源代码,你可以用下面的命令序列创建一个可执行程序:

ecpg prog1.pgc
cc -I/usr/local/pgsql/include -c prog1.c
cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg

ecpg - 嵌入的 SQL C 预处理器的更多相关文章

  1. C#预处理器指令 ,你造吗??? (●'◡'●)

    什么是c#预处理指令?? 用于在 C# 源代码中嵌入的编译器命令. C#预处理器指令有哪些?? ↓↓↓这些就是预处理器指令啦 下面我们一一道来(●'◡'●) 1.#if ,#elif,#else,en ...

  2. PHP (超文本预处理器)

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:"超为本预处理器")是一种通用开源脚本语言.语法吸收了C语言.java和Rerl的特点,利于学习,使 ...

  3. Microsoft Visual C++ 6.0预处理器参考手册

    返回总目录 Microsoft Visual C++ 6.0 预处理器参考手册 目录引言........................................................ ...

  4. css预处理器sass学习

    SASS 叫做css预处理器,他的基本思想是用一门专门的编程语言来进行页面样式的设计,然后在编译成正常的css文件. Sass的用法 安装 sass是用ruby语言写的,所以我们在安装sass之前要先 ...

  5. 2016/3/10 PHP (超文本预处理器) 是什么?

    PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言.语法吸收了C语言.Java和Perl的特点,利于学习,使用广泛,主要适用于W ...

  6. 前端CSS预处理器Sass

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

  7. css预处理器sass使用教程(多图预警)

    css预处理器赋予了css动态语言的特性,如变量.函数.运算.继承.嵌套等,有助于更好地组织管理样式文件,以及更高效地开发项目.css预处理器可以更方便的维护和管理css代码,让整个网页变得更加灵活可 ...

  8. C和指针 第十四章 预处理器 头文件

    编写一个C程序,第一个步骤称为预处理,预处理在代码编译之前,进行一些文本性质的操作,删除注释.插入被include的文件.定义替换由#define定义的符号,以及确定代码的部分内容是否应该按照条件编译 ...

  9. 关于前端CSS预处理器Sass的小知识!

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

随机推荐

  1. HTML 新属性

    accesskey 属性 -- 代表链接的快捷键访问方式 定义了accesskey的链接可以使用快捷键(ALT+字母)访问. 主菜单与导航菜单使用accesskey,通常是不错的选择. 取值: 字母 ...

  2. 《Eye In-Painting with Exemplar Generative Adversarial Networks》论文阅读笔记

    Abstract 基于conditional GAN使用隐藏在reference image中的exemplar information生成high-quality,personalized in-p ...

  3. iOS多线程GCD的简单使用

    在iOS开发中,苹果提供了三种多线程技术,分别是: (1)NSThread (2)NSOperation (3)GCD 简单介绍一下GCD的使用. GCD全称 Grand Central Dispat ...

  4. gdb调试带参数的程序 (转载)

    转自:http://www.cnblogs.com/rosesmall/archive/2012/04/10/2440514.html 一般来说GDB主要调试的是C/C++的程序.要调试C/C++的程 ...

  5. vector中插入pair

    我们知道map和multimap的作用,这两种数据类型在存储数据时,会根据pair<>的first成员进行排序,不同的时前者将不会插入对first成员重复的结构,后者可以.那如果我们只想存 ...

  6. 百度之星资格赛 1004 度度熊的午饭时光(01背包+最小序号和+字典序+有bug)

    分析 首先声明一下,我的代码有漏洞的,求大神给个正确代码 思路如下: 首先做一遍01背包记录路径并求出最大总分,令path[i][j]表示第i个物品包含在dp[j]的求值过程中.再逆序枚举money, ...

  7. poj1564

    dfs判重 #include<stdio.h> #include<iostream> #include<cstdio> #include<queue> ...

  8. go语言 rsa加密

    // rsa.go package main import ( "crypto/rand" "crypto/rsa" "crypto/x509&quo ...

  9. unity ShaderLab 编辑器——sublime text 2

    sublime text 2,支持unity shader关键字高亮显示,智能提示功能.这个脚本编辑器的售价是70美元,不过作者很厚道地给了我们永久的免费试用期. 1)下载sublime text 2 ...

  10. Centos 内存释放

    原因:最近发现服务器老师提示内存不足的警报,很多时候内存都占用百分之80以上,查看运行的服务似乎并没有占用很大的内存,top查看运行的服务,然后按shift+m排名第一的才百分之1.x,看了别人的博客 ...