/* 'INTEGER OUT,INTEGER OUT', */
/* 0,' ','M','N','N'); */
/*********************************************************************/
#pragma runopts(plist(os))
#include <stdlib.h>
#include <stdio.h>
EXEC SQL INCLUDE SQLCA;
int main(int argc,char *argv??(??))
{
*(int *)argv??(2??)=printf("S010 begin.\n");
EXEC SQL DROP TABLE U;
*(int *)argv??(1??)=sqlca.sqlcode;
printf("S010 end.\n");
}
/**********************************************************/
/* S011 */
/* Пример CAF приложения с явным обращением к */
/* модулю DSNALI */
/**********************************************************/
#include <stdlib.h>
#include <stdio.h>
extern "OS" {int DSNALI(char * functn,...); }
EXEC SQL INCLUDE SQLCA;
int main(void)
{
EXEC SQL BEGIN DECLARE SECTION;
char functn??(13??);
char ssid??(5??);
char planname??(9??);
char termop??(5??);
int tecb=0;
int secb=0;
int ribptr;
int retcode;
int reascode;
char srdura??(11??);
int eibptr;
int fnret;
EXEC SQL END DECLARE SECTION;
strcpy(functn,"CONNECT ");
strcpy(ssid,"DB2 ");
strcpy(srdura,"SRDURA(CD)");
printf("\nCONNECT\n");
fnret=DSNALI(&functn??(0??),&ssid??(0??),&tecb,&secb,&ribptr,
&retcode,&reascode,&srdura??(0??),&eibptr);
printf("fnret=%d retcode=%d reascode=%d\n",fnret,retcode,reascode);
printf("\nOPEN\n");
strcpy(functn,"OPEN ");
strcpy(ssid,"DB2 ");
strcpy(planname,"ALIPLAN ");
fnret=DSNALI(&functn??(0??),&ssid??(0??),&planname??(0??),
&retcode,&reascode);
printf("fnret=%d retcode=%d reascode=%d\n",fnret,retcode,reascode);
printf("\nDROP TABLE U\n");
EXEC SQL DROP TABLE U;
if (sqlca.sqlcode != 0)
{
printf("ERROR - SQL code returned non-zero for "
"DROP TABLE U, received %d\n",sqlca.sqlcode);
return (-1);
}
printf("\nCLOSE\n");
strcpy(functn,"CLOSE ");
strcpy(termop,"SYNC");
fnret=DSNALI(&functn??(0??),&termop??(0??),&retcode,&reascode);
printf("fnret=%d retcode=%d reascode=%d\n",fnret,retcode,reascode);
printf("\nDISCONNECT\n");
strcpy(functn,"DISCONNECT ");
fnret=DSNALI(&functn??(0??),&retcode,&reascode);
printf("fnret=%d retcode=%d reascode=%d\n",fnret,retcode,reascode);
return 0;
}
/**************************************************************/
/* S012 */
/* Пример использования модуля DSNTIAR для формирования */
/* сообщения об ошибке выполнения SQL запроса */
/**************************************************************/
#include <stdlib.h>
#include <stdio.h>
#define data_len 78
#define data_dim 10
struct message
{
short int error_len;
char error_text??(data_dim??)??(data_len??);
};
extern "OS"
{
short dsntiar(struct sqlca*,struct message*,int*);
}
EXEC SQL INCLUDE SQLCA;
int main(void)
{
int lrecl;
short rc;
struct message message = {data_dim * data_len};
lrecl=data_len;
EXEC SQL INSERT INTO TABLE VALUES ('HELLO WORLD');
rc = dsntiar(&sqlca, &message, &lrecl);
printf("\n%s",message.error_text??(0??));
printf("\nrc=%d\n",rc);
return 0;
}
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.