/*******************************************************************************
**
** Source File Name = dbnative.c
**
** Licensed Materials - Property of IBM
**
** (C) COPYRIGHT International Business Machines Corp. 1995, 2000
** All Rights Reserved.
**
** US Government Users Restricted Rights - Use, duplication or
** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
**
**
** PURPOSE :
** Translates a statement that contains an ODBC escape clause
** to a data source specific format.
**
** For more information about these samples see the README file.
**
** For more information on programming in CLI see the:
** - "Building CLI Applications" section of the Application Building Guide, and the
** - CLI Guide and Reference.
**
** For more information on the SQL language see the SQL Reference.
**
*******************************************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlcli1.h>
#include "utilcli.h" /* Header file for CLI sample code */
/*******************************************************************
** main
*******************************************************************/
int main( int argc, char * argv[] )
{ SQLRETURN sqlrc = SQL_SUCCESS;
int rc = 0;
SQLHANDLE henv; /* environment handle */
SQLHANDLE hdbc; /* connection handle */
SQLCHAR inODBCStmt[] =
"SELECT * FROM employee WHERE hiredate={d '1994-03-29'}" ;
SQLCHAR odbcEscapeClause[] = "{d '1994-03-29'}" ;
SQLCHAR outDbStmt[1024] ;
SQLINTEGER dbStmtLen ;
char dbAlias[SQL_MAX_DSN_LENGTH + 1] ;
char user[MAX_UID_LENGTH + 1] ;
char pswd[MAX_PWD_LENGTH + 1] ;
/* checks the command line arguments */
rc = CmdLineArgsCheck1( argc, argv, dbAlias, user, pswd );
if ( rc != 0 ) return( rc ) ;
printf("\n\nDATABASES: TRANSLATING A STATEMENT THAT\n");
printf(" CONTAINS AN ODBC ESCAPE CLAUSE\n");
printf(" TO A DATA SOURCE SPECIFIC FORMAT.\n");
/* initialize the CLI application */
rc = CLIAppInit( dbAlias, user, pswd, &henv, &hdbc,
(SQLPOINTER)SQL_AUTOCOMMIT_ON);
if ( rc != 0 ) return( rc ) ;
printf("\nUSE THE CLI FUNCTION\n");
printf("-SQLNativeSql\n");
printf("TO :\n");
printf("\n translate the statement\n");
printf(" %s\n", inODBCStmt);
printf(" that contains the ODBC escape clause %s\n", odbcEscapeClause);
printf(" to a data source specific format.\n");
/*--> 00000630.snippet */
SQLNativeSql(hdbc, inODBCStmt, SQL_NTS, outDbStmt, 1024, &dbStmtLen);
HANDLE_CHECK( SQL_HANDLE_DBC, hdbc, sqlrc, &henv, &hdbc ) ;
if ( dbStmtLen == SQL_NULL_DATA ) printf( "Invalid ODBC statement\n" ) ;
else {
printf( "\n the data source specific format is:\n %s\n", outDbStmt);
}
/* 00000630.snippet <--*/
/* terminate the CLI application */
rc = CLIAppTerm( &henv, &hdbc, dbAlias);
return( rc ) ;
} /* end main */