[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: ecpg-concept.html
File is not writable. Editing disabled.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >The Concept</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="ECPG - Embedded SQL in C" HREF="ecpg.html"><LINK REL="PREVIOUS" TITLE="ECPG - Embedded SQL in C" HREF="ecpg.html"><LINK REL="NEXT" TITLE="Managing Database Connections" HREF="ecpg-connect.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="ECPG - Embedded SQL in C" HREF="ecpg.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="ecpg.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 33. <SPAN CLASS="APPLICATION" >ECPG</SPAN > - Embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > in C</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Managing Database Connections" HREF="ecpg-connect.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="ECPG-CONCEPT" >33.1. The Concept</A ></H1 ><P > An embedded SQL program consists of code written in an ordinary programming language, in this case C, mixed with SQL commands in specially marked sections. To build the program, the source code (<TT CLASS="FILENAME" >*.pgc</TT >) is first passed through the embedded SQL preprocessor, which converts it to an ordinary C program (<TT CLASS="FILENAME" >*.c</TT >), and afterwards it can be processed by a C compiler. (For details about the compiling and linking see <A HREF="ecpg-process.html" >Section 33.10</A >). Converted ECPG applications call functions in the libpq library through the embedded SQL library (ecpglib), and communicate with the PostgreSQL server using the normal frontend-backend protocol. </P ><P > Embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > has advantages over other methods for handling <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > commands from C code. First, it takes care of the tedious passing of information to and from variables in your <ACRONYM CLASS="ACRONYM" >C</ACRONYM > program. Second, the SQL code in the program is checked at build time for syntactical correctness. Third, embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > in C is specified in the <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > standard and supported by many other <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > database systems. The <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > implementation is designed to match this standard as much as possible, and it is usually possible to port embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > programs written for other SQL databases to <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > with relative ease. </P ><P > As already stated, programs written for the embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > interface are normal C programs with special code inserted to perform database-related actions. This special code always has the form: </P><PRE CLASS="PROGRAMLISTING" >EXEC SQL ...;</PRE ><P> These statements syntactically take the place of a C statement. Depending on the particular statement, they can appear at the global level or within a function. Embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > statements follow the case-sensitivity rules of normal <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > code, and not those of C. </P ><P > The following sections explain all the embedded SQL statements. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="ecpg.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="ecpg-connect.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><SPAN CLASS="APPLICATION" >ECPG</SPAN > - Embedded <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > in C</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ecpg.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Managing Database Connections</TD ></TR ></TABLE ></DIV ></BODY ></HTML >
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server05.hostinghome.co.in
Server IP: 192.168.74.40
PHP Version: 7.4.33
Server Software: Apache
System: Linux server05.hostinghome.co.in 3.10.0-962.3.2.lve1.5.81.el7.x86_64 #1 SMP Wed May 31 10:36:47 UTC 2023 x86_64
HDD Total: 1.95 TB
HDD Free: 727.68 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Disabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: itsweb
User ID (UID): 1619
Group ID (GID): 1621
Script Owner UID: 1619
Current Dir Owner: N/A