SQL QUERY DATASOURCES Statement |
|
< > Browse Statements Query Statements Example Flow Chart Table of Contents
The SQL QUERY DATASOURCES statement returns a result set that lists and describes the data sources currently available. The result set is identified by the query handle value that is returned.
QueryHandle (output). This argument must refer to a numeric integer data item with at least six digits of precision. The argument specifies the data item where the query handle value that identifies the data-sources query is to be stored.
A data-sources query is the only query that can be created without a prior connection being established by an SQL CONNECT DATASOURCE statement. The data source names returned in the result set of a data-sources query can be used in the SQL CONNECT DATASOURCE statement to establish a connection.
Valid query handle values returned by InstantSQL are in the range 1 through 9999. The application program may use the value zero in a query handle data item to indicate that the query has not been created or has been dropped.
After the SQL QUERY DATASOURCES statement is executed, SQL FETCH ROW statements can be executed to fetch the data source description rows. Each row describes one data source.
The SQL GET DATA statement can be used to transfer the data that describes the data source or the SQL BIND COLUMN statement can be used so that the data is transferred into COBOL data items as part of the SQL FETCH ROW statement.
The SQL START QUERY statement can be used with the returned query handle value to re-start the data-sources query from the beginning, if desired. The SQL QUERY DATASOURCES statement starts the data-sources query, so an initial SQL START QUERY statement is not required.
The SQL END QUERY statement can be used to end the data-sources query.
It is not possible to nest data-sources queries. If a data-sources query has been started and not yet dropped, a second SQL QUERY DATASOURCES statement will re-start the data-sources query from the beginning and return the same query handle value as the not yet dropped data-sources query.
A successful SQL QUERY DATASOURCES statement sets the type of the query identified by the value of the QueryHandle argument to sql-QryDataSources. (The type of a query can be obtained using the SQL DESCRIBE QUERY statement.)
A successful SQL QUERY DATASOURCES statement sets the status of the query identified by the value of the QueryHandle argument to sql-StatExecuting. (The current status of a query can be obtained using the SQL DESCRIBE QUERY statement.)
The columns in the result set for a data-sources query are as follows:
# |
Column Name |
Data Type |
Comments |
1 |
DATA_SOURCE_NAME |
Varchar(128) |
The
data source name. |
2 |
DRIVER_DESCRIPTION |
Varchar(255) |
Description
of the driver associated with the data source. For example, "Relativity (*.rcg)" or "SQL
Server". |
SQL
QUERY DATASOURCES Statement Example:
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID.
EX-QryDS.
000300
000400* InstantSQL Example - Query Data Sources.
000500
000600 ENVIRONMENT DIVISION.
000700
000800 DATA DIVISION.
000900 WORKING-STORAGE SECTION.
001000
001100 COPY "lisqlall.cpy".
001200
001300 01 DSNameLI PIC S9(9) BINARY.
001400 01 DSDescLI PIC S9(9) BINARY.
001500
001600 PROCEDURE DIVISION.
001700 BEGINNING.
001800
001900
SQL QUERY DATASOURCES
002000
sql-QueryHandle.
002100
002200
PERFORM WITH TEST AFTER UNTIL sql-EndOfData
002300
SQL FETCH ROW
002400
sql-QueryHandle
002500 IF sql-OK
002600
SQL GET DATA
002700
sql-QueryHandle,
002800
1, sql-DataSourceName, DSNameLI,
002900
2, sql-DataSourceDesc, DSDescLI
003000
IF sql-OK
003100
PERFORM DISPLAY-DATA-SOURCE
003200 END-IF
003300
END-IF
003400
END-PERFORM.
003500
003600
SQL END QUERY
003700
sql-QueryHandle.
003800
003900
SQL SHUTDOWN.
004000
004100
STOP RUN.
004200
004300
004400 DISPLAY-DATA-SOURCE.
004500
004600
DISPLAY " ".
004700
004800
DISPLAY "DSN =
""".
004900 IF
DSNameLI > 0
005000
IF DSNameLI >
005100
LENGTH OF sql-DataSourcename
005200
MOVE LENGTH OF sql-DataSourcename TO
005300
DSNameLI
005400
END-IF
005500
DISPLAY sql-DataSourceName(1:DSNameLI) COL 0
005600
END-IF.
005700
DISPLAY """" COL 0.
005800
005900
DISPLAY "DESC = """.
006000 IF
DSDescLI > 0
006100
IF DSDescLI >
006200
LENGTH OF sql-DataSourceDesc
006300
MOVE LENGTH OF sql-DataSourceDesc TO
006400
DSDescLI
006500
END-IF
006600
DISPLAY sql-DataSourceDesc(1:DSDescLI) COL 0
006700
END-IF.
006800
DISPLAY """" COL 0.
006900
007000 END PROGRAM EX-QryDS.
Copyright
©2000 Liant Software Corp. All rights
reserved.