pdf viewer in asp net c# : Adding a jpeg to a pdf control application platform web page azure windows web browser postgresql-9.4-A478-part3003

Chapter 31. libpq - C Library
31.14. Environment Variables
The followingenvironmentvariables can beusedtoselectdefaultconnectionparameter values, which
will be used by
PQconnectdb
,
PQsetdbLogin
and
PQsetdb
if no value is directly specified by the
callingcode. These are useful to avoidhard-codingdatabase connection informationintosimple client
applications, for example.
PGHOST
behaves the same as the host connection parameter.
PGHOSTADDR
behaves the sameas the hostaddr connection parameter. This can be setinstead of or
in addition to
PGHOST
to avoid DNS lookup overhead.
PGPORT
behaves the same as the port connection parameter.
PGDATABASE
behaves the same as the dbname connection parameter.
PGUSER
behaves the same as the user connection parameter.
PGPASSWORD
behaves the same as the password connection parameter. Use of this environment
variable is not recommended for security reasons, as some operating systems allow non-root users
to see process environment variables via ps;instead consider usingthe
~/.pgpass
file (seeSection
31.15).
PGPASSFILE
specifies the name of the password file to use for lookups. If not set, it defaults to
~/.pgpass
(see Section 31.15).
PGSERVICE
behaves the same as the service connection parameter.
PGSERVICEFILE
specifies the name of the per-user connection service file. If not set, it defaults
to
~/.pg_service.conf
(see Section 31.16).
PGREALM
sets the Kerberos realm to use with PostgreSQL, if itis different from the localrealm. If
PGREALM
is set, libpq applications will attempt authentication with servers for this realm and use
separate ticket files to avoidconflicts with local ticket files. This environment variable is only used
if GSSAPI authentication is selected by the server.
PGOPTIONS
behaves the same as the options connection parameter.
PGAPPNAME
behaves the same as the application_name connection parameter.
PGSSLMODE
behaves the same as the sslmode connection parameter.
PGREQUIRESSL
behaves the same as the requiressl connection parameter.
PGSSLCOMPRESSION
behaves the same as the sslcompression connection parameter.
PGSSLCERT
behaves the same as the sslcert connection parameter.
PGSSLKEY
behaves the same as the sslkey connection parameter.
PGSSLROOTCERT
behaves the same as the sslrootcert connection parameter.
PGSSLCRL
behaves the same as the sslcrl connection parameter.
PGREQUIREPEER
behaves the same as the requirepeer connection parameter.
PGKRBSRVNAME
behaves the same as the krbsrvname connection parameter.
PGGSSLIB
behaves the same as the gsslib connection parameter.
PGCONNECT_TIMEOUT
behaves the same as the connect_timeout connection parameter.
PGCLIENTENCODING
behaves the same as the client_encoding connection parameter.
708
Adding a jpeg to a pdf - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
how to add an image to a pdf file in acrobat; add picture pdf
Adding a jpeg to a pdf - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
add png to pdf acrobat; add image to pdf in preview
Chapter 31. libpq - C Library
The following environment variables can be used to specify default behavior for each PostgreSQL
session. (See also the ALTER ROLE and ALTER DATABASE commands for ways to set default
behavior on a per-user or per-database basis.)
PGDATESTYLE
sets the default style of date/time representation. (Equivalent to
SET datestyle
TO ...
.)
PGTZ
sets the default time zone. (Equivalent to
SET timezone TO ...
.)
PGGEQO
sets the default mode for the geneticqueryoptimizer. (Equivalent to
SET geqo TO ...
.)
Refer to the SQL command SET for information on correct values for these environment variables.
The following environment variables determine internal behavior of libpq; they override compiled-in
defaults.
PGSYSCONFDIR
sets the directory containing the
pg_service.conf
file and in a future version
possibly other system-wide configuration files.
PGLOCALEDIR
sets the directory containing the
locale
files for message internationalization.
31.15. The Password File
The file
.pgpass
in a user’s home directory or the file referenced by
PGPASSFILE
can contain pass-
words to be used if the connection requires a password (and no password has been specified other-
wise). On Microsoft Windows the file is named
%APPDATA%\postgresql\pgpass.conf
(where
%APPDATA%
refers tothe Application Data subdirectory in the user’s profile).
This file should contain lines of the following format:
hostname
:
port
:
database
:
username
:
password
(Youcan add a reminder commentto the file bycopyingtheline above and precedingit with
#
.) Each
of thefirst four fields can be a literal value, or
*
,which matches anything. The password fieldfrom the
first line that matches the current connection parameters will be used. (Therefore, put more-specific
entries first when you are using wildcards.) If an entry needs to contain
:
or
\
,escape this character
with
\
.A host name of
localhost
matches both TCP (host name
localhost
)and Unix domain
socket (
pghost
empty or the default socket directory) connections coming from the local machine.
In a standby server, a database name of
replication
matches streaming replication connections
made to the master server. The
database
field is of limited usefulness because users have the same
password for all databases in the same cluster.
On Unix systems, the permissions on
.pgpass
must disallow any access to world or group; achieve
this by the command
chmod 0600 ~/.pgpass
.If the permissions are less strict than this, the file
will be ignored. On Microsoft Windows, it is assumed that the file is stored in a directory that is
secure, so no special permissions check is made.
31.16. The Connection Service File
The connection service file allows libpq connection parameters to be associated with a single service
name. That service name can then be specified by a libpq connection, and the associated settings will
709
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Capable of adding PDF file navigation features to your VB.NET program. Capable of adding PDF file navigation features to your VB.NET program. How To Tutorials.
how to add image to pdf acrobat; add photo to pdf preview
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Support adding PDF page number. Offer PDF page break inserting function. DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references:
adding a jpg to a pdf; attach image to pdf form
Chapter 31. libpq - C Library
be used. This allows connection parameters to be modified without requiring a recompile of the libpq
application. The service name can also be specified using the
PGSERVICE
environment variable.
The connection service file can be a per-user service file at
~/.pg_service.conf
or the
location specified by the environment variable
PGSERVICEFILE
, or it can be a system-wide file
at
‘pg_config --sysconfdir‘/pg_service.conf
or in the directory specified by the
environment variable
PGSYSCONFDIR
.If service definitions with the same name exist in the user and
the system file, the user file takes precedence.
The file uses an “INI file” format where the section name is the service name and the parameters are
connection parameters; see Section 31.1.2 for a list. For example:
# comment
[mydb]
host=somehost
port=5433
user=admin
An example file is provided at
share/pg_service.conf.sample
.
31.17. LDAP Lookup of Connection Parameters
If libpq has been compiled with LDAP support (option
--with-ldap
for
configure
)it is possible
to retrieve connection options like
host
or
dbname
via LDAP from a central server. The advantage
is thatif the connectionparameters for a database change, the connection information doesn’t have to
be updated on all client machines.
LDAP connection parameter lookup uses the connection servicefile
pg_service.conf
(see Section
31.16). A line in a
pg_service.conf
stanza that starts with
ldap://
will be recognized as an
LDAP URL and an LDAP query will be performed. The result must be a list of
keyword = value
pairs which will be used to set connection options. The URL must conform to RFC 1959 and be of
the form
ldap://[
hostname
[:
port
]]/
search_base
?
attribute
?
search_scope
?
filter
where
hostname
defaults to
localhost
and
port
defaults to 389.
Processing of
pg_service.conf
is terminated after a successful LDAP lookup, but is continued if
the LDAP server cannot be contacted. This is toprovide a fallback with further LDAP URL lines that
point todifferent LDAP servers, classical
keyword = value
pairs, or default connection options. If
you would rather get an error message in this case, add a syntactically incorrect line after the LDAP
URL.
Asample LDAP entry that has been created with the LDIF file
version:1
dn:cn=mydatabase,dc=mycompany,dc=com
changetype:add
objectclass:top
objectclass:device
cn:mydatabase
description:host=dbserver.mycompany.com
description:port=5439
description:dbname=mydb
description:user=mydb_user
description:sslmode=require
710
C# PDF Page Insert Library: insert pages into PDF file in C#.net
are capable of adding and inserting (empty) PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel, PowerPoint, Bmp, Jpeg, Png, Gif, and
adding images to a pdf document; add jpeg signature to pdf
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
how to add image to pdf form; how to add a picture to a pdf file
Chapter 31. libpq - C Library
might be queried with the following LDAP URL:
ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
You can alsomix regular service file entries with LDAP lookups. Acomplete example for a stanza in
pg_service.conf
would be:
# only host and port are stored in LDAP, specify dbname and user explicitly
[customerdb]
dbname=customer
user=appuser
ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=
*
)
31.18. SSL Support
PostgreSQL has native support for using SSL connections to encrypt client/server communications
for increased security. See Section 17.9 for details about the server-side SSL functionality.
libpq reads the system-wide OpenSSL configuration file. By default, this file is named
openssl.cnf
and is located inthe directory reported by
openssl version -d
.This defaultcan be overridden by
setting environment variable
OPENSSL_CONF
to the name of the desired configuration file.
31.18.1. Client Verification of Server Certificates
By default, PostgreSQL will not perform any verification of the server certificate. This means that it
is possible to spoof the server identity (for example by modifying a DNS record or by takingover the
server IP address) withouttheclientknowing. Inorder topreventspoofing, SSL certificate verification
must be used.
If the parameter
sslmode
is set to
verify-ca
, libpq will verify that the server is trustworthy
by checking the certificate chain up to a trusted certificate authority (CA). If
sslmode
is set to
verify-full
, libpq will also verify that the server host name matches its certificate. The SSL
connection will fail if the server certificate cannot be verified.
verify-full
is recommended in
most security-sensitive environments.
In
verify-full
mode, the
cn
(CommonName) attribute of the certificate ismatchedagainstthe host
name. If the
cn
attribute starts with an asterisk (
*
), it will be treated as a wildcard, and will match all
characters except a dot (
.
). This means the certificate will not matchsubdomains. If the connection is
made using an IP address instead of a host name, the IP address will be matched (without doing any
DNS lookups).
To allow server certificate verification, the certificate(s) of one or more trusted CAs must be placed
in the file
~/.postgresql/root.crt
in the user’s home directory. If intermediate CAs appear in
root.crt
,the file must also containcertificate chains totheir rootCAs. (On Microsoft Windows the
file is named
%APPDATA%\postgresql\root.crt
.)
Certificate Revocation List (CRL) entries are also checked if the file
~/.postgresql/root.crl
exists (
%APPDATA%\postgresql\root.crl
on Microsoft Windows).
The location of the root certificate file and the CRL can be changed bysetting the connection param-
eters
sslrootcert
and
sslcrl
or the environment variables
PGSSLROOTCERT
and
PGSSLCRL
.
711
C# PDF Digital Signature Library: add, remove, update PDF digital
PDF to Word, VB.NET extract text from PDF, VB.NET convert PDF to Jpeg, VB.NET Help to Improve the Security of Your PDF File by Adding Digital Signatures.
adding an image to a pdf in acrobat; add jpg to pdf form
VB.NET PDF insert text library: insert text into PDF content in vb
VB.NET PDF - Insert Text to PDF Document in VB.NET. Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program.
add photo to pdf; how to add an image to a pdf in reader
Chapter 31. libpq - C Library
Note: For backwards compatibility with earlier versions of PostgreSQL, if a root CA file exists,
the behavior of
sslmode
=
require
will be the same as that of
verify-ca
,meaning the server
certificate is validated against the CA. Relying on this behavior is discouraged, and applications
that need certificate validation should always use
verify-ca
or
verify-full
.
31.18.2. Client Certificates
If the server requests a trusted client certificate, libpq will send the certificate stored in
file
~/.postgresql/postgresql.crt
in the user’s home directory. The certificate must
be signed by one of the certificate authorities (CA) trusted by the server. A matching
private key file
~/.postgresql/postgresql.key
must also be present. The private
key file must not allow any access to world or group; achieve this by the command
chmod
0600 ~/.postgresql/postgresql.key
. On Microsoft Windows these files are named
%APPDATA%\postgresql\postgresql.crt
and
%APPDATA%\postgresql\postgresql.key
,
and there is no special permissions check since the directory is presumed secure. The location of the
certificate and key files can be overridden by the connection parameters
sslcert
and
sslkey
or the
environment variables
PGSSLCERT
and
PGSSLKEY
.
In some cases, the client certificate might be signed by an “intermediate” certificate authority, rather
than one that is directly trusted by the server. To use such a certificate, append the certificate of the
signing authority to the
postgresql.crt
file, then its parent authority’s certificate, and so on up to
acertificate authority, “root” or “intermediate”, thatis trusted by the server, i.e. signedby a certificate
in the server’s
root.crt
file.
Note that the client’s
~/.postgresql/root.crt
lists the top-level CAs that are considered trusted
for signing server certificates. In principle it need not list the CA that signed the client’s certificate,
though in most cases that CA would also be trusted for server certificates.
31.18.3. Protection Provided in Different Modes
The different values for the
sslmode
parameter provide different levels of protection. SSL can pro-
vide protection against three types of attacks:
Eavesdropping
If a third partycan examine the networktraffic between the client andthe server, it can readboth
connectioninformation(including the user name and password) and the data that is passed. SSL
uses encryption to prevent this.
Man in the middle (MITM)
If a third party can modify the data while passing between the client and server, it can pretend
to be the server and therefore see and modify data even if it is encrypted. The third party can
then forward the connection information and data to the original server, making it impossible
to detect this attack. Common vectors to do this include DNS poisoning and address hijacking,
whereby the client is directed to a different server than intended. There are also several other
attack methods that can accomplish this. SSL uses certificate verification to prevent this, by
authenticating the server to the client.
712
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
text from PDF, VB.NET convert PDF to Jpeg, VB.NET splitting a PDF to two and four new PDF files are Provides you with examples for adding an (empty) page to a
add image to pdf file acrobat; how to add picture to pdf
C# Create PDF Library SDK to convert PDF from other file formats
What's more, you can also protect created PDF file by adding digital signature (watermark) on PDF using C# code. Create PDF from Jpeg, png, images.
acrobat insert image in pdf; how to add a photo to a pdf document
Chapter 31. libpq - C Library
Impersonation
If a third party can pretendto be an authorized client, it cansimply access data it should nothave
access to. Typically this can happen through insecure password management. SSL uses client
certificates to prevent this, by making sure that only holders of valid certificates can access the
server.
For a connection to be known secure, SSL usage must be configured on both the client and the
server before the connection is made. If it is only configured on the server, the client may end up
sending sensitive information (e.g. passwords) before it knows that the server requires high security.
In libpq, secure connections can be ensured by setting the
sslmode
parameter to
verify-full
or
verify-ca
,and providing the system with a root certificate to verify against. This is analogous to
using an
https
URL for encrypted web browsing.
Oncetheserver has beenauthenticated, theclient canpass sensitive data. This means thatup until this
point, the client does not need to know if certificates will be used for authentication, making it safe to
specify that only in the server configuration.
All SSL options carry overhead in the form of encryption and key-exchange, so there is a tradeoff
that has to be made between performance and security. Table 31-1 illustrates the risks the different
sslmode
values protect against, and what statement they make about security and overhead.
Table 31-1. SSL Mode Descriptions
sslmode
Eavesdropping
protection
MITM protection
Statement
disable
No
No
Idon’t care about
security, and I don’t
want to pay the
overhead of encryption.
allow
Maybe
No
Idon’t care about
security, but I will pay
the overhead of
encryption if the server
insists on it.
prefer
Maybe
No
Idon’t care about
encryption, but I wish
to pay the overhead of
encryption if the server
supports it.
require
Yes
No
Iwant my data to be
encrypted, and I accept
the overhead. I trust
that the network will
make sure I always
connect to the server I
want.
713
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Capable of adding PDF file navigation features to your C# program. Perform annotation capabilities to mark, draw, and visualize objects on PDF document page.
how to add image to pdf reader; adding a png to a pdf
Chapter 31. libpq - C Library
sslmode
Eavesdropping
protection
MITM protection
Statement
verify-ca
Yes
Depends on
CA
-policy
Iwant my data
encrypted, and I accept
the overhead. I want to
be sure that I connect
to a server that I trust.
verify-full
Yes
Yes
Iwant my data
encrypted, and I accept
the overhead. I want to
be sure that I connect to
aserver I trust, and that
it’s the one I specify.
The difference between
verify-ca
and
verify-full
depends on the policy of the root CA. If a
publicCA is used,
verify-ca
allows connections toa server thatsomebody else mayhave registered
with the CA. In this case,
verify-full
should always be used. If a local CA is used, or even a self-
signed certificate, using
verify-ca
often provides enough protection.
The default value for
sslmode
is
prefer
. As is shown in the table, this makes no sense from a
security point of view, and it only promises performance overhead if possible. It is only provided as
the default for backward compatibility, and is not recommended in secure deployments.
31.18.4. SSL Client File Usage
Table 31-2 summarizes the files that are relevant to the SSL setup on the client.
Table 31-2. Libpq/Client SSL File Usage
File
Contents
Effect
~/.postgresql/postgresql.crt
client certificate
requested by server
~/.postgresql/postgresql.key
client private key
proves client certificate sent by
owner; does not indicate
certificate owner is trustworthy
~/.postgresql/root.crt
trustedcertificate authorities
checks that server certificate is
signed by a trusted certificate
authority
~/.postgresql/root.crl
certificates revoked by
certificate authorities
server certificate must not be on
this list
31.18.5. SSL Library Initialization
If your application initializes
libssl
and/or
libcrypto
libraries and libpq is built with SSL sup-
port, you should call
PQinitOpenSSL
to tell libpq that the
libssl
and/or
libcrypto
libraries
have been initialized by your application, so that libpq will not also initialize those libraries. See
http://h71000.www7.hp.com/doc/83final/ba554_90007/ch04.html for details on the SSL API.
714
Chapter 31. libpq - C Library
PQinitOpenSSL
Allows applications to select which security libraries to initialize.
void PQinitOpenSSL(int do_ssl, int do_crypto);
When
do_ssl
is non-zero, libpq will initialize the OpenSSL library before first opening a
database connection. When
do_crypto
is non-zero, the
libcrypto
library will be initialized.
By default (if
PQinitOpenSSL
is not called), both libraries are initialized. When SSL support
is not compiled in, this function is present but does nothing.
If your application uses and initializes either OpenSSL or its underlying
libcrypto
library,
you must call this function with zeroes for the appropriate parameter(s) before first opening a
databaseconnection.Alsobesurethat youhavedone thatinitializationbeforeopeningadatabase
connection.
PQinitSSL
Allows applications to select which security libraries to initialize.
void PQinitSSL(int do_ssl);
This function is equivalent to
PQinitOpenSSL(do_ssl, do_ssl)
.It is sufficient for applica-
tions that initialize both or neither of OpenSSL and
libcrypto
.
PQinitSSL
has been present since PostgreSQL 8.0, while
PQinitOpenSSL
was added in Post-
greSQL 8.4, so
PQinitSSL
might be preferable for applications that need to work with older
versions of libpq.
31.19. Behavior in Threaded Programs
libpq is reentrant and thread-safe by default. You might need to use special compiler command-
line options when you compile your application code. Refer to your system’s documentation for
information about how to build thread-enabled applications, or look in
src/Makefile.global
for
PTHREAD_CFLAGS
and
PTHREAD_LIBS
.This functionallows the querying of libpq’s thread-safe sta-
tus:
PQisthreadsafe
Returns the thread safety status of the libpq library.
int PQisthreadsafe();
Returns 1 if the libpq is thread-safe and 0 if it is not.
One thread restriction is that no two threads attempt to manipulate the same
PGconn
object at the
same time. In particular, you cannot issue concurrent commands from different threads through the
same connection object. (If you need to run concurrent commands, use multiple connections.)
PGresult
objects are normally read-only after creation, and so can be passedaround freely between
threads. However, if you use any of the
PGresult
-modifyingfunctions described in Section 31.11 or
Section 31.13, it’s up to you to avoid concurrent operations on the same
PGresult
,too.
The deprecated functions
PQrequestCancel
and
PQoidStatus
are not thread-safe and should not
be used in multithread programs.
PQrequestCancel
can be replaced by
PQcancel
.
PQoidStatus
can be replaced by
PQoidValue
.
715
Chapter 31. libpq - C Library
If you are using Kerberos inside your application (in addition to inside libpq), you will need to
do locking around Kerberos calls because Kerberos functions are not thread-safe. See function
PQregisterThreadLock
in the libpq source code for a way to do cooperative locking between
libpq and your application.
If you experience problems with threaded applications, run the program in
src/tools/thread
to
see if your platform has thread-unsafe functions. This program is run by
configure
,but for binary
distributions your library might not match the library used to build the binaries.
31.20. Building libpq Programs
To build (i.e., compile and link) a program using libpq you need to do all of the followingthings:
Include the
libpq-fe.h
header file:
#include <libpq-fe.h>
If you failed to do that then youwill normally get error messages from your compiler similar to:
foo.c: In function ‘main’:
foo.c:34: ‘PGconn’ undeclared (first use in this function)
foo.c:35: ‘PGresult’ undeclared (first use in this function)
foo.c:54: ‘CONNECTION_BAD’ undeclared (first use in this function)
foo.c:68: ‘PGRES_COMMAND_OK’ undeclared (first use in this function)
foo.c:95: ‘PGRES_TUPLES_OK’ undeclared (first use in this function)
Pointyour compiler tothedirectory where the PostgreSQLheader files were installed, by supplying
the
-I
directory
option to your compiler. (In some cases the compiler will look into the directory
in question by default, soyou canomitthis option.) For instance, your compile command line could
look like:
cc -c -I/usr/local/pgsql/include testprog.c
If you are using makefiles then add the option to the
CPPFLAGS
variable:
CPPFLAGS += -I/usr/local/pgsql/include
If there is any chance that your program might be compiled by other users then you should not
hardcode the directory location like that. Instead, you can run the utility
pg_config
to find out
where the header files are on the local system:
$
pg_config --includedir
/usr/local/include
If you have
pkg-config
installed, you can run instead:
$
pkg-config --cflags libpq
-I/usr/local/include
Note that this will already include the
-I
in front of the path.
Failure to specify the correct option to the compiler will result in an error message such as:
testlibpq.c:8:22: libpq-fe.h: No such file or directory
When linking the final program, specify the option
-lpq
so that the libpq library gets pulled in,
as well as the option
-L
directory
to point the compiler to the directory where the libpq library
resides. (Again, the compiler will search some directories by default.) For maximum portability,
put the
-L
optionbefore the
-lpq
option. For example:
cc -o testprog testprog1.o testprog2.o -L/usr/local/pgsql/lib -lpq
716
Chapter 31. libpq - C Library
You can find out the library directory using
pg_config
as well:
$
pg_config --libdir
/usr/local/pgsql/lib
Or again use
pkg-config
:
$
pkg-config --libs libpq
-L/usr/local/pgsql/lib -lpq
Note again that this prints the full options, not only the path.
Error messages that point to problems inthis area could look like the following:
testlibpq.o: In function ‘main’:
testlibpq.o(.text+0x60): undefined reference to ‘PQsetdbLogin’
testlibpq.o(.text+0x71): undefined reference to ‘PQstatus’
testlibpq.o(.text+0xa4): undefined reference to ‘PQerrorMessage’
This means you forgot
-lpq
.
/usr/bin/ld: cannot find -lpq
This means you forgot the
-L
option or did not specify the right directory.
31.21. Example Programs
These examples and others can be found in the directory
src/test/examples
in the source code
distribution.
Example 31-1. libpq Example Program 1
/
*
*
testlibpq.c
*
*
Test the C version of libpq, the PostgreSQL frontend library.
*
/
#include <stdio.h>
#include <stdlib.h>
#include <libpq-fe.h>
static void
exit_nicely(PGconn
*
conn)
{
PQfinish(conn);
exit(1);
}
int
main(int argc, char
**
argv)
{
const char
*
conninfo;
PGconn
*
conn;
PGresult
*
res;
int
nFields;
int
i,
j;
/
*
717
Documents you may be interested
Documents you may be interested