contentsconceptssyntaxlibrariessampleserrorsindex
Full text search
ODBC connection information, options, and attributes  
Introduction: ODBC connections  

Sample


The following code retrieves ODBC connection information. The first part allocates the environment and connection handles, then defines the streams used to retrieve the connection information.


  local SQL_Handle_type EnvironmentHandle
  local SQL_Handle_type ConnectionHandle
  local SQL_Handle_type StatementHandle
  local SQL_Vector_type Vector
  local stream DataType
  local counter StringLen
  local counter RetCode

  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

  set RetCode to SQLAllocHandle
     ( SQL_HANDLE_DBC, EnvironmentHandle, ConnectionHandle )
  output "Allocating connection handle - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  set RetCode to SQLConnect( ConnectionHandle, "omodbc", 20, "", 0, "", 0 )
  output "Connecting to database - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  SQLSetVectorSize( Vector, 1024 )
  set RetCode to SQLGetInfo
     ( ConnectionHandle, SQL_DRIVER_ODBC_VER, Vector, 1024,
       StringLen )
  output "Getting info - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     output "- Driver's odbc version = " || SQLGetVectorAsString(Vector) || "%n"
  done

  set RetCode to SQLDisconnect( ConnectionHandle )
  output "Disconnecting from database - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  set RetCode to SQLFreeHandle(SQL_HANDLE_DBC, ConnectionHandle)
  output "Freeing connection handle resources - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  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

The following code sets ODBC connection options. The first part allocates the environment and connection handles, then defines the streams that will contain the information used to set the connection options.


  local SQL_Handle_type EnvironmentHandle
  local SQL_Handle_type ConnectionHandle
  local SQL_Vector_type ConAttr
  local counter CounterVal
  local counter RetCode

  SQLSetVectorSize( ConAttr, SQL_MAX_OPTION_STRING_LENGTH )

  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

  set RetCode to SQLAllocHandle
     ( SQL_HANDLE_DBC, EnvironmentHandle, ConnectionHandle )
  output "Allocating connection handle - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

The next part gets and sets the various ODBC connection options, then frees the connection and environment handles.


  set RetCode to SQLGetConnectOption
          (       ConnectionHandle,
                  SQL_OPT_TRACEFILE,
                  ConAttr
          )
  output "Getting connection option - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     output "- Trace file = " || SQLGetVectorAsString(ConAttr) || "%n"
  done

  SQLSetVectorAsString( ConAttr, "\NEWSQL.LOG" )
  set RetCode to SQLSetConnectOption
          (       ConnectionHandle,
                  SQL_OPT_TRACEFILE,
                  ConAttr,
                  SQL_CHAR
          )
  output "Setting connection option - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  set RetCode to SQLGetConnectOption
          (       ConnectionHandle,
                  SQL_OPT_TRACEFILE,
                  ConAttr
          )
  output "Getting connection option - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     output "- Trace file = " || SQLGetVectorAsString(ConAttr) || "%n"
  done

  set RetCode to SQLGetConnectOption
          (       ConnectionHandle,
                  SQL_ACCESS_MODE,
                  ConAttr
          )
  output "Getting connection option - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     set CounterVal to SQLGetVectorAsCounter( ConAttr )
     output "- Access mode = %d(CounterVal)%n"
  done

  SQLSetVectorAsCounter( ConAttr, SQL_MODE_READ_ONLY )
  set RetCode to SQLSetConnectOption
          (       ConnectionHandle,
                  SQL_ACCESS_MODE,
                  ConAttr,
                  SQL_INTEGER
          )
  output "Setting connection option - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  set RetCode to SQLGetConnectOption
          (       ConnectionHandle,
                  SQL_ACCESS_MODE,
                  ConAttr
          )
  output "Getting connection option - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     set CounterVal to SQLGetVectorAsCounter( ConAttr )
     output "- Access mode = %d(CounterVal)%n"
  done

  set RetCode to SQLFreeHandle(SQL_HANDLE_DBC, ConnectionHandle)
  output "Freeing connection handle resources - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  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

The following code sets ODBC connection attributes. The first part allocates the environment and connection handles, then defines the streams that will contain the information used to set the connection attributes.


  local SQL_Handle_type EnvironmentHandle
  local SQL_Handle_type ConnectionHandle
  local SQL_Vector_type ConAttr
  local counter StringLen
  local counter CounterVal
  local counter RetCode

  SQLSetVectorSize( ConAttr, 100 )

  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

  set RetCode to SQLAllocHandle
     ( SQL_HANDLE_DBC, EnvironmentHandle, ConnectionHandle )
  output "Allocating connection handle - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

The following code gets and sets the various ODBC connection attributes, then frees the connection and environment handles.


  set RetCode to SQLGetConnectAttr
          (       ConnectionHandle,
                  SQL_ATTR_ACCESS_MODE,
                  ConAttr,
                  100,
                  StringLen
          )
  output "Getting connection attribute - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     set CounterVal to SQLGetVectorAsCounter( ConAttr )
     output "- Access mode = %d(CounterVal)%n"
  done

  SQLSetVectorAsCounter( ConAttr, SQL_MODE_READ_ONLY )
  set RetCode to SQLSetConnectAttr
          (       ConnectionHandle,
                  SQL_ATTR_ACCESS_MODE,
                  ConAttr,
                  100,
                  SQL_INTEGER
          )
  output "Setting connection attribute - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  set RetCode to SQLGetConnectAttr
          (       ConnectionHandle,
                  SQL_ATTR_ACCESS_MODE,
                  ConAttr,
                  100,
                  StringLen
          )
  output "Getting connection attribute - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     set CounterVal to SQLGetVectorAsCounter( ConAttr )
     output "- Access mode = %d(CounterVal)%n"
  done

  set RetCode to SQLGetConnectAttr
          (       ConnectionHandle,
                  SQL_ATTR_TRACEFILE,
                  ConAttr,
                  100,
                  StringLen
          )
  output "Getting connection attribute - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     output "- Trace file = " || SQLGetVectorAsString(ConAttr) || "%n"
  done

  SQLSetVectorAsString( ConAttr, "\NEWSQL.LOG" )
  set RetCode to SQLSetConnectAttr
          (       ConnectionHandle,
                  SQL_ATTR_TRACEFILE,
                  ConAttr,
                  100,
                  SQL_CHAR
          )
  output "Setting connection attribute - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  set RetCode to SQLGetConnectAttr
          (       ConnectionHandle,
                  SQL_ATTR_TRACEFILE,
                  ConAttr,
                  100,
                  StringLen
          )
  output "Getting connection attribute - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
     output "- Trace file = " || SQLGetVectorAsString(ConAttr) || "%n"
  done

  set RetCode to SQLFreeHandle(SQL_HANDLE_DBC, ConnectionHandle)
  output "Freeing connection handle resources - "
  do when RetCode != SQL_SUCCESS
     output "failed%n"
     halt with 1
  else
     output "passed%n"
  done

  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

 
----  

Top [CONTENTS] [CONCEPTS] [SYNTAX] [LIBRARIES] [SAMPLES] [ERRORS] [INDEX]

Generated: April 21, 1999 at 2:01:43 pm
If you have any comments about this section of the documentation, send email to [email protected]

Copyright © OmniMark Technologies Corporation, 1988-1999.