29.13. �ڲ�

��һ�ڽ��� ECPG ���ڲ��������ת�ġ���Щ��Ϣ��ʱ����԰����û�������ʹ�� ECPG��

ecpg д��������ͷ�����ǹ̶����С� ������ע�ͣ��������������ӿڵı�Ҫ��ͷ�ļ��С� Ȼ��Ԥ��������ȡ�ļ�����д�������ͨ����ֻ�ǰ����ж��������Ե������ȥ��

���������һ�� EXEC SQL ��䣬 ���ͱ任�����޸����������� EXEC SQL ��ͷ�� �� ; ��β���������м�Ķ�����������һ�� SQL ��䲢�ҽ��б��������Ľ�����

���һ��������һ��ð�ţ�:����ͷ���������������� Ԥ��������ǰ��� EXEC SQL DECLARE ���������ı������ҳ������ֵı�����

����������Ҫ�ĺ����� ECPGdo��������ִ�д������� �����ܱ�Ԫ�IJ�����������Щ�����ĸ������ܺ����״ﵽ 50 �����߸��࣬����ϣ�����κ�ƽ̨���ⶼ�������⡣

�����ǣ�

һ���к�

����ԭʼ�е��кţ�ֻ���ڴ�����Ϣ��ʹ�á�

һ���ִ�

����Ҫ������ SQL ���������������޸ģ�Ҳ����˵�� �ڱ���ʱδ֪�ģ�������Ҫ���뵽�����еı������ڷű����ĵط����ִ����� ?��

�������

ÿ���������������ʮ�����������ɡ��������ġ���

ECPGt_EOIT

һ�� enum����������û�и�����������ˡ�

�������

ÿ�������������ʮ�������Ĵ������������ġ��� ��Щ��������Щ������䡣

ECPGt_EORT

һ��ָ��û�и�������� enum��

����ÿ������ SQL ����һ���ֵı����� ���������ʮ��������

  1. һ�������������͵�������š�

  2. һ��ָ������ֵ��ָ�룬����һ��ָ��ָ���ָ�롣

  3. ��������� char ���� varchar�����DZ����Ĵ�С��

  4. �����е�Ԫ�ظ���������ץȡ���飩��

  5. ָ����������һ��Ԫ�ص�ƫ����������ץȡ���飩��

  6. ��һ��������ű�ʾ��ָʾ�����������͡�

  7. һ��ָ��ָʾ��������ָ�롣

  8. 0

  9. ָʾ�������е�Ԫ�ظ���������ץȡ���飩��

  10. ָ��ָʾ���������һ��Ԫ�ص�ƫ����������ץȡ���飩��

��ע�⣬�������� 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"

������Ķ���������Ϊ����ǿ�ɶ��Լӵģ��ɲ���Ԥ�������ܸɵ����顣��