PostgreSQL 8.0.0 �����ĵ���PostgreSQL �й� ������ | ||||
---|---|---|---|---|
Prev | Fast Backward | Chapter 29. ecpg - �� C ��Ƕ�� SQL | Fast Forward | Next |
��һ�ڽ��� ECPG ���ڲ��������ת�ġ���Щ��Ϣ��ʱ��������û�������ʹ�� ECPG��
ecpg д��������ͷ�����ǹ̶����С� ������ע�ͣ��������������ӿڵı�Ҫ��ͷ�ļ��С� Ȼ��Ԥ��������ȡ�ļ�����д�������ͨ����ֻ�ǰ����ж��������Ե������ȥ��
���������һ�� EXEC SQL ��䣬 ���ͱ任���������������� EXEC SQL ��ͷ�� �� ; ��β���������м�Ķ�����������һ�� SQL ��䲢�ҽ��б��������Ľ�����
���һ��������һ��ð�ţ�:����ͷ���������������� Ԥ��������ǰ��� EXEC SQL DECLARE ���������ı������ҳ������ֵı�����
����������Ҫ�ĺ����� ECPGdo��������ִ�д������� �����ܱ�Ԫ�IJ�����������Щ�����ĸ������ܺ����״ﵽ 50 �����߸��࣬����ϣ�����κ�ƽ̨���ⶼ�������⡣
�����ǣ�
����ԭʼ�е��кţ�ֻ���ڴ�����Ϣ��ʹ�á�
����Ҫ������ SQL ���������������ģ�Ҳ����˵�� �ڱ���ʱδ֪�ģ�������Ҫ���뵽�����еı������ڷű����ĵط����ִ����� ?��
ÿ���������������ʮ�����������ɡ��������ġ���
һ�� enum����������û�и�����������ˡ�
ÿ�������������ʮ�������Ĵ������������ġ��� ��Щ��������Щ������䡣
һ��ָ��û�и�������� enum��
����ÿ������ SQL ����һ���ֵı����� ���������ʮ��������
һ�������������͵�������š�
һ��ָ������ֵ��ָ�룬����һ��ָ��ָ���ָ�롣
��������� char ���� varchar�����DZ����Ĵ�С��
�����е�Ԫ�ظ���������ץȡ���飩��
ָ����������һ��Ԫ�ص�ƫ����������ץȡ���飩��
��һ��������ű�ʾ��ָʾ�����������͡�
һ��ָ��ָʾ��������ָ�롣
0
ָʾ�������е�Ԫ�ظ���������ץȡ���飩��
ָ��ָʾ���������һ��Ԫ�ص�ƫ����������ץȡ���飩��
��ע�⣬�������� SQL �����ô�Դ������磬һ�������������Ĵ��α����䣺
EXEC SQL OPEN cursor;
���ᱻ����������С�����ʹ���α�� DECLARE ��� ��Ϊ��ͬ��Ҳ���αꡣ
������һ�����������ӣ��������ļ� foo.pgc �����ڱ����������������ϸ�ڿ�������ÿ����ͬ��Ԥ�������汾���仯����
EXEC SQL BEGIN DECLARE SECTION; int index; int result; EXEC SQL END DECLARE SECTION; ... EXEC SQL SELECT res INTO :result FROM mytable WHERE index = :index;
is translated into:
/* Processed by ecpg (2.6.0) */ /* These two include files are added by the preprocessor */ #include <ecpgtype.h>; #include <ecpglib.h>; /* exec sql begin declare section */ #line 1 "foo.pgc" int index; int result; /* exec sql end declare section */ ... ECPGdo(__LINE__, NULL, "SELECT res FROM mytable WHERE index = ? ", ECPGt_int,&(index),1L,1L,sizeof(int), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EOIT, ECPGt_int,&(result),1L,1L,sizeof(int), ECPGt_NO_INDICATOR, NULL , 0L, 0L, 0L, ECPGt_EORT); #line 147 "foo.pgc"
������Ķ���������Ϊ����ǿ�ɶ��Լӵģ��ɲ���Ԥ�������ܸɵ����顣��