PostgreSQL 9.0.4ʸ�� | ||||
---|---|---|---|---|
前のページ | 巻戻し | 第 31章libpq - C �饤�֥�� | 早送り | 次のページ |
PostgreSQL�ΥХå�����ɥ����ФȤ���³���������ˤϡ��ʲ��δؿ�����Ѥ��ޤ���
���ץꥱ�������ץ������ϥХå�����ɤȤ���³����٤�ʣ���ij������Ȥ��Ǥ��ޤ���
��1�Ĥ���ͳ�Ȥ��ơ�ʣ���Υǡ����١����ؤΥ������������ޤ�����
�ġ�����³�ϡ�PQconnectdb
��PQconnectdbParams
�ޤ���PQsetdbLogin
�ؿ���ƤӽФ����Ȥ�������PGconn���֥������Ȥˤ�ä�ɽ����ޤ���
�ʤ��������δؿ��ϡ�PGconn���֥������Ȥ˳�����Ƥ�ۤ�Τ鷺���ʥ����;͵������ʤ����������NULL�ǤϤʤ���˥��֥������ȤΥݥ����֤��ޤ���
�ޤ���������³���֥������Ȥ��̤����䤤��碌���������ˡ�PQstatus
�ؿ���ƤӽФ��ơ��ǡ����١����Ȥ���³�������������ɤ��������ʤ���Фʤ�ޤ���
警告 |
Unix��ǡ�libpq��³�����ץ������Υե������ϡ��ƤȻҤΥץ�������Ʊ�������åȤȥ��ڥ졼�ƥ������ƥ�λ�ͭ���뤿�ᡢͽ�����̷�̤����Ȥ�����ޤ���
������ͳ�ˤ�ꡢ�����¹Է�����ҥץ��������ɤ߹��ि�� |
注意: Windows�Ǥϡ�ñ��Υǡ����١�����³��ȿ�����Ƴ��ϤȽ�λ���֤���硢��ǽ����夵������ˡ������ޤ��� ����Ū�ˤϡ���³���ϤȽ�λ���Ф��ơ����줾��libpq��
WSAStartup()
��WSACleanup()
��ƤӽФ��ޤ���WSAStartup()
��WSACleanup()
���ͤ�����������줿����Windows�饤�֥�껲�ȥ�����Ȥ����ä����ޤ��� ���ȥ�����Ȥ����ä����ξ�硢WSACleanup()
�ƤӽФ������ƤΥ����������������Ƥ�DLL�ϥ�������ɤ���ޤ��� ����Ϲ�������Ǥ��� ��������ˤϡ��Ǹ�Υǡ����١�����³���Ĥ�����������������������ʤ��褦�˥��ץꥱ�������ư��WSAStartup()
��ƤӽФ����Ȥ��Ǥ��ޤ���
PQconnectdbParams
�����˥ǡ����١��������Фؤ���³��������ޤ���
PGconn *PQconnectdbParams(const char **keywords, const char **values, int expand_dbname);
���δؿ��ϡ�2�Ĥ�NULL��ü��������������ѥ�������Ѥ��ơ��ǡ����١����Ȥ���³����1�ij�Ω���ޤ���
1���ܤ�ʸ��������Ȥ�����������keywords�ǡ����줾�줬������ɤȤʤ�ޤ���
2���ܤ�values�ǡ��ƥ�����ɤ��ͤ����ޤ���
��Ҥ�PQsetdbLogin
�Ȥϰۤʤꡢ�ؿ��Υ����ͥ�����ѹ������˥ѥ���������ĥ�Ǥ��ޤ��Τǡ����ץꥱ�������ץ��������˺�������ݤˤϡ����δؿ�(�⤷������֥��å��⡼�ɤǤ褯����������PQconnectStartParams
��PQconnectPoll
)����Ѥ��뤳�Ȥ��ᤷ�ޤ���
expand_dbname�����ξ�硢dbname������ɤ��ͤ�conninfoʸ����Ȥ���ǧ�������뤳�Ȥ��Ǥ��ޤ��� �ʲ��Ȥ��Ƥ���������
����������Ϥ��Ƥ��٤ƥǥե���ȥѥ�������Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ޤ��Ϥ���������1�İʾ�Υѥ��������������뤳�Ȥ�Ǥ��ޤ��� ������Ĺ���ϰ��פ��ʤ���Фʤ�ޤ��� keywords����κǸ����NULL���Ǥǽ�������ߤ��ޤ���
��������ͭ���ʥѥ����Υ�����ɤϰʲ��˼����̤�Ǥ���
��³����ۥ���̾����ꤷ�ޤ��� ���ΰ�����å���ǻϤ��硢TCP/IP�ˤ���̿��ǤϤʤ���Unix�ɥᥤ����̿����������뤳�Ȥˤʤ�ޤ��� ���ξ�硢�����ͤϥ����åȥե�������Ǽ����ǥ��쥯�ȥ��̾���ˤʤ�ޤ��� host�����ꤵ��ʤ��ä����Υǥե���Ȥϡ�/tmp�ˤ���Unix�ɥᥤ��Υ����åȤ���³���뤳�ȤǤ��� �ʤޤ��ϡ�PostgreSQL�ι��ۻ��˻��ꤷ���̤Υǥ��쥯�ȥ�ˤ��륽���åȤǤ����� Unix�ɥᥤ���åȤ�����ʤ��ޥ���ˤ�����ǥե���Ȥϡ�localhost����³���뤳�ȤǤ���
��³����ۥ��Ȥ�IP���ɥ쥹����ꤷ�ޤ��� ����ϡ�172.28.40.9�Ȥ��ä�ɸ��Ū��IPv4���ɥ쥹�Ǥʤ���Фʤ�ޤ��� ���Ѥ���ޥ����IPv6�ݡ��Ȥ�����ϡ����Υ��ɥ쥹����Ѥ��뤳�Ȥ�Ǥ��ޤ��� ���Υѥ����������ʸ�����ꤵ���ȡ�TCP/IP�̿�����˻��Ѥ���ޤ���
host�������hostaddr����Ѥ��뤳�Ȥǡ����ץꥱ������ۥ���̾�θ�����Ԥʤ鷺�˺Ѥߤޤ��� �ä˻���Ū�����륢�ץꥱ�������ǤϽ��פˤʤ�Ǥ��礦�� ��������Kerberos��GSSAPI�����SSPIǧ�ڤ�Ԥ����ץꥱ�������Ǥϡ��ۥ���̾��ɬ�פˤʤ�ޤ��� SSL������δ����ʸ��ڤ�Ԥ�����Ʊ�ͤǤ��� �ʲ��ε�§�����Ѥ���ޤ��� hostaddr��Ȥ鷺��host����ꤷ�����ϡ��ۥ���̾�θ�����ȯ�����ޤ��� host��Ȥ鷺��hostaddr����ꤷ����硢hostaddr�ϥ����ФΥ��ɥ쥹�Ȥʤ�ޤ��� �ۥ���̾��ɬ�פ��������³��Ԥ����Ԥ��ޤ��� host��hostaddr��ξ������ꤷ����硢hostaddr�������ФΥ��ɥ쥹�Ȥʤ�ޤ��� host���ͤ�ǧ�ڤ両����Ū��ɬ�פȤ���ʤ��¤�̵�뤵�졢ɬ�פȤ������ˤϥۥ���̾�Ȥ��ƻ��Ѥ���ޤ��� host��hostaddr���б�����ޥ����̾���Ȱ��פ��ʤ����ϡ�ǧ�ڤ˼��Ԥ����ǽ��������Τ����դ��Ƥ��������� �ޤ���hostaddr�ǤϤʤ�host��~/.pgpass(項31.14��)�Ǥ���³�μ��̤˻��Ѥ���ޤ���
�ۥ���̾��ۥ��ȤΥ��ɥ쥹���Ѥ��ʤ���硢libpq�ϥ��������Unix�ɥᥤ���åȤ���Ѥ�����³���ޤ��� ��������Unix�ɥᥤ���åȤ�����ʤ��ޥ���Ǥϡ�localhost�ؤ���³���ߤޤ���
�����Хۥ��ȤǤ���³�ѤΥݡ����ֹ桢�ޤ��ϡ�Unix�ɥᥤ����³�ξ��ϡ������åȥե�����γ�ĥ�Ҥ���ꤷ�ޤ���
�ǡ����١���̾����ꤷ�ޤ��� �ǥե���Ȥϥ桼��̾��Ʊ���Ǥ���
�ǡ����١�������³����PostgreSQL�桼��̾����ꤷ�ޤ��� �ǥե���Ȥϡ����Υ��ץꥱ��������¹Ԥ��Ƥ���桼���Υ��ڥ졼�ƥ������ƥ���̾����Ʊ���Ǥ���
�����Ф��ѥ���ɤˤ��ǧ�ڤ�ɬ�פȤ������˻��Ѥ����ѥ���ɤ���ꤷ�ޤ���
��³�Ѥκ����Ե����֤���ñ��(10�ʿ�������ɽ����ʸ����Ȥ��Ƶ��Ҥ��Ƥ�������)�ǻ��ꤷ�ޤ��� �����⤷����̤����ϡ�̵�»��֤��Ե����̣���ޤ��� 2��̤�����Ե����֤���Ѥ��뤳�Ȥϴ���ޤ���
�¹Ի��˥����Ф��������륳�ޥ�ɥ饤�ץ������ɲä��ޤ��� �㤨�С������-c geqo=off�����ꤹ��ȡ�geqo�ѥ����Υ��å�����ͤ�off�ˤʤ�ޤ��� ͭ���ʥ��ץ����˴ؤ���ܺ٤�第18章��Ĵ�٤Ƥ���������
application_name����ѥ������ͤ���ꤷ�ޤ���
application_name����ѥ�����ͽ���ͤ���ꤷ�ޤ��� ��³�ѥ����ޤ���PGAPPNAME�Ķ��ѿ��ˤ��application_name���ͤ����ꤵ��ʤ����ˡ������ͤ����Ѥ���ޤ��� ͽ����̾������ꤹ�뤳�Ȥϡ��ǥե���ȤΥ��ץꥱ�������̾�����ꤷ���������桼���ˤ⤽����Ǥ���褦�ˤ��Ƥ�������������Ū�ʥ桼�ƥ���ƥ��ץ�������ͭ�ѤǤ���
���饤�����¦�ˤ�����TCP�����ץ��饤�֤λ��Ѥ����椷�ޤ��� �ǥե�����ͤ�1�Ǥ��ꡢͭ���Ǥ��뤳�Ȥ��̣���ޤ��� �����������ץ��饤�֤�˾�ޤʤ����ϡ�̵���Ǥ��뤳�Ȥ��̣���를�������ꤹ�뤳�Ȥ��Ǥ��ޤ��� ���Υѥ�����Unix�ɥᥤ���åȷ�ͳ����³�Ǥ�̵�뤵��ޤ���
TCP�������Ф˥����ץ��饤�֥�å�����������������˳�ư��Ԥ�ʤ����֤���ñ�̤����椷�ޤ��� �����Ȥ����ͤǤϥ����ƥ�Υǥե���Ȥ���Ѥ��ޤ��� Unix�ɥᥤ���åȷ�ͳ�Ǥʤ��줿��³�ξ��⤷���ϥ����ץ��饤�֤�̵���ʾ�硢���Υѥ�����̵�뤵��ޤ��� �����TCP_KEEPIDLE�����åȥ��ץ����ޤ���TCP_KEEPALIVE�����åȥ��ץ�������ѤǤ��륷���ƥप���Windows�ǤΤߥ��ݡ��Ȥ���ޤ��� ¾�Υ����ƥ�Ǥϸ��̤�����ޤ���
TCP�����ץ��饤�֥�å��������Ф�������������Ф���ʤ����ˡ����ø�˺�����Ԥ��������椷�ޤ��� �����Ȥ����ͤǤϥ����ƥ�Υǥե���Ȥ���Ѥ��ޤ��� Unix�ɥᥤ���åȷ�ͳ�Ǥʤ��줿��³�ξ�硢�ޤ��ϥ����ץ��饤�֤�̵���ˤ��Ƥ����硢���Υѥ�����̵�뤵��ޤ��� �����TCP_KEEPINTVL�����åȥ��ץ�������ѤǤ��륷���ƥप���Windows�ǤΤߥ��ݡ��Ȥ���ޤ��� ¾�Υ����ƥ�Ǥϸ��̤�����ޤ���
�����ФؤΥ��饤�������³�����פˤʤä��Ȥߤʤ��ޤǡ������ץ��饤�֤η����ǧ��뤫�����椷�ޤ��� �����Ȥ����ͤǤϥ����ƥ�Υǥե���Ȥ���Ѥ��ޤ��� Unix�ɥᥤ���åȷ�ͳ�Ǥʤ��줿��³�ξ�硢�ޤ��ϥ����ץ��饤�֤�̵���ˤ��Ƥ����硢���Υѥ�����̵�뤵��ޤ��� �����TCP_KEEPCNT�����åȥ��ץ�������ѤǤ��륷���ƥ�ǤΤߥ��ݡ��Ȥ���ޤ��� ¾�Υ����ƥ�Ǥϸ��̤�����ޤ���
̵�뤵��ޤ�(�����ϡ�����ϥ����ХǥХå����Ϥ��������������ꤹ���ΤǤ���)��
���Υ��ץ����ϡ��ɤ�SSL�ˤ�������TCP/IP��³��ͥ���٤ǥ����Ф�Ĵ�䤹�뤫����ꤷ�ޤ��� 6�ĤΥ⡼�ɤ�����ޤ���
表 31-1. sslmode���ץ����
���ץ���� | ���� |
---|---|
disable | ��SSL��³�Τ�� |
allow | �ǽ����SSL��³���ԡ� ���Ԥξ����SSL��³���� |
prefer�ʥǥե���ȡ� | �ǽ��SSL��³���ԡ� ���Ԥξ�硢��SSL��³���� |
require | SSL��³�Τ�� |
verify-ca | SSL��³�Τ�Ԥ��������о������Ѥ��줿CA����ȯ�Ԥ��줿���� |
verify-full | SSL��³�Τ�Ԥ��������о������Ѥ��줿CA����ȯ�Ԥ��줿��������Ӥ��Υ����Хۥ���̾����������Τ�ΤȰ��פ��뤫�� |
�����Υ��ץ���ɤΤ褦��ư���Τ��ˤĤ��Ƥ�項31.17�Ȥ��Ƥ���������
sslmode��Unix�ɥᥤ���å��̿��Ǥ�̵�뤵��ޤ��� SSL���ݡ��Ȥʤ���PostgreSQL������ѥ��뤵�줿���ˡ�require��verify-ca��verify-full����Ѥ���ȥ��顼�ˤʤ�ޤ��� ������allow��prefer�ϻ��ѤǤ��ޤ������ºݤ�libpq��SSL��³������դ��ޤ���
���Υ��ץ�����sslmode�����ٻ�������������ѻ�ͽ��ˤʤäƤ��ޤ���
1�����ꤹ�뤳�Ȥǡ������Фؤ�SSL��³��ɬ�פˤʤ�ޤ� (�����sslmode��require��Ʊ���Ǥ�)�� �����Ф�SSL��³������դ��ʤ���硢Libpq����³����䤷�ޤ��� 0(�ǥե����)�����ꤹ�뤳�Ȥǡ������Ф���³������Ĵ���Ԥ��ޤ��� (sslmode��prefer��Ʊ���Ǥ���) SSL���ݡ����դ���PostgreSQL��ѥ��뤷�����ˤΤߡ����Υ��ץ�������ѤǤ��ޤ���
���Υѥ����ϡ�~/.postgresql/postgresql.crt�Ȥ����ǥե���Ȥ��֤������륯�饤�����SSL������Υե�����̾����ꤷ�ޤ��� ���Υѥ�����SSL��³����Ω���Ƥ��ʤ�����̵�뤵��ޤ���
���Υѥ����ϥ��饤����Ⱦ�������Ф��ƻ��Ѥ������̩���ξ�����ꤷ�ޤ��� �ǥե���Ȥ�~/.postgresql/postgresql.key������˻��Ѥ����ե�����̾���ޤ��ϳ���"����"�ʥ���Ȥ�OpenSSL�����ɲ�ǽ�ʥ⥸�塼��ˤ��������륭������ꤹ�뤳�Ȥ��ǽ�Ǥ��� ��������λ���ˤϥ�����Ƕ��ڤä�����̾�ȥ�����ͭ�θ����̻Ҥ�ޤ�Ǥ��ʤ���Фʤ�ޤ��� SSL��³����Ω���Ƥ��ʤ���礳�Υѥ�����̵�뤵��ޤ���
���Υѥ�����SSLǧ�ڶ�(CA)�ξ�����Υե�����̾����ꤷ�ޤ��� ���Υե����뤬¸�ߤ����硢�����о�����Ϥ�����ǧ�ڶɤ�1�Ĥǽ�̾����Ƥ��뤫�ɤ������ڤ���ޤ��� �ǥե���Ȥ�~/.postgresql/root.crt�Ǥ���
���Υѥ�����SSL�������ꥹ�ȡ�CRL�ˤΥե�����̾����ꤷ�ޤ��� ���Υե��������줿������¸�ߤ�����硢����ϥ����о������ǧ���褦�Ȥ�����˵��䤵��ޤ��� �ǥե���Ȥ�~/.postgresql/root.crl�Ǥ���
Kerberos5�ޤ���GSSAPI��ǧ�ڻ��˻Ȥ���Kerberos�����ӥ�̾�Ǥ��� �������뤿��ˤϡ�����ϥ����Ф�Kerberosǧ������Υ����ӥ�̾�Ȱ��פ��Ƥ��ʤ���Фʤ�ޤ��� (項19.3.5�����項19.3.3�⻲�Ȥ��Ƥ���������)
GSSAPIǧ�ڤǻ��Ѥ����GSS�饤�֥��Ǥ��� Windows��Τߤǻ��Ѥ���ޤ��� libpq��ǧ�ڤ��ǥե���Ȥ�SSPI�ǤϤʤ�������Ū��GSSAPI�饤�֥�����Ѥ�����ˤ�gssapi�����ꤷ�Ƥ���������
�ɲäΥѥ����Ѥ˻��Ѥ���륵���ӥ�̾�Ǥ��� pg_service.conf����ɲ�Ū����³�ѥ������ݻ����륵���ӥ�̾����ꤷ�ޤ��� ����ˤ�ꥢ�ץꥱ�������ϥ����ӥ�̾���������Ǥ�����³�ѥ�������Ū���ݼ�Ǥ���褦�ˤʤ�ޤ��� 項31.15�Ȥ��Ƥ���������
�ѥ��������ꤵ��ʤ��ä����ˤϡ��б�����Ķ��ѿ��������å�����ޤ���項31.13�Ȥ��Ƥ��������ˡ� �Ķ��ѿ������ꤵ��Ƥ��ʤ����ϡ����ꤵ�줿�Ȥ߹��ߤΥǥե�����ͤ����Ѥ���ޤ���
expand_dbname���������ġ�dbname��=���椬�ޤޤ���硢 PQconnectdb
���Ϥ��줿���(���)�Ȥޤä���Ʊ����ˡ��conninfo�Ȥ��Ʋ�ᤵ��ޤ���
����ޤǽ������줿������ɤ�conninfoʸ������Υ�����ɤǾ����ޤ���
����Ū�˥�����ɤϤ������������Ƭ���饤��ǥå�����ǽ�������ޤ��� ���αƶ��ϥ�����ɤ������֤��줿���ǡ��Ǹ�˽������줿�ͤ��Ĥ뤳�Ȥˤʤ�ޤ��� ���Τ��ᡢdbname������ɤε��Ҿ������դ��뤳�Ȥǡ�conninfoʸ����ˤ�겿�������뤫�����������ʤ�������ꤹ�뤳�Ȥ��Ǥ��ޤ���
PQconnectdb
�����˥ǡ����١��������Фؤ���³��������ޤ���
PGconn *PQconnectdb(const char *conninfo);
���δؿ���conninfoʸ������������ѥ�������Ѥ��ơ��������ǡ����١�����³���ޤ���
����ʸ������Ϥ��Ƥ��٤ƥǥե���ȥѥ�������Ѥ��뤳�Ȥ��Ǥ��ޤ��� �ޤ�����ʸ���Ƕ��ڤ뤳�Ȥ�1�İʾ�Υѥ��������������뤳�Ȥ�Ǥ��ޤ��� �ƥѥ�����keyword = value�Ȥ������������ꤵ��ޤ��� ���浭�������ζ���ʸ���Ͼ�ά��ǽ�Ǥ��� �����ͤҤ��롢�⤷���ϡ�����ʸ����ޤ��ͤҤ��뤿��ˤϡ��㤨��keyword = 'a value'�Τ褦��ñ�������Ǥ����äƤ��������� �����ñ������䤪��ӥХå�����å���ϥХå�����å���ǥ��������ס��Ĥޤ�\'�����\\�Τ褦�ˤ��ʤ���Фʤ�ޤ���
����ǧ�������ѥ���������ɤ����Ҥ��̤�Ǥ���
PQsetdbLogin
�����˥ǡ����١��������Фؤ���³��������ޤ���
PGconn *PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions, const char *pgtty, const char *dbName, const char *login, const char *pwd);
����ϥѥ���������ꤷ��PQconnectdb
�����ȤǤ���
����Ǥ��ʤ��ѥ�������˸����ͤˤʤ����������Ʊ��ε�ǽ������ޤ���
���ꤷ���ѥ������Ф���NULL�⤷���϶�ʸ����Ȥ���ȡ�����ϥǥե���Ȥ���Ѥ��뤳�Ȥˤʤ�ޤ���
dbName���=���椬�ޤޤ���硢PQconnectdb
���Ϥ��줿���Ȥޤä���Ʊ��������conninfoʸ����Ȥ��ư����ޤ���
���θ�Ĥ�Υѥ�������Τ褦��Ŭ�Ѥ���ޤ���
PQsetdb
�����˥ǡ����١��������Фؤ���³��������ޤ���
PGconn *PQsetdb(char *pghost, char *pgport, char *pgoptions, char *pgtty, char *dbName);
����ϡ�login��pwd��NULL�ݥ������ꤹ��PQsetdbLogin
��ƤӽФ��ޥ����Ǥ���
���˸Ť��ץ������ؤθ����ߴ����Τ��������Ƥ��ޤ���
PQconnectStartParams
PQconnectStart
PQconnectPoll
�֥��å����ʤ���ˡ�ǡ��ǡ����١��������Фؤ���³��������ޤ���
PGconn *PQconnectStartParams(const char **keywords, const char **values, int expand_dbname); PGconn *PQconnectStart(const char *conninfo); PostgresPollingStatusType PQconnectPoll(PGconn *conn);
�����3�Ĥδؿ�����Ѥ��ơ���⡼��I/O�μ¹Ի��˥��ץꥱ�������åɤμ¹Ԥ��֥��å�����ʤ��褦�ˡ��ǡ����١��������Фؤ���³��������ޤ���
���μ�ˡ�������ϡ�I/O �ν�λ�Ԥ���PQconnectdbParams
�ޤ���PQconnectdb
�����ǤϤʤ������ץꥱ�������ץ������Υᥤ��롼�פǤǤ��뤳�Ȥˤ���ޤ���
����ˤ�äơ����ץꥱ��������¾�ν������¹Ԥ��Ƥ��ν�����������뤳�Ȥ��Ǥ��ޤ���
PQconnectStartParams
�Ǥϡ����PQconnectdbParams
�����������褦�ˡ��ǡ����١�����³��keywords�����values����������졢expand_dbname�ˤ�ä����椵�줿�ѥ�������Ѥ��Ƴ�Ω���ޤ���
PQconnectStart
�Ǥϡ����PQconnectdb
�����������褦�ˡ�conninfoʸ����������줿�ѥ�������Ѥ��ƥǡ����١�����³���Ω���ޤ���
PQconnectStartParams
��PQconnectStart
��PQconnectPoll
�Τɤ����ʲ������¤�Ŭ�礹����֥��å����ޤ���
hostaddr��host�ѥ����ϡ��ۥ���̾�����IP���ɥ쥹������ۥ���̾�εհ�����������ʤ��褦��Ŭ�ڤ˻��Ѥ���ʤ���Ф����ޤ���
�����Υѥ����ˤĤ��Ƥξܺ٤ϡ����Ҥ�PQconnectdbParams
����Ȥ��Ƥ���������
PQtrace
��ƤӽФ����ϡ��ȥ졼���˻��Ѥ��륹�ȥ�४�֥������Ȥ��֥��å�����ʤ����Ȥ��ݾڤ���Ƥ��ʤ��ƤϤʤ�ޤ���
�ץ�������Ȥ�����˼����褦�ˡ�PQconnectPoll
��ƤӽФ����˥����åȤ�Ŭ�ڤʾ��֤ˤ��뤳�Ȥ��ݾڤ��ʤ��ƤϤ����ޤ���
���ա�PQconnectStartParams
�λ��Ѥϸ�Ҥ�PQconnectStart
��������Ƥ��ޤ���
��֥��å���³���Ϥ��ˤϤޤ���conn=PQconnectStart("connection_info_string")��ƤӽФ��ޤ���
conn��NULL�ξ�硢libpq��������PGconn��¤�Τ������Ƥ��ʤ��ä����Ȥ�ɽ���ޤ���
�����Ǥʤ����ϡ�Ŭ�ڤ�PGconn�ؤΥݥ����֤���ޤ�
�ʤ��������ǡ����١�������������³����Ƥ��뤳�Ȥ�ɽ���Ƥ���櫓�ǤϤ���ޤ���ˡ�
PQconnectStart
�����ͤ��֤äƤ����ʳ��ǡ�status=PQstatus(conn)��ƤӽФ��ޤ���
�⤷��status��CONNECTION_BAD�����������ˤϡ�PQconnectStart
�����Ԥ��Ƥ��ޤ���
PQconnectStart
�����������顢������³��������ʤ�뤿��ˡ�libpq��ݡ�����ޤ���
�ǡ����١�����³���ظ�ˤ��륽���åȤε��һҤ���Ф��ˤϡ�PQsocket(conn)
����Ѥ��ޤ���
�ʲ��η����֤��Ǥ���
ľ����PQconnectPoll(conn)
��PGRES_POLLING_READING�ξ�硢�����åȤ��ɤ߹��߽����������ޤ��Ե����ޤ���
��select()
��poll()
�ʤɤΥ����ƥ�ؿ��Ǽ�����ޤ�����
�����ơ�����PQconnectPoll(conn)
��ƤӽФ��ޤ���
ȿ�Ф�ľ����PQconnectPoll(conn)
��PGRES_POLLING_WRITING�ξ�硢�����åȤν��߽����������ޤ��Ե��������θ塢PQconnectPoll(conn)
����ٸƤӽФ��ޤ���
�ޤ�PQconnectPoll
��ƤӽФ��Ƥ��ʤ���硢�ĤޤꡢPQconnectStart
�θƤӽФ�ľ��Ǥϡ�ľ����PGRES_POLLING_WRITING�Ǥ��ä�����Ʊ�ͤν�����Ԥʤ��ޤ���
���η����֤���PQconnectPoll(conn)
������³��³���μ��Ԥ�PGRES_POLLING_FAILED���⤷���ϡ���³��Ω�������������Ȥ�PGRES_POLLING_OK���֤��ޤǷ�³���ޤ���
��³���Ƥ���֤ϡ����ĤǤ�PQstatus
��ƤӽФ����Ȥǡ���³�ξ��֤����뤳�Ȥ��Ǥ��ޤ���
���δؿ���CONNECTION_BAD���֤���硢��³��³���ϼ��Ԥ��Ƥ��ꡢCONNECTION_OK���֤���硢��³����Ω���Ƥ��ޤ���
��ҤΤ褦�ˡ����Τ�����ξ��֤⡢PQconnectPoll
������ͤ���Ʊ�ͤ˸��ФǤ��ޤ���
����ʳ��ξ��֤ϡ���Ʊ������³��³���δ֡ʤΤߤˡ˸���뤳�Ȥ�����ޤ���
�����ϡ���³�ץ���������θ��ߤ��ʳ�����ΤǤ��ꡢ�㤨�Х桼���ؤΥե����ɥХå������뤳�Ȥ˻��ѤǤ��ޤ���
�ʲ��ξ��֤�����ޤ���
����������ϡʸߴ������ݤĤ���ˤʤ��ʤ뤳�ȤϤ���ޤ������ץꥱ�������ϡ�����餬����ν�ǽи������ꡢ�ܽ�˽Ƥ����ͤΤɤ줫��ɬ�����ơ������ͤ���������Ȥ������Ȥ�褷�����Ƥˤ��ƤϤ����ޤ��� ���ץꥱ�������ϡ��ʲ��˼����褦�ˤ���٤��Ǥ���
switch(PQstatus(conn)) { case CONNECTION_STARTED: feedback = "Connecting..."; break; case CONNECTION_MADE: feedback = "Connected to server..."; break; . . . default: feedback = "Connecting..."; }
PQconnectPoll
����Ѥ����硢connect_timeout��³�ѥ�����̵�뤵��ޤ���
�в���֤�Ĺ��뤫�ɤ�����Ƚ��ϥ��ץꥱ����������Ǥ�ǹԤʤ��ޤ���
����ʤ��ȡ�PQconnectStart
��PQconnectPoll
�η����֤���PQconnectdb
��Ʊ���ˤʤ�ޤ���
PQconnectStart
����NULL�ݥ����֤�����硢������λ����ݤˤϡ���¤�Τ��Ϣ�������֥��å���������뤿��ˡ�PQfinish
��ƤӽФ��ʤ��ƤϤʤ�ʤ����Ȥ����դ��Ƥ���������
���ν����ϡ���³��Ԥ����Ԥ������䤽�λ�Ԥ����Ǥ�����ˤ⡢ɬ���¹Ԥ���ʤ���Ф����ޤ���
PQconndefaults
�ǥե���Ȥ���³���ץ������֤��ޤ���
PQconninfoOption *PQconndefaults(void); typedef struct { char *keyword; /* ���Υ��ץ����Υ������ */ char *envvar; /* ���ؤȤʤ�Ķ��ѿ���̾�� */ char *compiled; /* ���ؤȤʤ륳��ѥ�������Ȥ߹��ޤ줿�ǥե������ */ char *val; /* ���ץ����θ����͡��⤷���ϡ�NULL */ char *label; /* ��³������������������ե�����ɤΥ�٥� */ char *dispchar; /* ��³������������������ե�����ɤ�ɤΤ褦��ɽ�����뤫�λؼ� ��: "" ���Ϥ��줿�ͤΤޤ�ɽ�� "*" �ͤ��ѥ���ɥե�������� "D" �ǥХå����ץ���ǥե���ȤDz���ɽ�����ޤ��� */ int dispsize; /* �����������ѤΥե�����ɤ��礭��(ʸ����ñ��) */ } PQconninfoOption;
��³���ץ�����������֤��ޤ���
����ϡ����Ѳ�ǽ��PQconnectdb
�ѥ��ץ��������Ƥ䡢���λ����ǤΥǥե�����ͤ���ꤹ�뤿��˻��Ѥ��뤳�Ȥ��Ǥ��ޤ���
����ͤϡ�PQconninfoOption��¤�Τ�����ؤΥݥ��ǡ�keyword�ݥ���NULL�Ȥʤ���ܤ�����������ˤ��ޤ���
���꤬���ݤǤ��ʤ��ä����ˤ�NULL�ݥ����֤��ޤ���
���ߤΥǥե������(val �ե�����ɡˤϡ��Ķ��ѿ���¾�Υ���ƥ����Ȥ˰�¸���ޤ���
�ƤӽФ�¦�Ǥϡ���³���ץ����ξ���ϡ��ɤ߹������ѤȤ��Ƽ�갷��ʤ���Ф����ޤ���
���ץ�������������������ϡ�PQconninfoFree
����Ѥ��Ʋ������ޤ���
���ν����ʤ��ȡ�PQconndefaults
���ƤӽФ���뤿�Ӥ˾������ĥ�������ȯ�����ޤ���
PQconninfoParse
���줿��³ʸ���鹽ʸ���Ϥ��줿��³���ץ������֤��ޤ���
PQconninfoOption *PQconninfoParse(const char *conninfo, char **errmsg);
��³ʸ����ι�ʸ���Ϥ�Ԥ�������Ȥ��Ʒ�̥��ץ������֤������ޤ�����³ʸ��������꤬���ä�����NULL���֤��ޤ���
��������줿��³ʸ��������PQconnectdb
���ץ�������ꤹ��Τ˻��Ѥ��뤳�Ȥ��Ǥ��ޤ���
����ͤ�PQconninfoOption��¤�Τ������ؤ������������NULLkeyword�ݥ����ͭ���Ƥ�����ܤǽ��뤷�ޤ���
ʸ�����������Ū�˻��ꤵ�줿���ץ����Τ߷�����������ͽ������Ĥ��Ȥ����դ��Ƥ��������� �����ʤ�ǥե���Ȥ���������ޤ���
errmsg����NULL�Ǥ���С������������*errmsg��NULL�����ꤵ�졢�����Ǥʤ���С��������������malloc
���줿���顼ʸ����ˤʤ�ޤ���
��NULL���֤��줿�Ȥ��Ǥ��äƤ�*errmsg��NULL�����ꤵ��뤳�Ȥ⤢�����ޤ���
����ϥ��������֤��̣���ޤ�����
���ץ�����������������塢�����PQconninfoFree
���Ϥ��Ʋ������Ƥ���������
���줬�Ԥ��ʤ���硢PQconninfoParse
�ؤΤ��줾��θƤӽФ����Ф��ƥ�������������ޤ���
ȿ�Фˡ����顼�������ꡢ������errmsg����NULL�Ǥ���С�PQfreemem
����Ѥ��ƥ��顼ʸ�����ɬ���������Ƥ���������
PQfinish
�����ФȤ���³���Ĥ����ޤ��� �ޤ���PGconn���֥������Ȥ���������������ޤ���
void PQfinish(PGconn *conn);
���Ȥ������Фؤ���³��Ԥ����Ԥ��Ƥ��PQstatus
��Ĵ�٤ޤ��ˡ����ץꥱ��������PQfinish
��ƤӽФ�PGconn���֥������Ȥ����������������٤��Ǥ���
������PQfinish
��ƤӽФ����顢�⤦PGconn�ؤΥݥ���ȤäƤϤ����ޤ���
PQreset
�����Фؤ��̿������ͥ��ꥻ�åȤ��ޤ���
void PQreset(PGconn *conn);
���δؿ��ϥ����Фؤ���³���Ĥ����������Ѥ����ѥ��������ƻ��Ѥ��ơ�Ʊ��Υ����Фؿ�������³���Ω���ޤ��� ����ϡ���������³������줿���Υ��顼�ν�������Ω�ĤǤ��礦��
PQresetStart
PQresetPoll
��֥��å��������ǡ������Фؤ���³�����ͥ��ꥻ�åȤ��ޤ���
int PQresetStart(PGconn *conn); PostgresPollingStatusType PQresetPoll(PGconn *conn);
�����δؿ��ϥ����Фؤ���³���Ĥ������줫����١��������Ѥ����ѥ��������ƻ��Ѥ��ơ�Ʊ�������Фȿ�������³���Ω���褦�Ȥ��ޤ���
�����Ϻ�������³������줿���Υ��顼��������Ω�ĤǤ��礦��
PQreset
�����ҡˤȤΰ㤤�ϡ�����2�Ĥδؿ�����֥��å�������ư��뤳�ȤǤ���
�ޤ��������δؿ���PQconnectStartParams
��PQconnectStart
�����PQconnectPoll
��Ʊ�����¤�����ޤ���
��³�ꥻ�åȤ�Ϥ��ˤϡ�PQresetStart
��ƤӽФ��ޤ���
���δؿ����������֤���硢�ꥻ�åȤ˼��Ԥ��Ƥ��ޤ���
����ͤ�1�ʤ�С�PQconnectPoll
��Ȥä���³���Ω�������Ȥޤä���Ʊ���ˡ�PQresetPoll
����Ѥ��ƥꥻ�åȤΥݡ����Ԥ��ޤ���