|
|||||
Retrieving ODBC driver and data source information | |||||
Introduction: ODBC connections |
Sample
When retrieving ODBC driver and data source information, you must allocate the environment handle, then identify the stream and counter shelves that will store this information.
local SQL_Handle_type EnvironmentHandle local counter RetCode local stream String1 local stream String2 local counter StringLen1 local counter StringLen2 local counter Direction set RetCode to SQLAllocEnv(EnvironmentHandle) output "Allocating environment handle - " do when RetCode != SQL_SUCCESS output "failed%n" halt with 1 else output "passed%n" done
The ODBC functions SQL_FETCH_FIRST and SQL_FETCH_NEXT are used by SQLDrivers to fetch the "first" (the search starts from the beginning of the list) or "next" driver description in the list.
set Direction to SQL_FETCH_FIRST output "Retrieving driver information - " repeat set RetCode to SQLDrivers ( EnvironmentHandle, Direction, String1, 1024, StringLen1, String2, 1024, StringLen2 ) do when RetCode != SQL_SUCCESS output "failed%n" when Direction=SQL_FETCH_FIRST exit else do when Direction=SQL_FETCH_FIRST output "passed%n" set Direction to SQL_FETCH_NEXT done output "- %g(String1)(%d(StringLen1)) => (%d(StringLen2))%n" done again
The ODBC functions SQL_FETCH_FIRST and SQL_FETCH_NEXT are used by SQLDataSources to return information about the data source.
set Direction to SQL_FETCH_FIRST output "Retrieving data source information - " repeat set RetCode to SQLDataSources ( EnvironmentHandle, Direction, String1, 1024, StringLen1, String2, 1024, StringLen2 ) do when RetCode != SQL_SUCCESS output "failed%n" when Direction=SQL_FETCH_FIRST exit else do when Direction=SQL_FETCH_FIRST output "passed%n" set Direction to SQL_FETCH_NEXT done output "- %g(String1)(%d(StringLen1)) => (%d(StringLen2))%n" done again
When you've finished retrieving driver and data source information, remember to free environment handle resources.
set RetCode to SQLFreeHandle(SQL_HANDLE_ENV, EnvironmentHandle) output "Freeing environment handle resources - " do when RetCode != SQL_SUCCESS output "failed%n" halt with 1 else output "passed%n" done
---- |