windows-nt/Source/XPSP1/NT/multimedia/media/deluxecd/cdopt/sqlobj.h
2020-09-26 16:20:57 +08:00

107 lines
6.1 KiB
C++

///////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// SQLOBJ.H
//
// Defines the SQL Wrapper object
//
// Copyright (c) Microsoft Corporation 1998
//
// protect us from the DLL's not being present and to allow us to run.
// got to be a simplier solution.
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef _SQLOBJ_HEADER_
#define _SQLOBJ_HEADER_
#include <odbcinst.h>
#include <sqlext.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef BOOL (INSTAPI * SQ_CONFIGDATASOURCE) (HWND,WORD,LPCTSTR, LPCTSTR);
typedef SQLRETURN (SQL_API * SQ_SETPOS) (SQLHSTMT,SQLUSMALLINT,SQLUSMALLINT,SQLUSMALLINT);
typedef SQLRETURN (SQL_API * SQ_EXTENDEDFETCH) (SQLHSTMT,SQLUSMALLINT,SQLINTEGER,SQLUINTEGER *,SQLUSMALLINT *);
typedef SQLRETURN (SQL_API * SQ_FREESTMT) (SQLHSTMT,SQLUSMALLINT);
typedef SQLRETURN (SQL_API * SQ_EXECDIRECT) (SQLHSTMT,SQLCHAR *,SQLINTEGER);
typedef SQLRETURN (SQL_API * SQ_SETSTMTOPTION) (SQLHSTMT,SQLUSMALLINT,SQLUINTEGER);
typedef SQLRETURN (SQL_API * SQ_BINDCOL) (SQLHSTMT,SQLUSMALLINT,SQLSMALLINT,SQLPOINTER,SQLINTEGER,SQLINTEGER *);
typedef SQLRETURN (SQL_API * SQ_ERROR) (SQLHENV,SQLHDBC,SQLHSTMT,SQLCHAR *,SQLINTEGER *,SQLCHAR *,SQLSMALLINT,SQLSMALLINT *);
typedef SQLRETURN (SQL_API * SQ_ALLOCSTMT) (SQLHDBC,SQLHSTMT *);
typedef SQLRETURN (SQL_API * SQ_FREECONNECT) (SQLHDBC);
typedef SQLRETURN (SQL_API * SQ_FREEENV) (SQLHENV);
typedef SQLRETURN (SQL_API * SQ_DISCONNECT) (SQLHDBC);
typedef SQLRETURN (SQL_API * SQ_CONNECT) (SQLHDBC,SQLCHAR *,SQLSMALLINT,SQLCHAR *,SQLSMALLINT,SQLCHAR *,SQLSMALLINT);
typedef SQLRETURN (SQL_API * SQ_ALLOCCONNECT) (SQLHENV,SQLHDBC *);
typedef SQLRETURN (SQL_API * SQ_ALLOCENV) (SQLHENV *);
typedef SQLRETURN (SQL_API * SQ_SETCONNECTOPTION) (SQLHDBC,SQLUSMALLINT,SQLUINTEGER);
typedef SQLRETURN (SQL_API * SQ_TRANSACT) (SQLHENV,SQLHDBC,SQLUSMALLINT);
typedef SQLRETURN (SQL_API * SQ_FETCH) (SQLHSTMT);
typedef SQLRETURN (SQL_API * SQ_STATISTICS) (SQLHSTMT,SQLCHAR *,SQLSMALLINT,SQLCHAR *,SQLSMALLINT,SQLCHAR *,SQLSMALLINT,SQLUSMALLINT,SQLUSMALLINT);
typedef SQLRETURN (SQL_API * SQ_DESCRIBECOL) (SQLHSTMT,SQLSMALLINT,SQLCHAR *,SQLSMALLINT,SQLSMALLINT *,SQLSMALLINT *,SQLUINTEGER *,SQLSMALLINT *,SQLSMALLINT *);
class SQL
{
public:
SQL();
~SQL();
BOOL Initialize(void);
BOOL INSTAPI ConfigDataSource(HWND hwndParent, WORD fRequest,LPCTSTR lpszDriver, LPCTSTR lpszAttributes);
SQLRETURN SQL_API SetPos( SQLHSTMT hstmt, SQLUSMALLINT irow, SQLUSMALLINT fOption, SQLUSMALLINT fLock);
SQLRETURN SQL_API ExtendedFetch( SQLHSTMT hstmt, SQLUSMALLINT fFetchType, SQLINTEGER irow, SQLUINTEGER *pcrow, SQLUSMALLINT *rgfRowStatus);
SQLRETURN SQL_API FreeStmt(SQLHSTMT StatementHandle, SQLUSMALLINT Option);
SQLRETURN SQL_API ExecDirect(SQLHSTMT StatementHandle, SQLCHAR *StatementText, SQLINTEGER TextLength);
SQLRETURN SQL_API SetStmtOption(SQLHSTMT StatementHandle, SQLUSMALLINT Option, SQLUINTEGER Value);
SQLRETURN SQL_API BindCol(SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValue, SQLINTEGER BufferLength, SQLINTEGER *StrLen_or_Ind);
SQLRETURN SQL_API Error(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle, SQLCHAR *Sqlstate, SQLINTEGER *NativeError, SQLCHAR *MessageText, SQLSMALLINT BufferLength, SQLSMALLINT *TextLength);
SQLRETURN SQL_API AllocStmt(SQLHDBC ConnectionHandle, SQLHSTMT *StatementHandle);
SQLRETURN SQL_API FreeConnect(SQLHDBC ConnectionHandle);
SQLRETURN SQL_API FreeEnv(SQLHENV EnvironmentHandle);
SQLRETURN SQL_API Disconnect(SQLHDBC ConnectionHandle);
SQLRETURN SQL_API Connect(SQLHDBC ConnectionHandle, SQLCHAR *ServerName, SQLSMALLINT NameLength1, SQLCHAR *UserName, SQLSMALLINT NameLength2, SQLCHAR *Authentication, SQLSMALLINT NameLength3);
SQLRETURN SQL_API AllocConnect(SQLHENV EnvironmentHandle, SQLHDBC *ConnectionHandle);
SQLRETURN SQL_API AllocEnv(SQLHENV *EnvironmentHandle);
SQLRETURN SQL_API SetConnectOption(SQLHDBC ConnectionHandle, SQLUSMALLINT Option, SQLUINTEGER Value);
SQLRETURN SQL_API Transact(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType);
SQLRETURN SQL_API Fetch(SQLHSTMT StatementHandle);
SQLRETURN SQL_API Statistics(SQLHSTMT StatementHandle, SQLCHAR *CatalogName, SQLSMALLINT NameLength1, SQLCHAR *SchemaName, SQLSMALLINT NameLength2, SQLCHAR *TableName, SQLSMALLINT NameLength3, SQLUSMALLINT Unique, SQLUSMALLINT Reserved);
SQLRETURN SQL_API DescribeCol(SQLHSTMT StatementHandle, SQLSMALLINT ColumnNumber, SQLCHAR * ColumnName, SQLSMALLINT BufferLength, SQLSMALLINT * NameLengthPtr, SQLSMALLINT * DataTypePtr, SQLUINTEGER * ColumnSizePtr, SQLSMALLINT * DecimalDigitsPtr, SQLSMALLINT * NullablePtr);
private:
HMODULE m_hODBC;
HMODULE m_hODBCCP;
SQ_CONFIGDATASOURCE m_pfnConfigDataSource;
SQ_SETPOS m_pfnSetPos;
SQ_EXTENDEDFETCH m_pfnExtendedFetch;
SQ_FREESTMT m_pfnFreeStmt;
SQ_EXECDIRECT m_pfnExecDirect;
SQ_SETSTMTOPTION m_pfnSetStmtOption;
SQ_BINDCOL m_pfnBindCol;
SQ_ERROR m_pfnError;
SQ_ALLOCSTMT m_pfnAllocStmt;
SQ_FREECONNECT m_pfnFreeConnect;
SQ_FREEENV m_pfnFreeEnv;
SQ_DISCONNECT m_pfnDisconnect;
SQ_CONNECT m_pfnConnect;
SQ_ALLOCCONNECT m_pfnAllocConnect;
SQ_ALLOCENV m_pfnAllocEnv;
SQ_SETCONNECTOPTION m_pfnSetConnectOption;
SQ_TRANSACT m_pfnTransact;
SQ_FETCH m_pfnFetch;
SQ_STATISTICS m_pfnStatistics;
SQ_DESCRIBECOL m_pfnDescribeCol;
};
#ifdef __cplusplus
};
#endif
#endif //_SQLOBJ_HEADER_