PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 27. libpq - C �� | Fast Forward | Next |
���������ɵ�ע����Ϣ�;�����Ϣ�������ɲ�ѯִ�к������أ���Ϊ���Dz����̺����ѯ��ʧ�ܡ� ���ǻᱻ���ݸ�һ��ע����Ϣ��������Ȼ���ڸô�����֮���������ִ�С� ȱʡ��ע����Ϣ�������� stderr �ϴ�ӡ����Ϣ������Ӧ�ÿ���ͨ���ṩ�Լ��Ĵ����������������Ϊ��
��ԥ��ʷԭ��ϵͳ��������������ע����Ϣ���� �ֱ����ע����Ϣ��������ע����Ϣ��������ȱʡ����Ϊ��ע����Ϣ��������ʽ��ע����ϢȻ���ע����Ϣ����������һ���ִ����д�ӡ�� �������������д�����Щ�����Ӧ�ö��ԣ�ͨ���Ǻ���ע����Ϣ�������㣬��ֻ����ע����Ϣ��������������ж�����
���� PQsetNoticeReceiver Ϊһ�����Ӷ������û���鵱ǰ��ע����Ϣ�������� ���Ƶ��� PQsetNoticeProcessor ���û���鵱ǰ��ע����Ϣ��������
typedef void (*PQnoticeReceiver) (void *arg, const PGresult *res); PQnoticeReceiver PQsetNoticeReceiver(PGconn *conn, PQnoticeReceiver proc, void *arg); typedef void (*PQnoticeProcessor) (void *arg, const char *message); PQnoticeProcessor PQsetNoticeProcessor(PGconn *conn, PQnoticeProcessor proc, void *arg);
��Щ����������ǰһ��ע����Ϣ���������ߴ���������ָ�룬Ȼ�������µ���ֵ�� ������ṩһ���պ���ָ�룬��ô�Ͳ���ִ���κζ��������Ƿ��ص�ǰָ�롣
�����Ǵӷ�������ȡһ��ע����߾�����Ϣ��ʱ�������յ� libpq �ڲ����ɵ�������Ϣʱ��ע����Ϣ�����������������á���Ϣ����һ�� PGRES_NONFATAL_ERROR �� PGresult ����ʽ���ݡ�����������������PQresultErrorField��ȡ�������ֶΣ� ������ PQresultErrorMessage ���Ԥ�ȸ�ʽ���õ���Ϣ���� ���ݸ� PQsetNoticeReceiver ��ͬһ�� void ָ��Ҳͬ�����ݸ��ú����� ����Ҫʱ�����ָ�������������Ӧ����ص�״̬����
ȱʡ��ע����Ϣ������ֻ�Ǽij�ȡ��Ϣ��ʹ�� PQresultErrorMessage��Ȼ�ݸ�ע����Ϣ��������
ע����Ϣ������������һ�����ı���ʽ������ע����߾�����Ϣ�� ϵͳ���ݸ�����Ϣ���ִ��ı���������β�����з���������һ���ʹ��ݸ� PQsetNoticeProcessor һ���� void �������ͣ�ָ�롣����Ҫʱ�����ָ�������������Ӧ����ص�״̬����
ȱʡ��ע����Ϣ����������
static void defaultNoticeProcessor(void *arg, const char *message) { fprintf(stderr, "%s", message); }
һ����������ע����Ϣ���������ߴ���������ô���Ӧ�������� PGconn ������� PGresult ����ʼ���ڵ�ʱ��������˵������ǡ��ڴ��� PGresult ��ʱ�� PGconn �ĵ�ǰע����Ϣ����ָ�뱻������ PGresult���Ա㱻���� PQgetvalue �����ĺ���ʹ�á�