PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 27. libpq - C �� | Fast Forward | Next |
PQexec ��������ͨ��ͬ��Ӧ�����ύ�����Ѿ����㹻�õ��ˡ� ������ȴ�м�����Ҫ��ȱ�ݣ�����Щȱ�ݿ��ܶ�ijЩ�û�����Ҫ��
PQexec �ȴ������������Ӧ�ÿ��ܻ��������Ĺ���Ҫ��������ά���û�����ȣ��� ���ʱ�����ɲ�������������ȴ���Ӧ��
��Ϊ�ͻ���Ӧ���ڵȴ������ʱ���Ǵ��ڹ���״̬�ģ� ����Ӧ�ú����ж����Ƿ�ó��Խ������ڽ��е���� ��������������һ���źž������������û��ķ�������
PQexec ֻ�ܷ���һ��PGresult�ṹ�� ����ύ�������ַ���������� SQL ����������һ��PGresult���ⶼ�ᱻ PQexec ������
�����ܵ���Щ���Ƶ�Ӧ�ÿ��Ը�������ĺ�������Щ����Ҳ�ǹ��� PQexec �ĺ����� Ҳ�� PQsendQueryParams�� PQsendPrepare �� PQsendQueryPrepared�� ���ǿ��Ժ� PQgetResult һ��ʹ�ã��ֱ����ڸ��� PQexecParams��PQprepare �� PQexecPrepared �Ĺ��ܡ�
��������ύһ����������ȴ������ �����ѯ�ɹ������� 1������ 0�� ����ʱ��������PQerrorMessage��ȡ����ʧ�ܵ���Ϣ����
int PQsendQuery(PGconn *conn, const char *command);
�ڳɹ����� PQsendQuery���� PQgetResult һ�λ��߶�λ�ȡ����� �� PQgetResult ���� NULL ָ�룬�����������֮ǰ�� ���Dz����ٵ��� PQsendQuery ����ͬһ���������
���������ύһ������ͣ�������Ҫ�ģ��ָ��IJ����������ȴ������
int PQsendQueryParams(PGconn *conn, const char *command, int nParams, const Oid *paramTypes, const char * const *paramValues, const int *paramLengths, const int *paramFormats, int resultFormat);
�����Ч�� PQsendQuery��ֻ�Dz�ѯ�������ԺͲ�ѯ�ִ��ֿ������� �����IJ�������� PQexecParams һ������ PQexecParams ���ƣ� �������� 2.0 �汾��Э�������Ϲ�����������ֻ�����ڲ�ѯ�ִ������һ�����
����һ��������һ������������������䣬�����ȴ�������
int PQsendPrepare(PGconn *conn, const char *stmtName, const char *query, int nParams, const Oid *paramTypes);
���� PQprepare ���첽�汾��������ܷ������������ 1�� ������ܣ��� 0���ڳɹ�����֮���� PQgetResult �жϷ������Ƿ�ɹ�������������䡣 ��������IJ����Ĵ���� PQprepare һ���� ���� PQprepare���������� 2.0 �汾Э�����������ת��
����һ��ִ�д��и������������õ����������ȴ������
int PQsendQueryPrepared(PGconn *conn, const char *stmtName, int nParams, const char * const *paramValues, const int *paramLengths, const int *paramFormats, int resultFormat);
����������� PQsendQueryParams������Ҫִ�е�������ͨ����һ��ǰ�����õ���������������ģ� �����Ǹ���һ����ѯ�ִ��������IJ�������� PQexecPrepared һ�������� PQexecPrepared�� ��Ҳ������ 2.0 �汾��Э���������ܡ�
�ȴ���ǰ�� PQsendQuery��PQsendQueryParams�� PQsendPrepare�� ���� PQsendQueryPrepared ���÷��ص���һ������� Ȼ��֮���������������û�и������� NULL��
PGresult *PQgetResult(PGconn *conn);
�����ظ��ĵ��� PQgetResult ��ֱ�������� NULL�� ����������������������û�л�Ծ������ʱ���ã� PQgetResult ��ֻ����������һ����ָ�롣�� ÿ�� PQgetResult ���صķ� NULL �����Ӧ����ǰ�������� PGresult ���ʺ������з����� ��Ҫ�����ڽ����������� PQclear �ͷ�ÿ��������� ע�⣬PQgetResult ֻ������һ�������ǻ�Ծ�Ķ��ұ���ķ������ݻ�û�б� PQconsumeInput ��ȡʱ������
ʹ�� PQsendQuery �� PQgetResult ����� PQexec��һ�����⣺ ���һ�������ַ���������� SQL ��� ��Щ����Ľ�����Զ����Ļ�á���˳��˵һ�䣺����������һ�ּ��ص�����ģʽ�� �ͻ��˿��Դ���һ������Ľ����������������Ȼ�ڴ���ͬһ�����ַ����ĺ���IJ�ѯ���� ���ǣ����� PQgetResult ����Ȼ����ǰ�˱�����סֱ�������������һ�� SQL �����һ�����ͨ�������ʹ�������������������⣺
������ڷ���������������ã���ʹ��֮��
int PQconsumeInput(PGconn *conn);
PQconsumeInput ͨ������ 1 ����"û�д���"�� ������ 0 ������ij�ִ�����,�����ʱ�������PQerrorMessage���� ע����������������ʵ�����Ƿ��ռ������ݡ��ڵ��� PQconsumeInput֮��Ӧ�ÿ��Լ�� PQisBusy ��/�� PQnotifies ��һ�����ǵ�״̬�Ƿ�ı䡣
PQconsumeInput ������Ӧ�û�û�����ô�������֪ͨ������±����á� �����������ȡ���õ����ݲ�����һ���������ﱣ��������������һ�� select() �����ñ�ʶ�����ɡ�����Ӧ�þͿ���ʹ�� PQconsumeInput ������� select() ������Ȼ���ڿ��е�ʱ��������
�ڲ�ѯæ��ʱ�� 1 ��Ҳ����˵��PQgetResult ������ס�ȴ����롣 һ�� 0 �ķ��ر�����ʱ���� PQgetResult����ȷ����������
int PQisBusy(PGconn *conn);
PQisBusy ����������ͼ�ӷ�������ȡ���ݣ����Ա����ȵ��� PQconsumeInput������æ״̬����Զ����������
һ��ʹ����Щ�����ĵ��͵�Ӧ�ý���һ����ѭ��ʹ�� select() �ȴ����������봦�������������һ�����������Ƿ������������������ã� �� select() �ĽǶ��������� PQsocket ��ʶ���ļ����������Ѿ��пɶ�ȡ�����ݡ� ����ѭ�����������ã���������PQconsumeInput��ȡ���롣 Ȼ����Ե��� PQisBusy ���� false (0)������Ը��� PQgetResult��ͬ�������û�Ӧ�ã����Ե��� PQnotifies���NOTIFY��Ϣ����������� Section 27.7����
һ��ʹ�� PQsendQuery/PQgetResult �Ŀͻ���ͬ��Ҳ������ͼȡ��һ�����ڱ������������������� Section 27.5�� ���ǣ����� PQcancel ���ص�ֵ�Ƕ��٣�Ӧ�ö�����ʹ�� PQgetResult ���������Ķ�ȡ����Ķ������С� һ�γɹ���ȡ��ֻ�ᵼ���������������¿�Щ������
ͨ��ʹ�����������ĺ��������ǿ��Ա����ڵȴ��������ݿ��������ʱ��������� ������Ӧ�û����п��������ڸ���������������ϡ���������Ƚ��ټ�������Ҳ���ܷ����� ����������Ҫ���ͷdz����� SQL �����������ֵ��ʱ�� �����������п��ܵ�����Ӧ��ͨ�� COPY IN �������ݵ�ʱ�� Ϊ�˱�����������ԣ�ʵ����ȫ�ķ��������ݿ���������ǿ���ʹ�����ж���ĺ�����
�����ӵ�״̬����Ϊ��������
int PQsetnonblocking(PGconn *conn, int arg);
���argΪ 1��������״̬����Ϊ�������� ���argΪ 0�� ������״̬����Ϊ��������� OK ���� 0��������� -1��
�ڷ�����״̬������ PQputline��PQputnbytes�� PQsendQuery �� PQendcopy ��ʱ�������� �����������Ҫ�ٴε�������ʱ������һ������
��ע�� PQexec ���������κη�����ģʽ�� ��������� PQexec����ô������Ϊ���������ġ�
�������ݿ����ӵ�����״̬��
int PQisnonblocking(const PGconn *conn);
�����������Ϊ������״̬������ 1�����������״̬���� 0��
��ͼ���κ������Ŷӵ����ݳ�ˢ���������� ����ɹ������߷��Ͷ���Ϊ�գ����� 0�������ij��ԭ��ʧ�ܷ��� -1�� �����������ѷ��Ͷ����е��������ݶ����ͳ�ȥ������ 1�� ���������ֻ�������Ӳ�Ϊ����ģʽ��ʱ��Ż���֣���
int PQflush(PGconn *conn);
��һ���������������Ϸ����κ������������֮�� ����PQflush �� ������� 1���͵ȴ�����д����Ȼ���ٴε��ã��ظ��������ֱ�������� 0�� һ��PQflush���� 0����ȴ�����Ϊ�����ã�����֮���������������ȡ��