SQL$HELP72.HLB  —  DISCONNECT  Examples
    Example 1: Using the DISCONNECT statement in interactive SQL

    This example in interactive SQL illustrates that the DISCONNECT
    statement lets you attach a database with the same alias as a
    previously attached database (in this example the alias is the
    default). Use the SHOW DATABASE statement to see the database
    settings.

    SQL> ATTACH 'FILENAME mypers';
    SQL> --
    SQL> ATTACH 'FILENAME mypers';
    This alias has already been declared.
    Would you like to override this declaration (No)? no
    %SQL-F-DEFDBDEC, A database has already been declared with the default alias
    SQL> DISCONNECT DEFAULT;
    SQL> ATTACH 'FILENAME mypers';

    Example 2: Using the DISCONNECT statement in precompiled SQL

    This example is taken from the sample program sql_connections.sc.
    To use connections in a program, you must specify the
    SQLOPTIONS=(CONNECT) qualifier on the precompiler command
    line. This example shows an EXEC SQL DISCONNECT statement that
    specifies the string literal 'al' for the connection-name and
    EXEC SQL DISCONNECT statements that specify the keywords ALL and
    DEFAULT.

    #include <stdio.h>
    #include <string.h>
    #include <descrip.h>

    char   employee_id1[6];
    char   last_name1[16];
    char   employee_id2[16];
    char   degree[14];
    char   employee_id3[16];
    char   supervisor[6];
    char   employee_id4[6];
    char   last_name4[15];

    void sys$putmsg();

     EXEC SQL INCLUDE SQLCA;
     EXEC SQL declare         alias filename personnel;
     EXEC SQL declare alias_1 alias filename personnel;
     EXEC SQL declare alias_2 alias filename personnel;
     EXEC SQL declare alias_3 alias filename personnel;
     main()

     {
      printf("\n\n\n******* Disconnect from default ***************\n");
      EXEC SQL disconnect default;
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     printf("\n\n\n");

     printf("********* Establish CONNECTION 1 **********\n");

     EXEC SQL connect to 'alias alias_1 filename personnel' as 'a1';
     if (SQLCA.SQLCODE !=  0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("********* Insert a record  **********\n");

     EXEC SQL insert into alias_1.employees (employee_id, last_name)
     values ('00301','FELDMAN');
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("********* Retrieve the record  **********\n");
     EXEC SQL select employee_id, last_name into :employee_id1,
     :last_name1 from alias_1.employees where employee_id = '00301';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     printf("\n\n\n");
     printf ("Employee_id = %s\n",employee_id1);
     printf ("Last_name   = %s\n",last_name1);
     printf("\n\n\n");

     printf("********* Establish CONNECTION 2 **********\n");
     EXEC SQL connect to 'alias alias_2 filename personnel' as 'a2';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("********* Insert a record  **********\n");
     EXEC SQL insert into alias_2.degrees (employee_id, degree_field)
     values ('00901','MASTERS');
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("********* Retrieve the record  **********\n");
     EXEC SQL select employee_id, degree_field into :employee_id2,
     :degree from alias_2.degrees where employee_id = '00901';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     printf("\n\n\n");
     printf("Employee-id  = %s\n",employee_id2);
     printf("Degree       = %s\n",degree);
     printf("\n\n\n");

     printf("********* Establish CONNECTION 3 **********\n");
     EXEC SQL connect to 'alias alias_3 filename personnel' as 'a3';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("********* Insert a record  **********\n");
     EXEC SQL insert into alias_3.job_history (employee_id, supervisor_id)
     values ('01501','Brown');
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("********* Retrieve the record  **********\n");
     EXEC SQL select employee_id, supervisor_id into :employee_id3,
     :supervisor from alias_3.job_history where employee_id = '01501';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     printf("\n\n\n");
     printf("Employee-id  = %s\n",employee_id3);
     printf("Supervisor   = %s\n ",supervisor);
     printf("\n\n\n");

     printf("********* Establish CONNECTION DEFAULT **********\n");
     EXEC SQL set connect default ;
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("********* Retrieve record with id 00164 **********\n");
     EXEC SQL select employee_id, last_name into :employee_id4,
     :last_name4 from employees where employee_id = '00164';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     printf("\n\n\n");
     printf("Employee_id  = %s\n",employee_id4);
     printf("Last_name    = %s\n",last_name4);
     printf("\n\n\n");

     printf("**** DISCONNECT, RECONNECT & TRY TO FIND RECORD *****\n");
     strcpy(employee_id1,"     ");
     strcpy(last_name1,"              ");
     EXEC SQL disconnect 'a1';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     EXEC SQL connect to 'alias alias_1 filename personnel' as 'a1';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     printf("********* Retrieve the record  **********\n");
     EXEC SQL select employee_id, last_name into :employee_id1,
     :last_name1 from alias_1.employees where employee_id = '00301';
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);

     printf("************** SHOULD DISPLAY NO RECORD **************\n");
     printf("\n\n\n");
     printf("employee_id = %s\n",employee_id1);
     printf("last_name   = %s\n",last_name1);
     printf("\n\n\n");
      printf("*************** DISCONNECT ALL CONNECTIONS ***************\n");
     EXEC SQL disconnect all;
      if (SQLCA.SQLCODE != 0) SYS$PUTMSG(&RDB$MESSAGE_VECTOR,0,0,0);
     EXEC SQL rollback;
    }
Close Help