2025-11-28 00:35:46 +09:00

9515 lines
239 KiB
C++

//--------------------------------------------------------------------
// Microsoft OLE DB Test
//
// Copyright (C) 1995-2000 Microsoft Corporation
//
// @doc
//
// @module SCALAR.CPP | SCALAR source file for all test modules.
//
#include "modstandard.hpp"
#define DBINITCONSTANTS // Must be defined to initialize constants in OLEDB.H
#define INITGUID
#include "SCALAR.h"
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Module Values
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// {{ TCW_MODULE_GLOBALS
DECLARE_MODULE_CLSID = { 0x61b3ef51, 0xe2e1, 0x11d1, { 0x92, 0xb5, 0x00, 0x60, 0x08, 0x93, 0xa2, 0xb2 }};
DECLARE_MODULE_NAME("Scalar");
DECLARE_MODULE_OWNER("Microsoft");
DECLARE_MODULE_DESCRIP("Tests ODBC Canonical functions");
DECLARE_MODULE_VERSION(795921705);
// }}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Globals
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CTable *g_pTable = NULL;
WCHAR g_wszScalarFmt[MAX_BUF];
//Check whether the provider is read only.
BOOL g_fReadOnlyProvider = FALSE;
typedef struct tagGlobalProviderInfo {
ULONG ulStringFuncs;
ULONG ulNumericFuncs;
ULONG ulSystemFuncs;
ULONG ulDateTimeFuncs;
ULONG ulOJSupport;
ULONG ulConvertInteger;
ULONG ulConvertTime;
ULONG ulConvertTimeStamp;
ULONG ulConvertLongVarBinary;
ULONG ulConvertLongVarChar;
ULONG ulConvertNumeric;
ULONG ulConvertReal;
ULONG ulConvertSmallint;
ULONG ulConvertTinyint;
ULONG ulConvertGuid;
ULONG ulConvertWchar;
ULONG ulConvertVarchar;
ULONG ulConvertDecimal;
ULONG ulConvertVarbinary;
ULONG ulConvertChar;
ULONG ulConvertWLongVarChar;
ULONG ulConvertWVarChar;
ULONG dwDBMSType;
ULONG wszDBMSName[50];
ULONG ulVersion;
} GlobalProviderInfo;
GlobalProviderInfo g_ProvInfo;
static void SetGlobalProviderInfo(GlobalProviderInfo *pProvInfo, int Provider);
BOOL CanUseScalarFunctions(IDBProperties *pIDBProperties)
{
ULONG cPropertyIDSets = 1;
ULONG cPropertySets = 0;
DBPROPSET *rgPropertySets=NULL;
DBPROPIDSET rgPropertyIDSets[1];
DBPROPID dbPropId[3] = { DBPROP_SQLSUPPORT, DBPROP_DBMSNAME, DBPROP_DBMSVER };
int i = 0;
BOOL fRet = FALSE;
static WCHAR *DBMSTargetList[] = {L"Microsoft SQL Server", L"Oracle", L"Access", 0};
ASSERT(pIDBProperties);
rgPropertyIDSets[0].guidPropertySet = DBPROPSET_DATASOURCEINFO;
rgPropertyIDSets[0].cPropertyIDs = NUMELEM(dbPropId);
rgPropertyIDSets[0].rgPropertyIDs = dbPropId;
HRESULT hr = pIDBProperties->GetProperties(cPropertyIDSets, rgPropertyIDSets, &cPropertySets, &rgPropertySets);
if( S_OK == hr )
{
if ((DBPROPVAL_SQL_ESCAPECLAUSES & rgPropertySets[0].rgProperties[0].vValue.iVal))
fRet = TRUE;
while ( DBMSTargetList[i] != NULL )
{
if ( 0 == _wcsicmp(DBMSTargetList[i], rgPropertySets->rgProperties[1].vValue.bstrVal ) )
{
g_ProvInfo.dwDBMSType = i;
wcsncpy((WCHAR *)g_ProvInfo.wszDBMSName, rgPropertySets->rgProperties[1].vValue.bstrVal, sizeof(g_ProvInfo.wszDBMSName)/sizeof(WCHAR));
g_ProvInfo.ulVersion = _wtol(rgPropertySets->rgProperties[2].vValue.bstrVal);
SetGlobalProviderInfo(&g_ProvInfo, i);
fRet = TRUE;
goto END;
}
i++;
}
}
END:
FreeProperties(&cPropertySets, &rgPropertySets);
return fRet;
}
static void SetGlobalProviderInfo(GlobalProviderInfo *pProvInfo, int Provider)
{
pProvInfo->dwDBMSType = Provider;
switch (Provider)
{
case DRVR_SQLSRVR:
if (pProvInfo->ulVersion <= 6)
{
pProvInfo->ulStringFuncs = SQL_FN_STR_CONCAT | SQL_FN_STR_INSERT | SQL_FN_STR_LEFT | SQL_FN_STR_LTRIM | SQL_FN_STR_LENGTH | SQL_FN_STR_LCASE | SQL_FN_STR_REPEAT | SQL_FN_STR_RIGHT | SQL_FN_STR_RTRIM | SQL_FN_STR_SUBSTRING | SQL_FN_STR_UCASE | SQL_FN_STR_ASCII | SQL_FN_STR_CHAR | SQL_FN_STR_DIFFERENCE | SQL_FN_STR_LOCATE_2 | SQL_FN_STR_SOUNDEX | SQL_FN_STR_SPACE | SQL_FN_STR_BIT_LENGTH | SQL_FN_STR_OCTET_LENGTH;
pProvInfo->ulNumericFuncs = SQL_FN_NUM_ABS | SQL_FN_NUM_ACOS | SQL_FN_NUM_ASIN | SQL_FN_NUM_ATAN | SQL_FN_NUM_ATAN2 | SQL_FN_NUM_CEILING | SQL_FN_NUM_COS | SQL_FN_NUM_COT | SQL_FN_NUM_EXP | SQL_FN_NUM_FLOOR | SQL_FN_NUM_LOG | SQL_FN_NUM_MOD | SQL_FN_NUM_SIGN | SQL_FN_NUM_SIN | SQL_FN_NUM_SQRT | SQL_FN_NUM_TAN | SQL_FN_NUM_PI | SQL_FN_NUM_RAND | SQL_FN_NUM_DEGREES | SQL_FN_NUM_LOG10 | SQL_FN_NUM_POWER | SQL_FN_NUM_RADIANS | SQL_FN_NUM_ROUND;
pProvInfo->ulSystemFuncs = SQL_FN_SYS_USERNAME | SQL_FN_SYS_DBNAME | SQL_FN_SYS_IFNULL;
pProvInfo->ulDateTimeFuncs = SQL_FN_TD_NOW | SQL_FN_TD_CURDATE | SQL_FN_TD_DAYOFMONTH | SQL_FN_TD_DAYOFWEEK | SQL_FN_TD_DAYOFYEAR | SQL_FN_TD_MONTH | SQL_FN_TD_QUARTER | SQL_FN_TD_WEEK | SQL_FN_TD_YEAR | SQL_FN_TD_CURTIME | SQL_FN_TD_HOUR | SQL_FN_TD_MINUTE | SQL_FN_TD_SECOND | SQL_FN_TD_TIMESTAMPADD | SQL_FN_TD_TIMESTAMPDIFF | SQL_FN_TD_DAYNAME | SQL_FN_TD_MONTHNAME | SQL_FN_TD_CURRENT_DATE | SQL_FN_TD_CURRENT_TIME | SQL_FN_TD_CURRENT_TIMESTAMP | SQL_FN_TD_EXTRACT;
pProvInfo->ulOJSupport = SQL_OJ_LEFT | SQL_OJ_RIGHT | SQL_OJ_FULL | SQL_OJ_NESTED | SQL_OJ_NOT_ORDERED | SQL_OJ_INNER | SQL_OJ_ALL_COMPARISON_OPS;
pProvInfo->ulConvertInteger = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT;
pProvInfo->ulConvertTime = 0;
pProvInfo->ulConvertTimeStamp = SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_TIMESTAMP;
pProvInfo->ulConvertLongVarBinary = SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_LONGVARBINARY;
pProvInfo->ulConvertLongVarChar = SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR;
pProvInfo->ulConvertNumeric = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT;
pProvInfo->ulConvertReal = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT;
pProvInfo->ulConvertSmallint = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT;
pProvInfo->ulConvertTinyint = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT;
pProvInfo->ulConvertGuid = 0;
pProvInfo->ulConvertWchar = 0;
pProvInfo->ulConvertVarchar = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_TIMESTAMP | SQL_CVT_LONGVARBINARY;
pProvInfo->ulConvertDecimal = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT;
pProvInfo->ulConvertVarbinary = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_TINYINT | SQL_CVT_LONGVARBINARY;
pProvInfo->ulConvertChar = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_TIMESTAMP | SQL_CVT_LONGVARBINARY;
pProvInfo->ulConvertWVarChar = 0;
pProvInfo->ulConvertWLongVarChar = 0;
}
else
{
pProvInfo->ulStringFuncs = SQL_FN_STR_CONCAT | SQL_FN_STR_INSERT | SQL_FN_STR_LEFT | SQL_FN_STR_LTRIM | SQL_FN_STR_LENGTH | SQL_FN_STR_LOCATE | SQL_FN_STR_LCASE | SQL_FN_STR_REPEAT | SQL_FN_STR_REPLACE | SQL_FN_STR_RIGHT | SQL_FN_STR_RTRIM | SQL_FN_STR_SUBSTRING | SQL_FN_STR_UCASE | SQL_FN_STR_ASCII | SQL_FN_STR_CHAR | SQL_FN_STR_DIFFERENCE | SQL_FN_STR_LOCATE_2 | SQL_FN_STR_SOUNDEX | SQL_FN_STR_SPACE | SQL_FN_STR_BIT_LENGTH | SQL_FN_STR_OCTET_LENGTH;
pProvInfo->ulNumericFuncs = SQL_FN_NUM_ABS | SQL_FN_NUM_ACOS | SQL_FN_NUM_ASIN | SQL_FN_NUM_ATAN | SQL_FN_NUM_ATAN2 | SQL_FN_NUM_CEILING | SQL_FN_NUM_COS | SQL_FN_NUM_COT | SQL_FN_NUM_EXP | SQL_FN_NUM_FLOOR | SQL_FN_NUM_LOG | SQL_FN_NUM_MOD | SQL_FN_NUM_SIGN | SQL_FN_NUM_SIN | SQL_FN_NUM_SQRT | SQL_FN_NUM_TAN | SQL_FN_NUM_PI | SQL_FN_NUM_RAND | SQL_FN_NUM_DEGREES | SQL_FN_NUM_LOG10 | SQL_FN_NUM_POWER | SQL_FN_NUM_RADIANS | SQL_FN_NUM_ROUND | SQL_FN_NUM_TRUNCATE;
pProvInfo->ulSystemFuncs = SQL_FN_SYS_USERNAME | SQL_FN_SYS_DBNAME | SQL_FN_SYS_IFNULL;
pProvInfo->ulDateTimeFuncs = SQL_FN_TD_NOW | SQL_FN_TD_CURDATE | SQL_FN_TD_DAYOFMONTH | SQL_FN_TD_DAYOFWEEK | SQL_FN_TD_DAYOFYEAR | SQL_FN_TD_MONTH | SQL_FN_TD_QUARTER | SQL_FN_TD_WEEK | SQL_FN_TD_YEAR | SQL_FN_TD_CURTIME | SQL_FN_TD_HOUR | SQL_FN_TD_MINUTE | SQL_FN_TD_SECOND | SQL_FN_TD_TIMESTAMPADD | SQL_FN_TD_TIMESTAMPDIFF | SQL_FN_TD_DAYNAME | SQL_FN_TD_MONTHNAME | SQL_FN_TD_CURRENT_DATE | SQL_FN_TD_CURRENT_TIME | SQL_FN_TD_CURRENT_TIMESTAMP | SQL_FN_TD_EXTRACT;
pProvInfo->ulOJSupport = SQL_OJ_LEFT | SQL_OJ_RIGHT | SQL_OJ_FULL | SQL_OJ_NESTED | SQL_OJ_NOT_ORDERED | SQL_OJ_INNER | SQL_OJ_ALL_COMPARISON_OPS;
pProvInfo->ulConvertInteger = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertTime = 0;
pProvInfo->ulConvertTimeStamp = SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_TIMESTAMP | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertLongVarBinary = SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_LONGVARBINARY;
pProvInfo->ulConvertLongVarChar = SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_WCHAR | SQL_CVT_WLONGVARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertNumeric = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertReal = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertSmallint = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertTinyint = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertGuid = SQL_CVT_GUID | SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR | SQL_CVT_WLONGVARCHAR;
pProvInfo->ulConvertWchar = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_TIMESTAMP | SQL_CVT_LONGVARBINARY | SQL_CVT_WCHAR | SQL_CVT_WLONGVARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertVarchar = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_TIMESTAMP | SQL_CVT_LONGVARBINARY | SQL_CVT_WCHAR | SQL_CVT_WLONGVARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertDecimal = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertVarbinary = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_VARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_TINYINT | SQL_CVT_LONGVARBINARY | SQL_CVT_WCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertChar = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_TIMESTAMP | SQL_CVT_LONGVARBINARY | SQL_CVT_WCHAR | SQL_CVT_WLONGVARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertWLongVarChar = SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_WCHAR | SQL_CVT_WLONGVARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertWVarChar = SQL_CVT_CHAR | SQL_CVT_NUMERIC | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_VARCHAR | SQL_CVT_LONGVARCHAR | SQL_CVT_BINARY | SQL_CVT_VARBINARY | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_TIMESTAMP | SQL_CVT_LONGVARBINARY | SQL_CVT_WCHAR | SQL_CVT_WLONGVARCHAR | SQL_CVT_WVARCHAR;
}
break;
case DRVR_ORACLE:
pProvInfo->ulStringFuncs = SQL_FN_STR_CONCAT | SQL_FN_STR_LEFT | SQL_FN_STR_LTRIM | SQL_FN_STR_LENGTH | SQL_FN_STR_LCASE | SQL_FN_STR_REPLACE | SQL_FN_STR_RIGHT | SQL_FN_STR_RTRIM | SQL_FN_STR_SUBSTRING | SQL_FN_STR_UCASE | SQL_FN_STR_ASCII | SQL_FN_STR_CHAR | SQL_FN_STR_SOUNDEX;
pProvInfo->ulNumericFuncs = SQL_FN_NUM_ABS | SQL_FN_NUM_CEILING | SQL_FN_NUM_COS | SQL_FN_NUM_EXP | SQL_FN_NUM_FLOOR | SQL_FN_NUM_LOG | SQL_FN_NUM_MOD | SQL_FN_NUM_SIGN | SQL_FN_NUM_SIN | SQL_FN_NUM_SQRT | SQL_FN_NUM_TAN | SQL_FN_NUM_PI | SQL_FN_NUM_LOG10 | SQL_FN_NUM_POWER | SQL_FN_NUM_ROUND | SQL_FN_NUM_TRUNCATE;
pProvInfo->ulSystemFuncs = SQL_FN_SYS_USERNAME | SQL_FN_SYS_IFNULL;
pProvInfo->ulDateTimeFuncs = SQL_FN_TD_NOW | SQL_FN_TD_CURDATE | SQL_FN_TD_DAYOFMONTH | SQL_FN_TD_DAYOFWEEK | SQL_FN_TD_DAYOFYEAR | SQL_FN_TD_MONTH | SQL_FN_TD_QUARTER | SQL_FN_TD_WEEK | SQL_FN_TD_YEAR | SQL_FN_TD_CURTIME | SQL_FN_TD_HOUR | SQL_FN_TD_MINUTE | SQL_FN_TD_SECOND | SQL_FN_TD_DAYNAME | SQL_FN_TD_MONTHNAME;
pProvInfo->ulOJSupport = SQL_OJ_LEFT | SQL_OJ_RIGHT | SQL_OJ_NOT_ORDERED;
pProvInfo->ulConvertInteger = SQL_CVT_CHAR | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_BIGINT;
pProvInfo->ulConvertTime = SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_DATE | SQL_CVT_TIME | SQL_CVT_TIMESTAMP;
pProvInfo->ulConvertTimeStamp = SQL_CVT_CHAR | SQL_CVT_VARCHAR | SQL_CVT_DATE; // get rid of time/timestamp due to won't fix limitations
pProvInfo->ulConvertLongVarBinary = 0;
pProvInfo->ulConvertLongVarChar = 0;
pProvInfo->ulConvertNumeric = 0;
pProvInfo->ulConvertReal = SQL_CVT_CHAR | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_BIGINT;
pProvInfo->ulConvertSmallint = SQL_CVT_CHAR | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_BIGINT;
pProvInfo->ulConvertTinyint = SQL_CVT_CHAR | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_BIGINT;
pProvInfo->ulConvertGuid = 0;
pProvInfo->ulConvertWchar = 0;
pProvInfo->ulConvertVarchar = SQL_CVT_CHAR | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_BIGINT | SQL_CVT_DATE | SQL_CVT_TIME | SQL_CVT_TIMESTAMP;
pProvInfo->ulConvertDecimal = SQL_CVT_CHAR | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_BIGINT;
pProvInfo->ulConvertVarbinary = 0;
pProvInfo->ulConvertChar = SQL_CVT_CHAR | SQL_CVT_DECIMAL | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_BIT | SQL_CVT_TINYINT | SQL_CVT_BIGINT | SQL_CVT_DATE | SQL_CVT_TIME | SQL_CVT_TIMESTAMP;
pProvInfo->ulConvertWLongVarChar = 0;
pProvInfo->ulConvertWVarChar = 0;
break;
case DRVR_QJET:
pProvInfo->ulStringFuncs = SQL_FN_STR_CONCAT | SQL_FN_STR_LEFT | SQL_FN_STR_LTRIM | SQL_FN_STR_LENGTH | SQL_FN_STR_LOCATE | SQL_FN_STR_LCASE | SQL_FN_STR_RIGHT | SQL_FN_STR_RTRIM | SQL_FN_STR_SUBSTRING | SQL_FN_STR_UCASE | SQL_FN_STR_ASCII | SQL_FN_STR_CHAR | SQL_FN_STR_LOCATE_2 | SQL_FN_STR_SPACE;
pProvInfo->ulNumericFuncs = SQL_FN_NUM_ABS | SQL_FN_NUM_ATAN | SQL_FN_NUM_CEILING | SQL_FN_NUM_COS | SQL_FN_NUM_EXP | SQL_FN_NUM_FLOOR | SQL_FN_NUM_LOG | SQL_FN_NUM_MOD | SQL_FN_NUM_SIGN | SQL_FN_NUM_SIN | SQL_FN_NUM_SQRT | SQL_FN_NUM_TAN | SQL_FN_NUM_RAND | SQL_FN_NUM_POWER;
pProvInfo->ulSystemFuncs = 0;
pProvInfo->ulDateTimeFuncs = SQL_FN_TD_NOW | SQL_FN_TD_CURDATE | SQL_FN_TD_DAYOFMONTH | SQL_FN_TD_DAYOFWEEK | SQL_FN_TD_DAYOFYEAR | SQL_FN_TD_MONTH | SQL_FN_TD_QUARTER | SQL_FN_TD_WEEK | SQL_FN_TD_YEAR | SQL_FN_TD_CURTIME | SQL_FN_TD_HOUR | SQL_FN_TD_MINUTE | SQL_FN_TD_SECOND | SQL_FN_TD_DAYNAME | SQL_FN_TD_MONTHNAME;
pProvInfo->ulOJSupport = SQL_OJ_LEFT | SQL_OJ_RIGHT | SQL_OJ_NOT_ORDERED | SQL_OJ_ALL_COMPARISON_OPS;
pProvInfo->ulConvertInteger = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertTime = 0;
pProvInfo->ulConvertTimeStamp = 0;
pProvInfo->ulConvertLongVarBinary = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertLongVarChar = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertNumeric = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertReal = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertSmallint = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertTinyint = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertGuid = SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertWchar = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertVarchar = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertDecimal = 0;
pProvInfo->ulConvertVarbinary = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertChar = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertWLongVarChar = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
pProvInfo->ulConvertWVarChar = SQL_CVT_NUMERIC | SQL_CVT_INTEGER | SQL_CVT_SMALLINT | SQL_CVT_FLOAT | SQL_CVT_REAL | SQL_CVT_DOUBLE | SQL_CVT_VARCHAR | SQL_CVT_WVARCHAR;
break;
default:
ASSERT(!"No Support for this configuration\n");
break;
}
}
WCHAR * GetidsString(WCHAR *wszBuf, UDWORD id)
{
for ( int i = 0; i < (sizeof(pwszStringList)/sizeof(pwszStringList[0])); i ++ )
{
if (pwszStringList[i].id == id)
{
wcscpy(wszBuf, pwszStringList[i].wszItem);
return wszBuf;
}
}
ASSERT(!L"Bad id passed to GetidsString");
return NULL;
}
//--------------------------------------------------------------------
// @func Module level initialization routine
//
// @rdesc Success or Failure
// @flag TRUE | Successful initialization
// @flag FALSE | Initialization problems
//
BOOL ModuleInit(CThisTestModule * pThisTestModule)
{
HRESULT hr = E_FAIL;
IDBCreateCommand *pIDBCreateCommand = NULL;
IDBProperties *pIDBProperties = NULL;
// Get connection and session objects
if (ModuleCreateDBSession(pThisTestModule))
{
// IDBCreateCommand
if(!VerifyInterface(pThisTestModule->m_pIUnknown2, IID_IDBCreateCommand,
SESSION_INTERFACE, (IUnknown**)&pIDBCreateCommand))
{
odtLog << L"Commands are not supported." << ENDL;
return TEST_SKIPPED;
}
//Release the pointer
SAFE_RELEASE(pIDBCreateCommand);
pThisTestModule->m_pIUnknown->QueryInterface(IID_IDBProperties, (void **)&pIDBProperties);
if ( !CanUseScalarFunctions(pIDBProperties) )
{
odtLog << L"Can't use scalar functions against this DBMS!" << ENDL;
return TEST_SKIPPED;
}
SAFE_RELEASE(pIDBProperties);
// Check whether provider is read only
g_fReadOnlyProvider = IsProviderReadOnly((IUnknown *)pThisTestModule->m_pIUnknown2);
// This test doesn't support using an ini file, make sure we're not
if(GetModInfo()->GetFileName())
{
odtLog << L"WARNING: Test does not support using fixed table from ini file.\n";
// Read only providers must use ini file, so don't reset
if (!g_fReadOnlyProvider)
{
odtLog << L"\tResetting to ignore ini file and use tables created by test.\n";
GetModInfo()->ResetIniFile();
}
}
g_pTable = new CTable(pThisTestModule->m_pIUnknown2, 0);
if (!g_pTable || !SUCCEEDED(g_pTable->CreateTable(20)) )
return FALSE;
GetidsString(g_wszScalarFmt,idsSelect);
WCHAR wszTmpBuf[2000], wszTmpBuf2[2000];
wcscat(g_wszScalarFmt,GetidsString(wszTmpBuf,idsCanonShort));
swprintf(wszTmpBuf,GetidsString(wszTmpBuf2,idsFromString), g_pTable->GetTableName());
wcscat(g_wszScalarFmt,wszTmpBuf);
// If we made it this far, everything has succeeded
return TRUE;
}
return FALSE;
}
//--------------------------------------------------------------------
// @func Module level termination routine
//
// @rdesc Success or Failure
// @flag TRUE | Successful initialization
// @flag FALSE | Initialization problems
//
BOOL ModuleTerminate(CThisTestModule * pThisTestModule)
{
if (g_pTable)
{
g_pTable->DropTable();
delete g_pTable;
g_pTable=NULL;
}
return ModuleReleaseDBSession(pThisTestModule);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Base Class Section
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// @class CScalar
// @base public | CCommandObject
//
class CScalar : public CCommandObject{
public:
// @cmember ICommand ptr object, around for lifetime of test case
ICommand * m_pICommand;
// @cmember ICommandText Interface pointer
ICommandText * m_pICommandText;
// @cmember ICommandPrepare Interface pointer
ICommandPrepare * m_pICommandPrepare;
// @cmember IRowset Interface pointer
IRowset * m_pIRowset;
// @cmember IAccessor(from IRowset) Interface pointer
IAccessor * m_pIRowsetAccessor;
WCHAR m_wszQuery[MAX_BUF];
WCHAR m_wszColName[MAX_BUF];
WCHAR m_wsz1TypeTableFmt[MAX_BUF];
// data buffer for parameter data
BYTE m_pData[MAX_BUF];
// tmp buffer of misc use
WCHAR m_buf[MAX_BUF];
DBBINDING m_Binding;
// HACCESSOR
HACCESSOR m_hAccessor;
CTable * m_pAutoMakeTable;
CTable * m_p1TypeTable;
// @cmember Constructor
CScalar(LPWSTR wszTestCaseName) : CCommandObject (wszTestCaseName)
{
m_pICommandText = NULL;
m_pICommand = NULL;
m_pICommandPrepare = NULL;
m_pIRowset = NULL;
m_pIRowsetAccessor = NULL;
m_pAutoMakeTable = NULL;
m_p1TypeTable = NULL;
};
// @cmember Constructor
~CScalar()
{
ASSERT(!m_pAutoMakeTable);
ASSERT(!m_p1TypeTable);
ASSERT(!m_pICommandText);
ASSERT(!m_pICommandPrepare);
ASSERT(!m_pICommand);
ASSERT(!m_pIRowset);
ASSERT(!m_pIRowsetAccessor);
};
//@cmember Init
BOOL Init();
//@cmember Terminate
BOOL Terminate();
// Create a binding to ordinal one
HRESULT CScalar::CreateABinding();
// Release rowset and accesor interfaces
HRESULT CScalar::ReleaseRowset();
// Open a rowset, fetch the first row, and get the data
HRESULT CScalar::ExecuteQuery(WCHAR *wszQuery, BOOL fPrepare=NO_PREPARE);
// Execute a scalar function and verified result against ExpBuf
BOOL CScalar::CheckQry(WCHAR *ExpBuf, int compType);
// Help function to verify Results
BOOL CScalar::CheckStr(size_t iPrec, WCHAR *wszBuf,WCHAR *wszExpBuf, int compType);
// Determines whether a particular string function is supported
BOOL CScalar::IsSupportedScalar(DWORD dwBitMask);
// Determines whether a particular numeric function is supported
BOOL CScalar::IsSupportedNumeric(DWORD dwBitMask);
// Determines whether a particular date time function is supported
BOOL CScalar::IsSupportedDateTime(DWORD dwBitMask);
// Determines whether a particular System function is supported
BOOL CScalar::IsSupportedSystem(DWORD dwBitMask);
// Determines whether a particular Outer Join capability is supported
BOOL CScalar::IsSupportedOJ(DWORD dwBitMask);
// Determines whether a particular conversion via fn convert is supported
BOOL CScalar::IsSupportedConversion(ULONG ulFromType, ULONG ulToType);
// Just execute a query and discard the result set
BOOL ExecuteDirect(WCHAR *wszQuery);
// Verify Results of {fn convert( , )}
BOOL CheckConversion(ULONG wFromType, ULONG wToType, WCHAR *wszInput, ULONG ulScalarID, int CompType, WCHAR *wszExpValue = NULL, WCHAR *wszExpBackup = NULL);
// Create a table with specified ODBC SQL Type
BOOL CreateTypeTable (int iSqlType);
// Drop the one type table
BOOL DropTypeTable();
// map the ODBC SQL Type to a native type name
WCHAR * MapSqlToNativeType(int iSqlType);
};
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// @cmember Init
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BOOL CScalar::Init()
{
if (COLEDB::Init())
{
// Set needed pointers
SetDataSourceObject(m_pThisTestModule->m_pIUnknown, TRUE);
SetDBSession((IDBCreateCommand *)m_pThisTestModule->m_pIUnknown2);
// Get a Command object
if (FAILED(m_pIDBCreateCommand->CreateCommand(
NULL, IID_ICommand, (IUnknown **)&m_pICommand)))
{
odtLog << L"Initialization failed!" << ENDL;
return FALSE;
}
VerifyInterface(m_pICommand, IID_IAccessor, COMMAND_INTERFACE, (IUnknown **)&m_pIAccessor);
VerifyInterface(m_pICommand, IID_ICommandText, COMMAND_INTERFACE, (IUnknown **)&m_pICommandText);
VerifyInterface(m_pICommand, IID_ICommandPrepare, COMMAND_INTERFACE, (IUnknown **)&m_pICommandPrepare);
return TRUE;
}
return FALSE;
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// @cmember Terminate
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BOOL CScalar::Terminate()
{
// Release objects
SAFE_RELEASE(m_pICommand);
SAFE_RELEASE(m_pIAccessor);
SAFE_RELEASE(m_pICommandText);
SAFE_RELEASE(m_pICommandPrepare);
ReleaseDBSession();
ReleaseDataSourceObject();
return(COLEDB::Terminate());
}
HRESULT CScalar::CreateABinding()
{
DBBINDSTATUS BindStatus = 0;
m_Binding.iOrdinal = 1;
m_Binding.dwPart = DBPART_VALUE | DBPART_STATUS | DBPART_LENGTH;
m_Binding.eParamIO = 0;
m_Binding.pTypeInfo = NULL;
m_Binding.obValue = offsetof(ValueInfo, pValue);
m_Binding.cbMaxLen = sizeof(m_pData);
m_Binding.obLength = offsetof(ValueInfo, cbLength);
m_Binding.obStatus = offsetof(ValueInfo, dbsStatus);
m_Binding.dwMemOwner = DBMEMOWNER_CLIENTOWNED;
m_Binding.wType = DBTYPE_WSTR;
m_Binding.pBindExt = NULL;
m_Binding.bPrecision = 0;
m_Binding.bScale = 0;
return m_pIRowsetAccessor->CreateAccessor(
DBACCESSOR_ROWDATA,
1,
&m_Binding,
0,
&m_hAccessor,
&BindStatus);
}
HRESULT CScalar::ReleaseRowset()
{
if (m_pIRowsetAccessor)
m_pIRowsetAccessor->ReleaseAccessor(m_hAccessor,NULL);
SAFE_RELEASE(m_pIRowsetAccessor);
SAFE_RELEASE(m_pIRowset);
return S_OK;
}
HRESULT CScalar::ExecuteQuery(WCHAR *wszQuery, BOOL fPrepare)
{
DBCOUNTITEM cRowsObtained=0;
HROW hrow=DB_NULL_HROW;
HROW * pHRow=&hrow;
ASSERT(m_pICommandText);
if (!CHECK(m_hr=m_pICommandText->SetCommandText(DBGUID_DEFAULT, wszQuery),S_OK))
return m_hr;
if (fPrepare)
{
if (!m_pICommandPrepare )
return E_FAIL;
else
if (!CHECK(m_hr=m_pICommandPrepare->Prepare(0),S_OK))
return m_hr;
}
if (!CHECK(m_hr=m_pICommandText->Execute(NULL, IID_IRowset, NULL, NULL, (IUnknown **)&m_pIRowset), S_OK))
return m_hr;
if (!VerifyInterface(m_pIRowset, IID_IAccessor, ROWSET_INTERFACE, (IUnknown**)&m_pIRowsetAccessor))
return E_NOINTERFACE;
if (!CHECK(m_hr=CreateABinding(),S_OK))
return m_hr;
if (!CHECK(m_hr=m_pIRowset->GetNextRows(NULL, 0, 1, &cRowsObtained, &pHRow),S_OK))
return m_hr;
COMPARE(cRowsObtained, 1);
if (!CHECK(m_hr=m_pIRowset->GetData(pHRow[0], m_hAccessor, m_pData),S_OK))
return m_hr;
CHECK(m_pIRowset->ReleaseRows(1,pHRow,NULL,NULL,NULL),S_OK);
return S_OK;
}
BOOL CScalar::CheckQry(WCHAR *ExpBuf, int compType)
{
WCHAR *QueryOut=NULL;
BOOL fPass = TEST_PASS;
IRowset *pRowset=NULL;
ULONG cRowsAffected=0;
if(!CHECK(ExecuteQuery(m_wszQuery),S_OK))
goto CLEANUP;
// DebugMsg(buf);
if(wcscmp(ExpBuf,L"IGNORE"))
fPass &= CheckStr(wcslen(ExpBuf),(WCHAR *)((BYTE *)m_pData+m_Binding.obValue), ExpBuf, compType);
ReleaseRowset();
//rc=SQLGetFunctions(hdbc0,SQL_API_SQLNATIVESQL,pfExists);
//FSSQLNativeSql(hdbc0,m_szQuery,SQL_NTS,QueryOut,MAX_BUF,NULL);
if (!CHECK(m_pICommandText->GetCommandText(NULL, &QueryOut), S_OK))
goto CLEANUP;
//DebugMsg(QueryOut);
if(!CHECK(ExecuteQuery(QueryOut),S_OK))
goto CLEANUP;
if(wcscmp(ExpBuf,L"IGNORE"))
fPass &= CheckStr(wcslen(ExpBuf),(WCHAR *)((BYTE *)m_pData+m_Binding.obValue), ExpBuf, compType);
PROVIDER_FREE(QueryOut);
ReleaseRowset();
// Use Prepare/Execute
if (!m_pICommandPrepare)
goto CLEANUP;
if(!CHECK(ExecuteQuery(m_wszQuery, PREPARE),S_OK))
goto CLEANUP;
if(wcscmp(ExpBuf,L"IGNORE"))
fPass &= CheckStr(wcslen(ExpBuf),(WCHAR *)((BYTE *)m_pData+m_Binding.obValue), ExpBuf,compType);
ReleaseRowset();
//rc=SQLGetFunctions(hdbc0,SQL_API_SQLNATIVESQL,pfExists);
//if(FSSQLNativeSql(hdbc0,szQuery,SQL_NTS,QueryOut,MAX_BUF,NULL))
if (!CHECK(m_pICommandText->GetCommandText(NULL, &QueryOut), S_OK))
goto CLEANUP;
if(!CHECK(ExecuteQuery(QueryOut, PREPARE),S_OK))
goto CLEANUP;
if(wcscmp(ExpBuf,L"IGNORE"))
fPass &= CheckStr(wcslen(ExpBuf),(WCHAR *)((BYTE *)m_pData+m_Binding.obValue), ExpBuf, compType);
PROVIDER_FREE(QueryOut);
ReleaseRowset();
CLEANUP:
ReleaseRowset(); // Cleanup in case of premature termination
return fPass;
}
BOOL CScalar::CheckStr(size_t iPrec, WCHAR *wszBuf,WCHAR *wszExpBuf, int compType)
{
WCHAR *buf=(WCHAR *)PROVIDER_ALLOC(2*MAXBUFLEN*sizeof(WCHAR));
WCHAR *buf1=(WCHAR *)PROVIDER_ALLOC(2*MAXBUFLEN*sizeof(WCHAR));
double ldReturn, ldExpect, maxDiff;
float rReturn, rExpect;
long lReturn, lExpect;
int errorFlag = FALSE;
WCHAR *ss=NULL;
switch (compType)
{
case CHECKSTR:
if(!COMPARE(0==wcsncmp(wszExpBuf,wszBuf,iPrec),TRUE))
errorFlag = TRUE;
break;
case CHECKISTR:
if(!COMPARE(0==_wcsicmp(wszExpBuf,wszBuf),TRUE))
errorFlag = TRUE;
break;
case CHECKINT:
lExpect = _wtol(wszExpBuf);
lReturn = _wtol(wszBuf);
if(!COMPARE(lExpect,lReturn))
errorFlag = TRUE;
break;
case CHECKFLOAT:
ldExpect = wcstod(wszExpBuf,&ss);
ldReturn = wcstod(wszBuf,&ss);
maxDiff = (1.0 / pow(2.0,47.0));
if ( !COMPARE(fabs((double)(ldReturn - ldExpect)) <= (maxDiff), TRUE) )
errorFlag = TRUE;
break;
case CHECKREAL:
rExpect = float(wcstod(wszExpBuf,&ss));
rReturn = float(wcstod(wszBuf,&ss));
maxDiff = (1.0 / pow(2.0,21.0));
if ( !COMPARE(fabs((double)(rReturn - rExpect)) <= (maxDiff), TRUE) )
errorFlag = TRUE;
break;
case CHECKTIMESTAMP:
{
DBTIMESTAMP *ptsExpected = NULL, *ptsActual = NULL;
ptsExpected = (DBTIMESTAMP *) WSTR2DBTYPE(wszExpBuf, DBTYPE_DBTIMESTAMP, NULL);
ptsActual = (DBTIMESTAMP *) WSTR2DBTYPE(wszBuf, DBTYPE_DBTIMESTAMP, NULL);
errorFlag = ((ptsActual->year != ptsExpected->year) ||
(ptsActual->month != ptsExpected->month) ||
(ptsActual->day != ptsExpected->day) ||
(ptsActual->hour != ptsExpected->hour) ||
(ptsActual->minute != ptsExpected->minute) ||
(ptsActual->second != ptsExpected->second) ||
(ptsActual->fraction != ptsExpected->fraction ));
PROVIDER_FREE(ptsExpected);
PROVIDER_FREE(ptsActual);
break;
}
default:
ASSERT(!L"I must've forgot to change something...");
break;
}
if(errorFlag)
{
odtLog << m_wszQuery << ENDL;
wcscpy(buf,L"Returned: ");
wcsncat(buf,wszBuf,MAXBUFLEN);
odtLog << buf << ENDL;
wcscpy(buf1,L"Expected: ");
wcsncat(buf1,wszExpBuf,MAXBUFLEN);
odtLog << buf1 << ENDL;
}
PROVIDER_FREE(buf);
PROVIDER_FREE(buf1);
return !errorFlag;
}
// Determines whether a particular string function is supported
BOOL CScalar::IsSupportedScalar(DWORD dwBitMask)
{
return g_ProvInfo.ulStringFuncs & dwBitMask;
}
// Determines whether a particular numeric function is supported
BOOL CScalar::IsSupportedNumeric(DWORD dwBitMask)
{
return g_ProvInfo.ulNumericFuncs & dwBitMask;
}
// Determines whether a particular date time function is supported
BOOL CScalar::IsSupportedDateTime(DWORD dwBitMask)
{
return g_ProvInfo.ulDateTimeFuncs & dwBitMask;
}
// Determines whether a particular System function is supported
BOOL CScalar::IsSupportedSystem(DWORD dwBitMask)
{
return g_ProvInfo.ulSystemFuncs & dwBitMask;
}
// Determines whether a particular Outer Join capability is supported
BOOL CScalar::IsSupportedOJ(DWORD dwBitMask)
{
return g_ProvInfo.ulOJSupport & dwBitMask;
}
// Determines whether a particular conversion via fn convert is supported
BOOL CScalar::IsSupportedConversion(ULONG ulFromType, ULONG ulToType)
{
switch (ulFromType)
{
case SQL_CONVERT_INTEGER:
return g_ProvInfo.ulConvertInteger & ulToType;
case SQL_CONVERT_TIME:
return g_ProvInfo.ulConvertTime & ulToType;
case SQL_CONVERT_TIMESTAMP:
return g_ProvInfo.ulConvertTimeStamp & ulToType;
case SQL_CONVERT_LONGVARCHAR:
return g_ProvInfo.ulConvertLongVarChar & ulToType;
case SQL_CONVERT_LONGVARBINARY:
return g_ProvInfo.ulConvertLongVarBinary & ulToType;
case SQL_CONVERT_NUMERIC:
return g_ProvInfo.ulConvertNumeric & ulToType;
case SQL_CONVERT_REAL:
return g_ProvInfo.ulConvertReal & ulToType;
case SQL_CONVERT_SMALLINT:
return g_ProvInfo.ulConvertSmallint & ulToType;
case SQL_CONVERT_TINYINT:
return g_ProvInfo.ulConvertTinyint & ulToType;
case SQL_CONVERT_GUID:
return g_ProvInfo.ulConvertGuid & ulToType;
case SQL_CONVERT_WCHAR:
return g_ProvInfo.ulConvertWchar & ulToType;
case SQL_CONVERT_VARCHAR:
return g_ProvInfo.ulConvertVarchar & ulToType;
case SQL_CONVERT_VARBINARY:
return g_ProvInfo.ulConvertVarbinary & ulToType;
case SQL_CONVERT_DECIMAL:
return g_ProvInfo.ulConvertDecimal & ulToType;
case SQL_CONVERT_CHAR:
return g_ProvInfo.ulConvertChar & ulToType;
case SQL_CONVERT_WVARCHAR:
return g_ProvInfo.ulConvertWVarChar & ulToType;
case SQL_CONVERT_WLONGVARCHAR:
return g_ProvInfo.ulConvertWLongVarChar & ulToType;
default:
ASSERT(!"No support for this Type!\n");
return FALSE;
}
}
// Just execute a query and discard the result set
BOOL CScalar::ExecuteDirect(WCHAR *wszQuery)
{
if (!CHECK(m_hr=ExecuteQuery(wszQuery, NO_PREPARE), S_OK))
return FALSE;
if (!CHECK(m_hr=ReleaseRowset(),S_OK))
return FALSE;
return TRUE;
}
// Check the results of {fn convert(,)}
BOOL CScalar::CheckConversion(ULONG ulFromType, ULONG ulToType, WCHAR *wszInputValue, ULONG ulScalarID, int iCheckType, WCHAR *wszExpValue, WCHAR *wszExpBackUp)
{
WCHAR buf[MAX_BUF], wszInputBuf[MAX_BUF];
BOOL fPass = TEST_FAIL;
DBORDINAL ulColOrdinal = 1;
CCol TempCol;
if(!IsSupportedConversion(ulFromType, ulToType))
return TEST_SKIPPED;
// Hacks for Won't Fix server behavior
if (wszExpValue == NULL)
wszExpValue = wszInputValue;
if (wszExpBackUp == NULL)
wszExpBackUp = wszExpValue;
// end hack
// format literal value
wcscpy(wszInputBuf, L"\0");
m_p1TypeTable->GetColInfo(1, TempCol);
if(TempCol.GetPrefix())
{
if (TempCol.GetProviderType() == DBTYPE_DBTIMESTAMP)
wcscat(wszInputBuf, L"{ ts '");
else
wcscat(wszInputBuf,TempCol.GetPrefix());
}
wcscat(wszInputBuf,wszInputValue);
if(TempCol.GetSuffix())
{
if (TempCol.GetProviderType() == DBTYPE_DBTIMESTAMP)
wcscat(wszInputBuf, L"' }");
else
wcscat(wszInputBuf, TempCol.GetSuffix());
}
// create the simple literal canonical select
swprintf(buf,GetidsString(m_buf, ulScalarID), wszInputBuf);
swprintf(m_wszQuery,g_wszScalarFmt,buf);
fPass = CheckQry(wszExpValue, iCheckType);
if (fPass != TEST_PASS)
return fPass; // just end right here
fPass = TEST_FAIL;
// The simple select worked, now use column name in place of literal
// Insert the target value
if (!CHECK(m_hr=m_p1TypeTable->InsertWithUserLiterals(1, &ulColOrdinal, &wszInputValue),S_OK))
goto CLEANUP;
// Execute the query using the column name instead of literal
swprintf(buf,GetidsString(m_buf, ulScalarID), m_wszColName);
swprintf(m_wszQuery,m_wsz1TypeTableFmt, buf);
fPass = CheckQry(wszExpBackUp, iCheckType);
CLEANUP:
// Delete all values from the table
swprintf(m_wszQuery,L"delete from %s", m_p1TypeTable->GetTableName());
CHECK(m_pICommandText->SetCommandText(DBGUID_DEFAULT, m_wszQuery),S_OK);
CHECK(m_pICommandText->Execute(NULL, IID_NULL, NULL, NULL, NULL), S_OK);
return fPass;
}
// Create a table with specified ODBC SQL Type
BOOL CScalar::CreateTypeTable (int iSqlType)
{
BOOL fSuccess = FALSE;
CList <WCHAR * ,WCHAR* > TypesList;
WCHAR *wszProviderTypeName = NULL;
CCol TempCol;
// A List of the one type we're interested in.
wszProviderTypeName = MapSqlToNativeType(iSqlType);
if (!wszProviderTypeName)
return TEST_SKIPPED;
TypesList.AddTail(wszProviderTypeName);
m_p1TypeTable = new CTable(m_pThisTestModule->m_pIUnknown2, 0);
if (!m_p1TypeTable || !SUCCEEDED(m_p1TypeTable->CreateTable(TypesList, 0, 0)))
goto exit01;
CHECK(m_p1TypeTable->GetColInfo(1, TempCol), S_OK);
wcscpy(m_wszColName, TempCol.GetColName());
fSuccess = TRUE;
wcscpy(m_wsz1TypeTableFmt, L"select {%s} from ");
wcscat(m_wsz1TypeTableFmt, m_p1TypeTable->GetTableName());
exit01:
TypesList.RemoveAll();
return fSuccess;
}
// Drop the one type table
BOOL CScalar::DropTypeTable()
{
if (m_p1TypeTable)
{
m_p1TypeTable->DropTable();
delete m_p1TypeTable;
m_p1TypeTable = NULL;
}
return TRUE;
}
// map the ODBC SQL Type to a native type name
WCHAR * CScalar::MapSqlToNativeType(int iSqlType)
{
static WCHAR *rgwszNativeOracleTypes[] = {L"FLOAT", L"LONG RAW", L"RAW", L"CHAR", L"LONG", L"VARCHAR2", L"NUMBER(10,0)", L"DATE", L"NUMBER()"};
static WCHAR *rgwszHydraTypes[] = {L"int", L"datetime"};
switch (iSqlType)
{
case SQL_INTEGER:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
return L"int";
case DRVR_ORACLE:
return L"number(10,0)";
case DRVR_QJET:
return L"integer";
}
break;
case SQL_TIMESTAMP:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
case DRVR_QJET:
return L"datetime";
case DRVR_ORACLE:
return L"date";
}
break;
case SQL_GUID:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
if (g_ProvInfo.ulVersion >= 7)
return L"uniqueidentifier";
break;
case DRVR_QJET:
return L"GUID";
}
break;
case SQL_CHAR:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
if (g_ProvInfo.dwDBMSType >= 7)
return L"char(8000)";
else
return L"char(254)";
case DRVR_ORACLE:
return L"char(1000)";
}
break;
case SQL_VARCHAR:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
if (g_ProvInfo.dwDBMSType >= 7)
return L"varchar(8000)";
else
return L"varchar(254)";
case DRVR_ORACLE:
return L"VARCHAR2(2000)";
}
break;
case SQL_LONGVARCHAR:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
return L"text";
case DRVR_ORACLE:
return L"long";
}
break;
case SQL_DOUBLE:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
return L"float";
case DRVR_ORACLE:
return L"float";
case DRVR_QJET:
return L"double";
}
break;
case SQL_REAL:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_QJET:
case DRVR_SQLSRVR:
return L"real";
}
break;
case SQL_BINARY:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_QJET:
case DRVR_SQLSRVR:
return L"binary(254)";
}
break;
case SQL_VARBINARY:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_QJET:
case DRVR_SQLSRVR:
return L"varbinary(254)";
case DRVR_ORACLE:
return L"RAW(254)";
}
break;
case SQL_LONGVARBINARY:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
return L"image";
case DRVR_ORACLE:
return L"LONG RAW";
case DRVR_QJET:
return L"LONGBINARY";
}
break;
case SQL_DECIMAL:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
return L"decimal(28,28)";
case DRVR_ORACLE:
return L"number(38,38)";
// case DRVR_QJET:
// return L"decimal (28,28)";
}
break;
case SQL_NUMERIC:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
return L"numeric(28,0)";
case DRVR_ORACLE:
return L"number(38,0)";
// case DRVR_QJET:
// return L"decimal (28, 0)";
}
break;
case SQL_SMALLINT:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_QJET:
case DRVR_SQLSRVR:
return L"smallint";
case DRVR_ORACLE:
return L"number(5,0)";
}
break;
case SQL_TINYINT:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
return L"tinyint";
case DRVR_ORACLE:
return L"number(3,0)";
case DRVR_QJET:
return L"BYTE";
}
break;
case SQL_WCHAR:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
if (g_ProvInfo.ulVersion >= 7)
return L"nchar(4000)";
break;
case DRVR_QJET:
return L"char(255)";
}
break;
case SQL_WVARCHAR:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
if (g_ProvInfo.ulVersion >= 7)
return L"nvarchar(8000)";
break;
case DRVR_QJET:
return L"VARCHAR(255)";
}
break;
case SQL_WLONGVARCHAR:
switch(g_ProvInfo.dwDBMSType)
{
case DRVR_SQLSRVR:
if (g_ProvInfo.ulVersion >= 7)
return L"ntext";
break;
case DRVR_QJET:
return L"LONGCHAR";
}
break;
case SQL_TIME:
case SQL_DATE:
break;
default:
ASSERT(!L"No Support for this ODBC SQL TYPE\n");
break;
}
return NULL; // no such type for this provider
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Test Case Section
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// {{ TCW_TEST_CASE_MAP(StringFunctions)
//--------------------------------------------------------------------
// @class Test scalar string functions
//
class StringFunctions : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(StringFunctions,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember ASCII Bz
int Variation_1();
// @cmember CHAR 102
int Variation_2();
// @cmember CONCAT Fire Truck
int Variation_3();
// @cmember LTRIM a BCDef
int Variation_4();
// @cmember LENGTH
int Variation_5();
// @cmember LOCATE st in forest estates
int Variation_6();
// @cmember LCASE fIrEtRucK
int Variation_7();
// @cmember REPEAT tq 3
int Variation_8();
// @cmember REPLACE forest estates es truck
int Variation_9();
// @cmember RIGHT forest estates 7
int Variation_10();
// @cmember RTRIM forest estates
int Variation_11();
// @cmember SUBSTRING forest estates 5 4
int Variation_12();
// @cmember UCASE forest estates
int Variation_13();
// @cmember DIFFERENCE c ab
int Variation_14();
// @cmember SOUNDEX ab
int Variation_15();
// @cmember SPACE 5
int Variation_16();
// @cmember CONCAT nested
int Variation_17();
// @cmember LEFT nested
int Variation_18();
// @cmember RIGHT nested
int Variation_19();
// @cmember LOCATE nested
int Variation_20();
// @cmember SUBSTRING nested
int Variation_21();
// @cmember DIFFERENCE nested
int Variation_22();
// @cmember REPEAT nested
int Variation_23();
// @cmember REPLACE nested
int Variation_24();
// @cmember INSERT nested
int Variation_25();
// @cmember mulit-INSERT nested
int Variation_26();
// @cmember Multi CONCAT nested
int Variation_27();
// @cmember STRING and NUMERIC
int Variation_28();
// }}
};
// {{ TCW_TESTCASE(StringFunctions)
#define THE_CLASS StringFunctions
BEG_TEST_CASE(StringFunctions, CScalar, L"Test scalar string functions")
TEST_VARIATION(1, L"ASCII Bz")
TEST_VARIATION(2, L"CHAR 102")
TEST_VARIATION(3, L"CONCAT Fire Truck")
TEST_VARIATION(4, L"LTRIM a BCDef")
TEST_VARIATION(5, L"LENGTH")
TEST_VARIATION(6, L"LOCATE st in forest estates")
TEST_VARIATION(7, L"LCASE fIrEtRucK")
TEST_VARIATION(8, L"REPEAT tq 3")
TEST_VARIATION(9, L"REPLACE forest estates es truck")
TEST_VARIATION(10, L"RIGHT forest estates 7")
TEST_VARIATION(11, L"RTRIM forest estates")
TEST_VARIATION(12, L"SUBSTRING forest estates 5 4")
TEST_VARIATION(13, L"UCASE forest estates")
TEST_VARIATION(14, L"DIFFERENCE c ab")
TEST_VARIATION(15, L"SOUNDEX ab")
TEST_VARIATION(16, L"SPACE 5")
TEST_VARIATION(17, L"CONCAT nested")
TEST_VARIATION(18, L"LEFT nested")
TEST_VARIATION(19, L"RIGHT nested")
TEST_VARIATION(20, L"LOCATE nested")
TEST_VARIATION(21, L"SUBSTRING nested")
TEST_VARIATION(22, L"DIFFERENCE nested")
TEST_VARIATION(23, L"REPEAT nested")
TEST_VARIATION(24, L"REPLACE nested")
TEST_VARIATION(25, L"INSERT nested")
TEST_VARIATION(26, L"mulit-INSERT nested")
TEST_VARIATION(27, L"Multi CONCAT nested")
TEST_VARIATION(28, L"STRING and NUMERIC")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(NumFunctions)
//--------------------------------------------------------------------
// @class Test numeric scalar functions
//
class NumFunctions : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(NumFunctions,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember ABS -123
int Variation_1();
// @cmember ACOS 1
int Variation_2();
// @cmember ASIN -1
int Variation_3();
// @cmember ATAN 2
int Variation_4();
// @cmember ATAN2 2 1
int Variation_5();
// @cmember CEILING 1.09
int Variation_6();
// @cmember COS 0
int Variation_7();
// @cmember COT 0.5
int Variation_8();
// @cmember EXP 1
int Variation_9();
// @cmember FLOOR 1.09
int Variation_10();
// @cmember LOG 10
int Variation_11();
// @cmember MOD 10 6
int Variation_12();
// @cmember PI
int Variation_13();
// @cmember RAND 10
int Variation_14();
// @cmember SIGN 10
int Variation_15();
// @cmember SIN .05
int Variation_16();
// @cmember SQRT 9
int Variation_17();
// @cmember TAN 2
int Variation_18();
// @cmember DEGREES 3
int Variation_19();
// @cmember LOG10 97.1
int Variation_20();
// @cmember POWER 9.6 3
int Variation_21();
// @cmember RADIANS
int Variation_22();
// @cmember ROUND 97.56 1
int Variation_23();
// @cmember TRUNCATE 97.56 1
int Variation_24();
// }}
};
// {{ TCW_TESTCASE(NumFunctions)
#define THE_CLASS NumFunctions
BEG_TEST_CASE(NumFunctions, CScalar, L"Test numeric scalar functions")
TEST_VARIATION(1, L"ABS -123")
TEST_VARIATION(2, L"ACOS 1")
TEST_VARIATION(3, L"ASIN -1")
TEST_VARIATION(4, L"ATAN 2")
TEST_VARIATION(5, L"ATAN2 2 1")
TEST_VARIATION(6, L"CEILING 1.09")
TEST_VARIATION(7, L"COS 0")
TEST_VARIATION(8, L"COT 0.5")
TEST_VARIATION(9, L"EXP 1")
TEST_VARIATION(10, L"FLOOR 1.09")
TEST_VARIATION(11, L"LOG 10")
TEST_VARIATION(12, L"MOD 10 6")
TEST_VARIATION(13, L"PI")
TEST_VARIATION(14, L"RAND 10")
TEST_VARIATION(15, L"SIGN 10")
TEST_VARIATION(16, L"SIN .05")
TEST_VARIATION(17, L"SQRT 9")
TEST_VARIATION(18, L"TAN 2")
TEST_VARIATION(19, L"DEGREES 3")
TEST_VARIATION(20, L"LOG10 97.1")
TEST_VARIATION(21, L"POWER 9.6 3")
TEST_VARIATION(22, L"RADIANS")
TEST_VARIATION(23, L"ROUND 97.56 1")
TEST_VARIATION(24, L"TRUNCATE 97.56 1")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(DateTimeFn)
//--------------------------------------------------------------------
// @class Test date time scalar functions
//
class DateTimeFn : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(DateTimeFn,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember NOW
int Variation_1();
// @cmember CURDATE
int Variation_2();
// @cmember DAYOFMONTH 1991 02 26
int Variation_3();
// @cmember DATOFWEEK 1991 02 26
int Variation_4();
// @cmember DAYOFYEAR 1991 02 26
int Variation_5();
// @cmember MONTH 1991 02 26
int Variation_6();
// @cmember QUARTER 1991 02 26
int Variation_7();
// @cmember WEEK 1991 02 26
int Variation_8();
// @cmember YEAR 1991 02 26
int Variation_9();
// @cmember CURTIME
int Variation_10();
// @cmember HOUR 14:49:19
int Variation_11();
// @cmember MINUTE 14:49:19
int Variation_12();
// @cmember SECOND 14:49:19
int Variation_13();
// @cmember DAYNAME d 1994 12 12
int Variation_14();
// @cmember MONTHNAME d 1994 12 12
int Variation_15();
// @cmember TIMESTAMPADD SQL_TSI_DAY d 1994 12 12
int Variation_16();
// @cmember TIMESTAMPDIFF SQL_TSI_MONTH 11 15 94 12 12 94
int Variation_17();
// @cmember CURRENT_TIME
int Variation_18();
// @cmember CURRENT_TIME()
int Variation_19();
// @cmember CURRENT_TIMESTAMP
int Variation_20();
// @cmember CURRENT_TIMESTAMP()
int Variation_21();
// }}
};
// {{ TCW_TESTCASE(DateTimeFn)
#define THE_CLASS DateTimeFn
BEG_TEST_CASE(DateTimeFn, CScalar, L"Test date time scalar functions")
TEST_VARIATION(1, L"NOW")
TEST_VARIATION(2, L"CURDATE")
TEST_VARIATION(3, L"DAYOFMONTH 1991 02 26")
TEST_VARIATION(4, L"DATOFWEEK 1991 02 26")
TEST_VARIATION(5, L"DAYOFYEAR 1991 02 26")
TEST_VARIATION(6, L"MONTH 1991 02 26")
TEST_VARIATION(7, L"QUARTER 1991 02 26")
TEST_VARIATION(8, L"WEEK 1991 02 26")
TEST_VARIATION(9, L"YEAR 1991 02 26")
TEST_VARIATION(10, L"CURTIME")
TEST_VARIATION(11, L"HOUR 14:49:19")
TEST_VARIATION(12, L"MINUTE 14:49:19")
TEST_VARIATION(13, L"SECOND 14:49:19")
TEST_VARIATION(14, L"DAYNAME d 1994 12 12")
TEST_VARIATION(15, L"MONTHNAME d 1994 12 12")
TEST_VARIATION(16, L"TIMESTAMPADD SQL_TSI_DAY d 1994 12 12")
TEST_VARIATION(17, L"TIMESTAMPDIFF SQL_TSI_MONTH 11 15 94 12 12 94")
TEST_VARIATION(18, L"CURRENT_TIME")
TEST_VARIATION(19, L"CURRENT_TIME()")
TEST_VARIATION(20, L"CURRENT_TIMESTAMP")
TEST_VARIATION(21, L"CURRENT_TIMESTAMP()")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(SystemFunctions)
//--------------------------------------------------------------------
// @class Test system scalar functions
//
class SystemFunctions : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(SystemFunctions,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember USER
int Variation_1();
// @cmember DATABASE
int Variation_2();
// @cmember IFNULL NULL 4
int Variation_3();
// @cmember IFNULL -1 4
int Variation_4();
// }}
};
// {{ TCW_TESTCASE(SystemFunctions)
#define THE_CLASS SystemFunctions
BEG_TEST_CASE(SystemFunctions, CScalar, L"Test system scalar functions")
TEST_VARIATION(1, L"USER")
TEST_VARIATION(2, L"DATABASE")
TEST_VARIATION(3, L"IFNULL NULL 4")
TEST_VARIATION(4, L"IFNULL -1 4")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(OuterJoins)
//--------------------------------------------------------------------
// @class Test outer join canonical
//
class OuterJoins : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
CTable * m_pTable2;
CTable * m_pTable3;
WCHAR * m_wszGlobalTableColName;
WCHAR * m_wszTable2ColName;
WCHAR * m_wszTable3ColName;
DBORDINAL m_ulNumCol;
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(OuterJoins,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember Left OJ
int Variation_1();
// @cmember left OJ 3 Tables
int Variation_2();
// @cmember Left OJ OJ_INNER 3 Tables
int Variation_3();
// @cmember Left OJ and OJ_ALL_COMPARISION_OPS
int Variation_4();
// @cmember Left OJ and SQL_OJ_NOT_ORDERED
int Variation_5();
// @cmember Right OJ
int Variation_6();
// @cmember Right OJ and OJ_ALL_COMPARISION_OPS
int Variation_7();
// @cmember Right OJ and SQL_OJ_NOT_ORDERED
int Variation_8();
// @cmember Nested Outer Join
int Variation_9();
// @cmember Nested OJ and OJ_ALL_COMPARISION_OPS
int Variation_10();
// @cmember Left OJ with multiple join predicates
int Variation_11();
// @cmember Right OJ with multiple join predicates
int Variation_12();
// @cmember Left OJ with WHERE clause
int Variation_13();
// }}
};
// {{ TCW_TESTCASE(OuterJoins)
#define THE_CLASS OuterJoins
BEG_TEST_CASE(OuterJoins, CScalar, L"Test outer join canonical")
TEST_VARIATION(1, L"Left OJ")
TEST_VARIATION(2, L"left OJ 3 Tables")
TEST_VARIATION(3, L"Left OJ OJ_INNER 3 Tables")
TEST_VARIATION(4, L"Left OJ and OJ_ALL_COMPARISION_OPS")
TEST_VARIATION(5, L"Left OJ and SQL_OJ_NOT_ORDERED")
TEST_VARIATION(6, L"Right OJ")
TEST_VARIATION(7, L"Right OJ and OJ_ALL_COMPARISION_OPS")
TEST_VARIATION(8, L"Right OJ and SQL_OJ_NOT_ORDERED")
TEST_VARIATION(9, L"Nested Outer Join")
TEST_VARIATION(10, L"Nested OJ and OJ_ALL_COMPARISION_OPS")
TEST_VARIATION(11, L"Left OJ with multiple join predicates")
TEST_VARIATION(12, L"Right OJ with multiple join predicates")
TEST_VARIATION(13, L"Left OJ with WHERE clause")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(LikeEscape)
//--------------------------------------------------------------------
// @class Test Like Escape clause
//
class LikeEscape : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
CTable *m_pInsertTable;
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(LikeEscape,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember Canonical Escape
int Variation_1();
// }}
};
// {{ TCW_TESTCASE(LikeEscape)
#define THE_CLASS LikeEscape
BEG_TEST_CASE(LikeEscape, CScalar, L"Test Like Escape clause")
TEST_VARIATION(1, L"Canonical Escape")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(LiteralDateTimeClauses)
//--------------------------------------------------------------------
// @class Test literal date time escape clauses
//
class LiteralDateTimeClauses : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(LiteralDateTimeClauses,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember TimeStamp
int Variation_1();
// @cmember Date
int Variation_2();
// @cmember Time
int Variation_3();
// @cmember INTERVAL YEAR
int Variation_4();
// @cmember INTERVAL MONTH
int Variation_5();
// @cmember INTERVAL DAY
int Variation_6();
// @cmember INTERVAL HOUR
int Variation_7();
// @cmember INTERVAL MINUTE
int Variation_8();
// @cmember INTERVAL SECOND 3 2
int Variation_9();
// @cmember INTERVAL YEAR TO MONTH
int Variation_10();
// @cmember INTERVAL DAY TO HOUR
int Variation_11();
// @cmember INTERVAL DAY TO MINUTE
int Variation_12();
// @cmember INTERVAL DAY TO SECOND
int Variation_13();
// @cmember INTERVAL HOUR TO MINUTE
int Variation_14();
// @cmember INTERVAL HOUR TO SECOND
int Variation_15();
// @cmember INTERVAL MINUTE TO SECOND
int Variation_16();
// @cmember INTERVAL DAY TO SECOND
int Variation_17();
// @cmember GUID
int Variation_18();
// }}
};
// {{ TCW_TESTCASE(LiteralDateTimeClauses)
#define THE_CLASS LiteralDateTimeClauses
BEG_TEST_CASE(LiteralDateTimeClauses, CScalar, L"Test literal date time escape clauses")
TEST_VARIATION(1, L"TimeStamp")
TEST_VARIATION(2, L"Date")
TEST_VARIATION(3, L"Time")
TEST_VARIATION(4, L"INTERVAL YEAR")
TEST_VARIATION(5, L"INTERVAL MONTH")
TEST_VARIATION(6, L"INTERVAL DAY")
TEST_VARIATION(7, L"INTERVAL HOUR")
TEST_VARIATION(8, L"INTERVAL MINUTE")
TEST_VARIATION(9, L"INTERVAL SECOND 3 2")
TEST_VARIATION(10, L"INTERVAL YEAR TO MONTH")
TEST_VARIATION(11, L"INTERVAL DAY TO HOUR")
TEST_VARIATION(12, L"INTERVAL DAY TO MINUTE")
TEST_VARIATION(13, L"INTERVAL DAY TO SECOND")
TEST_VARIATION(14, L"INTERVAL HOUR TO MINUTE")
TEST_VARIATION(15, L"INTERVAL HOUR TO SECOND")
TEST_VARIATION(16, L"INTERVAL MINUTE TO SECOND")
TEST_VARIATION(17, L"INTERVAL DAY TO SECOND")
TEST_VARIATION(18, L"GUID")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvertClause)
//--------------------------------------------------------------------
// @class Test canonical function convert
//
class ConvertClause : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvertClause,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember Integer to SQL_BIGINT
int Variation_1();
// @cmember Integer to SQL_BINARY
int Variation_2();
// @cmember Integer to SQL_BIT
int Variation_3();
// @cmember Integer to SQL_CHAR
int Variation_4();
// @cmember Integer to SQL_DATE
int Variation_5();
// @cmember Integer to SQL_DECIMAL
int Variation_6();
// @cmember Integer to SQL_DOUBLE
int Variation_7();
// @cmember Integer to SQL_FLOAT
int Variation_8();
// @cmember Integer to SQL_LONGVARBINARY
int Variation_9();
// @cmember Integer to SQL_LONGVARCHAR
int Variation_10();
// @cmember Integer to SQL_NUMERIC
int Variation_11();
// @cmember Integer to SQL_REAL
int Variation_12();
// @cmember Integer to SQL_SMALLINT
int Variation_13();
// @cmember Integer to SQL_TIME
int Variation_14();
// @cmember Integer to SQL_TIMESTAMP
int Variation_15();
// @cmember Integer to SQL_TINYINT
int Variation_16();
// @cmember Integer to SQL_VARBINARY
int Variation_17();
// @cmember Integer to SQL_VARCHAR
int Variation_18();
// @cmember To SQL_WCHAR
int Variation_19();
// @cmember To SQL_VARWCHAR
int Variation_20();
// @cmember To SQL_WLONGVARCHAR
int Variation_21();
// }}
};
// {{ TCW_TESTCASE(ConvertClause)
#define THE_CLASS ConvertClause
BEG_TEST_CASE(ConvertClause, CScalar, L"Test canonical function convert")
TEST_VARIATION(1, L"Integer to SQL_BIGINT")
TEST_VARIATION(2, L"Integer to SQL_BINARY")
TEST_VARIATION(3, L"Integer to SQL_BIT")
TEST_VARIATION(4, L"Integer to SQL_CHAR")
TEST_VARIATION(5, L"Integer to SQL_DATE")
TEST_VARIATION(6, L"Integer to SQL_DECIMAL")
TEST_VARIATION(7, L"Integer to SQL_DOUBLE")
TEST_VARIATION(8, L"Integer to SQL_FLOAT")
TEST_VARIATION(9, L"Integer to SQL_LONGVARBINARY")
TEST_VARIATION(10, L"Integer to SQL_LONGVARCHAR")
TEST_VARIATION(11, L"Integer to SQL_NUMERIC")
TEST_VARIATION(12, L"Integer to SQL_REAL")
TEST_VARIATION(13, L"Integer to SQL_SMALLINT")
TEST_VARIATION(14, L"Integer to SQL_TIME")
TEST_VARIATION(15, L"Integer to SQL_TIMESTAMP")
TEST_VARIATION(16, L"Integer to SQL_TINYINT")
TEST_VARIATION(17, L"Integer to SQL_VARBINARY")
TEST_VARIATION(18, L"Integer to SQL_VARCHAR")
TEST_VARIATION(19, L"To SQL_WCHAR")
TEST_VARIATION(20, L"To SQL_VARWCHAR")
TEST_VARIATION(21, L"To SQL_WLONGVARCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvertFromTim)
//--------------------------------------------------------------------
// @class Test conversion from TIME
//
class ConvertFromTim : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvertFromTim,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember TO SQL_CHAR
int Variation_1();
// @cmember TO SQL_DATE
int Variation_2();
// @cmember To SQL_TIME
int Variation_3();
// @cmember To SQL_TIMESTAMP
int Variation_4();
// }}
};
// {{ TCW_TESTCASE(ConvertFromTim)
#define THE_CLASS ConvertFromTim
BEG_TEST_CASE(ConvertFromTim, CScalar, L"Test conversion from TIME")
TEST_VARIATION(1, L"TO SQL_CHAR")
TEST_VARIATION(2, L"TO SQL_DATE")
TEST_VARIATION(3, L"To SQL_TIME")
TEST_VARIATION(4, L"To SQL_TIMESTAMP")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvertStamp)
//--------------------------------------------------------------------
// @class Test conversion from TIMESTAMP
//
class ConvertStamp : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvertStamp,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To SQL_CHAR
int Variation_1();
// @cmember To SQL_DATE
int Variation_2();
// @cmember To SQL_TIME
int Variation_3();
// @cmember To SQL_TIMESTAMP
int Variation_4();
// @cmember To SQL_VARCHAR
int Variation_5();
// @cmember To SQL_LONGVARCHAR
int Variation_6();
// @cmember To SQL_VARWCHAR
int Variation_7();
// @cmember To SQL_WCHAR
int Variation_8();
// @cmember To SQL_LONGVARWCHAR
int Variation_9();
// }}
};
// {{ TCW_TESTCASE(ConvertStamp)
#define THE_CLASS ConvertStamp
BEG_TEST_CASE(ConvertStamp, CScalar, L"Test conversion from TIMESTAMP")
TEST_VARIATION(1, L"To SQL_CHAR")
TEST_VARIATION(2, L"To SQL_DATE")
TEST_VARIATION(3, L"To SQL_TIME")
TEST_VARIATION(4, L"To SQL_TIMESTAMP")
TEST_VARIATION(5, L"To SQL_VARCHAR")
TEST_VARIATION(6, L"To SQL_LONGVARCHAR")
TEST_VARIATION(7, L"To SQL_VARWCHAR")
TEST_VARIATION(8, L"To SQL_WCHAR")
TEST_VARIATION(9, L"To SQL_LONGVARWCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromLongVarBin)
//--------------------------------------------------------------------
// @class Test conversions from SQL_LONGVARBINARY
//
class ConvFromLongVarBin : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromLongVarBin,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To Binary
int Variation_1();
// @cmember To Char
int Variation_2();
// @cmember To LongVarBinary
int Variation_3();
// @cmember To LongVarChar
int Variation_4();
// @cmember To varbinary
int Variation_5();
// @cmember To Varchar
int Variation_6();
// @cmember To SQL_WCHAR
int Variation_7();
// @cmember To SQL_VARWCHAR
int Variation_8();
// @cmember To SQL_LONGVARWCHAR
int Variation_9();
// }}
};
// {{ TCW_TESTCASE(ConvFromLongVarBin)
#define THE_CLASS ConvFromLongVarBin
BEG_TEST_CASE(ConvFromLongVarBin, CScalar, L"Test conversions from SQL_LONGVARBINARY")
TEST_VARIATION(1, L"To Binary")
TEST_VARIATION(2, L"To Char")
TEST_VARIATION(3, L"To LongVarBinary")
TEST_VARIATION(4, L"To LongVarChar")
TEST_VARIATION(5, L"To varbinary")
TEST_VARIATION(6, L"To Varchar")
TEST_VARIATION(7, L"To SQL_WCHAR")
TEST_VARIATION(8, L"To SQL_VARWCHAR")
TEST_VARIATION(9, L"To SQL_LONGVARWCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromLongVarChar)
//--------------------------------------------------------------------
// @class Test conversions from SQL_LONGVARCHAR
//
class ConvFromLongVarChar : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromLongVarChar,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To Bigint
int Variation_1();
// @cmember To Binary
int Variation_2();
// @cmember To Bit
int Variation_3();
// @cmember To Char
int Variation_4();
// @cmember To SQL_DATE
int Variation_5();
// @cmember To SQL_DECIMAL
int Variation_6();
// @cmember To SQL_DOUBLE
int Variation_7();
// @cmember To SQL_FLOAT
int Variation_8();
// @cmember To SQL_INTEGER
int Variation_9();
// @cmember To SQL_LONGVARBINARY
int Variation_10();
// @cmember To SQL_LONGVARCHAR
int Variation_11();
// @cmember To SQL_NUMERIC
int Variation_12();
// @cmember To SQL_REAL
int Variation_13();
// @cmember To SQL_SMALLINT
int Variation_14();
// @cmember To SQL_TIME
int Variation_15();
// @cmember To SQL_TIMESTAMP
int Variation_16();
// @cmember To TinyInt
int Variation_17();
// @cmember To VarBinary
int Variation_18();
// @cmember To Varchar
int Variation_19();
// @cmember To SQL_WCHAR
int Variation_20();
// @cmember To SQL_VARWCHAR
int Variation_21();
// @cmember To SQL_LONGVARWCHAR
int Variation_22();
// }}
};
// {{ TCW_TESTCASE(ConvFromLongVarChar)
#define THE_CLASS ConvFromLongVarChar
BEG_TEST_CASE(ConvFromLongVarChar, CScalar, L"Test conversions from SQL_LONGVARCHAR")
TEST_VARIATION(1, L"To Bigint")
TEST_VARIATION(2, L"To Binary")
TEST_VARIATION(3, L"To Bit")
TEST_VARIATION(4, L"To Char")
TEST_VARIATION(5, L"To SQL_DATE")
TEST_VARIATION(6, L"To SQL_DECIMAL")
TEST_VARIATION(7, L"To SQL_DOUBLE")
TEST_VARIATION(8, L"To SQL_FLOAT")
TEST_VARIATION(9, L"To SQL_INTEGER")
TEST_VARIATION(10, L"To SQL_LONGVARBINARY")
TEST_VARIATION(11, L"To SQL_LONGVARCHAR")
TEST_VARIATION(12, L"To SQL_NUMERIC")
TEST_VARIATION(13, L"To SQL_REAL")
TEST_VARIATION(14, L"To SQL_SMALLINT")
TEST_VARIATION(15, L"To SQL_TIME")
TEST_VARIATION(16, L"To SQL_TIMESTAMP")
TEST_VARIATION(17, L"To TinyInt")
TEST_VARIATION(18, L"To VarBinary")
TEST_VARIATION(19, L"To Varchar")
TEST_VARIATION(20, L"To SQL_WCHAR")
TEST_VARIATION(21, L"To SQL_VARWCHAR")
TEST_VARIATION(22, L"To SQL_LONGVARWCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromNumeric)
//--------------------------------------------------------------------
// @class Test conversions from SQL_NUMERIC
//
class ConvFromNumeric : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromNumeric,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember ToBigInt
int Variation_1();
// @cmember To Binary
int Variation_2();
// @cmember To Bit
int Variation_3();
// @cmember To Char
int Variation_4();
// @cmember To SQL_DECIMAL
int Variation_5();
// @cmember To DOUBLE
int Variation_6();
// @cmember To FLOAT
int Variation_7();
// @cmember To INTEGER
int Variation_8();
// @cmember To LONGVARCHAR
int Variation_9();
// @cmember To NUMERIC
int Variation_10();
// @cmember To REAL
int Variation_11();
// @cmember To SMALLINT
int Variation_12();
// @cmember To TINYINT
int Variation_13();
// @cmember To VARCHAR
int Variation_14();
// @cmember TO WCHAR
int Variation_15();
// @cmember To WVARCHAR
int Variation_16();
// @cmember To WLONGVARCHAR
int Variation_17();
// }}
};
// {{ TCW_TESTCASE(ConvFromNumeric)
#define THE_CLASS ConvFromNumeric
BEG_TEST_CASE(ConvFromNumeric, CScalar, L"Test conversions from SQL_NUMERIC")
TEST_VARIATION(1, L"ToBigInt")
TEST_VARIATION(2, L"To Binary")
TEST_VARIATION(3, L"To Bit")
TEST_VARIATION(4, L"To Char")
TEST_VARIATION(5, L"To SQL_DECIMAL")
TEST_VARIATION(6, L"To DOUBLE")
TEST_VARIATION(7, L"To FLOAT")
TEST_VARIATION(8, L"To INTEGER")
TEST_VARIATION(9, L"To LONGVARCHAR")
TEST_VARIATION(10, L"To NUMERIC")
TEST_VARIATION(11, L"To REAL")
TEST_VARIATION(12, L"To SMALLINT")
TEST_VARIATION(13, L"To TINYINT")
TEST_VARIATION(14, L"To VARCHAR")
TEST_VARIATION(15, L"TO WCHAR")
TEST_VARIATION(16, L"To WVARCHAR")
TEST_VARIATION(17, L"To WLONGVARCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromReal)
//--------------------------------------------------------------------
// @class Test conversion from SQL_REAL
//
class ConvFromReal : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromReal,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To SQL_CHAR
int Variation_1();
// @cmember To DECIMAL
int Variation_2();
// @cmember To DOUBLE
int Variation_3();
// @cmember To FLOAT
int Variation_4();
// @cmember To INTEGER
int Variation_5();
// @cmember To NUMERIC
int Variation_6();
// @cmember To REAL
int Variation_7();
// @cmember To SMALLINT
int Variation_8();
// @cmember To TINYINT
int Variation_9();
// @cmember To VARCHAR
int Variation_10();
// @cmember To LONGVARCHAR
int Variation_11();
// @cmember To WCHAR
int Variation_12();
// @cmember To WVARCHAR
int Variation_13();
// @cmember To WLONGVARCHAR
int Variation_14();
// }}
};
// {{ TCW_TESTCASE(ConvFromReal)
#define THE_CLASS ConvFromReal
BEG_TEST_CASE(ConvFromReal, CScalar, L"Test conversion from SQL_REAL")
TEST_VARIATION(1, L"To SQL_CHAR")
TEST_VARIATION(2, L"To DECIMAL")
TEST_VARIATION(3, L"To DOUBLE")
TEST_VARIATION(4, L"To FLOAT")
TEST_VARIATION(5, L"To INTEGER")
TEST_VARIATION(6, L"To NUMERIC")
TEST_VARIATION(7, L"To REAL")
TEST_VARIATION(8, L"To SMALLINT")
TEST_VARIATION(9, L"To TINYINT")
TEST_VARIATION(10, L"To VARCHAR")
TEST_VARIATION(11, L"To LONGVARCHAR")
TEST_VARIATION(12, L"To WCHAR")
TEST_VARIATION(13, L"To WVARCHAR")
TEST_VARIATION(14, L"To WLONGVARCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromSmallInt)
//--------------------------------------------------------------------
// @class Test covnersion from SQL_SMALLINT
//
class ConvFromSmallInt : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromSmallInt,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To CHAR
int Variation_1();
// @cmember To DECIMAL
int Variation_2();
// @cmember To DOUBLE
int Variation_3();
// @cmember To FLOAT
int Variation_4();
// @cmember To INTEGER
int Variation_5();
// @cmember To NUMERIC
int Variation_6();
// @cmember To REAL
int Variation_7();
// @cmember To SMALLINT
int Variation_8();
// @cmember To TINYINT
int Variation_9();
// @cmember TO LONGVARCHAR
int Variation_10();
// @cmember To VARCHAR
int Variation_11();
// @cmember to WCHAR
int Variation_12();
// @cmember To WVARCHAR
int Variation_13();
// @cmember To WLONGVARCHAR
int Variation_14();
// }}
};
// {{ TCW_TESTCASE(ConvFromSmallInt)
#define THE_CLASS ConvFromSmallInt
BEG_TEST_CASE(ConvFromSmallInt, CScalar, L"Test covnersion from SQL_SMALLINT")
TEST_VARIATION(1, L"To CHAR")
TEST_VARIATION(2, L"To DECIMAL")
TEST_VARIATION(3, L"To DOUBLE")
TEST_VARIATION(4, L"To FLOAT")
TEST_VARIATION(5, L"To INTEGER")
TEST_VARIATION(6, L"To NUMERIC")
TEST_VARIATION(7, L"To REAL")
TEST_VARIATION(8, L"To SMALLINT")
TEST_VARIATION(9, L"To TINYINT")
TEST_VARIATION(10, L"TO LONGVARCHAR")
TEST_VARIATION(11, L"To VARCHAR")
TEST_VARIATION(12, L"to WCHAR")
TEST_VARIATION(13, L"To WVARCHAR")
TEST_VARIATION(14, L"To WLONGVARCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromTINYINT)
//--------------------------------------------------------------------
// @class Test conversions from SQL_TINYINT
//
class ConvFromTINYINT : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromTINYINT,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To SQL_CHAR
int Variation_1();
// @cmember To DECIMAL
int Variation_2();
// @cmember To Double
int Variation_3();
// @cmember To Float
int Variation_4();
// @cmember To Integer
int Variation_5();
// @cmember To Numeric
int Variation_6();
// @cmember To Real
int Variation_7();
// @cmember To LONGVARCHAR
int Variation_8();
// @cmember To Smallint
int Variation_9();
// @cmember To tinyint
int Variation_10();
// @cmember To VARCHAR
int Variation_11();
// @cmember To WCHAR
int Variation_12();
// @cmember To WVARCHAR
int Variation_13();
// @cmember To WLONGVARCHAR
int Variation_14();
// }}
};
// {{ TCW_TESTCASE(ConvFromTINYINT)
#define THE_CLASS ConvFromTINYINT
BEG_TEST_CASE(ConvFromTINYINT, CScalar, L"Test conversions from SQL_TINYINT")
TEST_VARIATION(1, L"To SQL_CHAR")
TEST_VARIATION(2, L"To DECIMAL")
TEST_VARIATION(3, L"To Double")
TEST_VARIATION(4, L"To Float")
TEST_VARIATION(5, L"To Integer")
TEST_VARIATION(6, L"To Numeric")
TEST_VARIATION(7, L"To Real")
TEST_VARIATION(8, L"To LONGVARCHAR")
TEST_VARIATION(9, L"To Smallint")
TEST_VARIATION(10, L"To tinyint")
TEST_VARIATION(11, L"To VARCHAR")
TEST_VARIATION(12, L"To WCHAR")
TEST_VARIATION(13, L"To WVARCHAR")
TEST_VARIATION(14, L"To WLONGVARCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromGUID)
//--------------------------------------------------------------------
// @class Test conversions from SQL_GUID
//
class ConvFromGUID : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromGUID,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To GUID
int Variation_1();
// @cmember To CHAR
int Variation_2();
// @cmember To VARCHAR
int Variation_3();
// @cmember To LONGVARCHAR
int Variation_4();
// @cmember To WCHAR
int Variation_5();
// @cmember To WVARCHAR
int Variation_6();
// @cmember To WLONGVARCHAR
int Variation_7();
// }}
};
// {{ TCW_TESTCASE(ConvFromGUID)
#define THE_CLASS ConvFromGUID
BEG_TEST_CASE(ConvFromGUID, CScalar, L"Test conversions from SQL_GUID")
TEST_VARIATION(1, L"To GUID")
TEST_VARIATION(2, L"To CHAR")
TEST_VARIATION(3, L"To VARCHAR")
TEST_VARIATION(4, L"To LONGVARCHAR")
TEST_VARIATION(5, L"To WCHAR")
TEST_VARIATION(6, L"To WVARCHAR")
TEST_VARIATION(7, L"To WLONGVARCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromWCHAR)
//--------------------------------------------------------------------
// @class Test conversion from SQL_WCHAR
//
class ConvFromWCHAR : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromWCHAR,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To BigInt
int Variation_1();
// @cmember To Binary
int Variation_2();
// @cmember To Bit
int Variation_3();
// @cmember To Char
int Variation_4();
// @cmember To SQL_DATE
int Variation_5();
// @cmember To Decimal
int Variation_6();
// @cmember To Double
int Variation_7();
// @cmember To Float
int Variation_8();
// @cmember To Integer
int Variation_9();
// @cmember To LongVarBinary
int Variation_10();
// @cmember To LongVarChar
int Variation_11();
// @cmember To Numeric
int Variation_12();
// @cmember To Real
int Variation_13();
// @cmember To Smallint
int Variation_14();
// @cmember To Time
int Variation_15();
// @cmember To TimeStamp
int Variation_16();
// @cmember To TinyInt
int Variation_17();
// @cmember To VarBinary
int Variation_18();
// @cmember To VARCHAR
int Variation_19();
// @cmember To WCHAR
int Variation_20();
// @cmember To WVARCHAR
int Variation_21();
// @cmember To WLONGVARCHAR
int Variation_22();
// @cmember To SQL_GUID
int Variation_23();
// }}
};
// {{ TCW_TESTCASE(ConvFromWCHAR)
#define THE_CLASS ConvFromWCHAR
BEG_TEST_CASE(ConvFromWCHAR, CScalar, L"Test conversion from SQL_WCHAR")
TEST_VARIATION(1, L"To BigInt")
TEST_VARIATION(2, L"To Binary")
TEST_VARIATION(3, L"To Bit")
TEST_VARIATION(4, L"To Char")
TEST_VARIATION(5, L"To SQL_DATE")
TEST_VARIATION(6, L"To Decimal")
TEST_VARIATION(7, L"To Double")
TEST_VARIATION(8, L"To Float")
TEST_VARIATION(9, L"To Integer")
TEST_VARIATION(10, L"To LongVarBinary")
TEST_VARIATION(11, L"To LongVarChar")
TEST_VARIATION(12, L"To Numeric")
TEST_VARIATION(13, L"To Real")
TEST_VARIATION(14, L"To Smallint")
TEST_VARIATION(15, L"To Time")
TEST_VARIATION(16, L"To TimeStamp")
TEST_VARIATION(17, L"To TinyInt")
TEST_VARIATION(18, L"To VarBinary")
TEST_VARIATION(19, L"To VARCHAR")
TEST_VARIATION(20, L"To WCHAR")
TEST_VARIATION(21, L"To WVARCHAR")
TEST_VARIATION(22, L"To WLONGVARCHAR")
TEST_VARIATION(23, L"To SQL_GUID")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromVarBin)
//--------------------------------------------------------------------
// @class Test conversion from SQL_VARBINARY
//
class ConvFromVarBin : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromVarBin,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To VARBINARY
int Variation_1();
// @cmember to CHAR
int Variation_2();
// @cmember to WCHAR
int Variation_3();
// }}
};
// {{ TCW_TESTCASE(ConvFromVarBin)
#define THE_CLASS ConvFromVarBin
BEG_TEST_CASE(ConvFromVarBin, CScalar, L"Test conversion from SQL_VARBINARY")
TEST_VARIATION(1, L"To VARBINARY")
TEST_VARIATION(2, L"to CHAR")
TEST_VARIATION(3, L"to WCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromVarChar)
//--------------------------------------------------------------------
// @class Conversion from SQL_VARCHAR
//
class ConvFromVarChar : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromVarChar,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To NUMERIC
int Variation_1();
// }}
};
// {{ TCW_TESTCASE(ConvFromVarChar)
#define THE_CLASS ConvFromVarChar
BEG_TEST_CASE(ConvFromVarChar, CScalar, L"Conversion from SQL_VARCHAR")
TEST_VARIATION(1, L"To NUMERIC")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(ConvFromDecimal)
//--------------------------------------------------------------------
// @class Test conversion from SQL_DECIMAL
//
class ConvFromDecimal : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(ConvFromDecimal,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember To CHAR
int Variation_1();
// }}
};
// {{ TCW_TESTCASE(ConvFromDecimal)
#define THE_CLASS ConvFromDecimal
BEG_TEST_CASE(ConvFromDecimal, CScalar, L"Test conversion from SQL_DECIMAL")
TEST_VARIATION(1, L"To CHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(Y2K_Tests)
//--------------------------------------------------------------------
// @class Test timedate scalar funcs relating to Y2k
//
class Y2K_Tests : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(Y2K_Tests,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember DAYNAME(timestamp
int Variation_1();
// @cmember DAYNAME(date
int Variation_2();
// @cmember DAYOFMONTH(timestamp
int Variation_3();
// @cmember DAYOFMONTH(date
int Variation_4();
// @cmember DAYOFWEEK(timestamp
int Variation_5();
// @cmember DAYOFWEEK(date
int Variation_6();
// @cmember DAYOFYEAR(timestamp
int Variation_7();
// @cmember DAYOFYEAR(date
int Variation_8();
// @cmember MONTH(timestamp
int Variation_9();
// @cmember MONTH(date
int Variation_10();
// @cmember QUARTER(timestamp
int Variation_11();
// @cmember QUARTER(date
int Variation_12();
// @cmember TIMESTAMPADD(timestamps
int Variation_13();
// @cmember TIMESTAMPADD(dates
int Variation_14();
// @cmember TIMESTAMPDIFF(timestamps
int Variation_15();
// @cmember TIMESTAMPDIFF(dates
int Variation_16();
// @cmember WEEK(timestamp
int Variation_17();
// @cmember WEEK(dates
int Variation_18();
// @cmember YEAR(timestamps
int Variation_19();
// @cmember YEAR(dates
int Variation_20();
// @cmember HOUR(timestamps
int Variation_21();
// @cmember HOUR(date
int Variation_22();
// @cmember DAYOFYEAR(timestamp
int Variation_23();
// @cmember DAYOFWEEK(timestamp
int Variation_24();
// @cmember DAYOFWEEK(timestamp
int Variation_25();
// @cmember WEEK(dates
int Variation_26();
// @cmember DAYOFYEAR(timestamp
int Variation_27();
// @cmember DAYOFYEAR(timestamp
int Variation_28();
// @cmember DAYOFYEAR(timestamp
int Variation_29();
// @cmember DAYOFWEEK(timestamp
int Variation_30();
// @cmember QUARTER(timestamp
int Variation_31();
// @cmember QUARTER(timestamp
int Variation_32();
// @cmember DAYOFYEAR(timestamp
int Variation_33();
// @cmember DAYOFYEAR(timestamp
int Variation_34();
// @cmember DAYOFWEEK(timestamp
int Variation_35();
// @cmember DAYOFWEEK(timestamp
int Variation_36();
// @cmember DAYOFWEEK(timestamp
int Variation_37();
// @cmember DAYOFYEAR(timestamp
int Variation_38();
// @cmember DAYOFWEEK(timestamp
int Variation_39();
// @cmember DAYOFWEEK(timestamp
int Variation_40();
// @cmember Nested TIMESTAMPADD timestamp
int Variation_41();
// @cmember Nested TIMESTAMPADD date
int Variation_42();
// @cmember Time canonical literal
int Variation_43();
// }}
} ;
// {{ TCW_TESTCASE(Y2K_Tests)
#define THE_CLASS Y2K_Tests
BEG_TEST_CASE(Y2K_Tests, CScalar, L"Test timedate scalar funcs relating to Y2k")
TEST_VARIATION(1, L"DAYNAME(timestamp")
TEST_VARIATION(2, L"DAYNAME(date")
TEST_VARIATION(3, L"DAYOFMONTH(timestamp")
TEST_VARIATION(4, L"DAYOFMONTH(date")
TEST_VARIATION(5, L"DAYOFWEEK(timestamp")
TEST_VARIATION(6, L"DAYOFWEEK(date")
TEST_VARIATION(7, L"DAYOFYEAR(timestamp")
TEST_VARIATION(8, L"DAYOFYEAR(date")
TEST_VARIATION(9, L"MONTH(timestamp")
TEST_VARIATION(10, L"MONTH(date")
TEST_VARIATION(11, L"QUARTER(timestamp")
TEST_VARIATION(12, L"QUARTER(date")
TEST_VARIATION(13, L"TIMESTAMPADD(timestamps")
TEST_VARIATION(14, L"TIMESTAMPADD(dates")
TEST_VARIATION(15, L"TIMESTAMPDIFF(timestamps")
TEST_VARIATION(16, L"TIMESTAMPDIFF(dates")
TEST_VARIATION(17, L"WEEK(timestamp")
TEST_VARIATION(18, L"WEEK(dates")
TEST_VARIATION(19, L"YEAR(timestamps")
TEST_VARIATION(20, L"YEAR(dates")
TEST_VARIATION(21, L"HOUR(timestamps")
TEST_VARIATION(22, L"HOUR(date")
TEST_VARIATION(23, L"DAYOFYEAR(timestamp")
TEST_VARIATION(24, L"DAYOFWEEK(timestamp")
TEST_VARIATION(25, L"DAYOFWEEK(timestamp")
TEST_VARIATION(26, L"WEEK(dates")
TEST_VARIATION(27, L"DAYOFYEAR(timestamp")
TEST_VARIATION(28, L"DAYOFYEAR(timestamp")
TEST_VARIATION(29, L"DAYOFYEAR(timestamp")
TEST_VARIATION(30, L"DAYOFWEEK(timestamp")
TEST_VARIATION(31, L"QUARTER(timestamp")
TEST_VARIATION(32, L"QUARTER(timestamp")
TEST_VARIATION(33, L"DAYOFYEAR(timestamp")
TEST_VARIATION(34, L"DAYOFYEAR(timestamp")
TEST_VARIATION(35, L"DAYOFWEEK(timestamp")
TEST_VARIATION(36, L"DAYOFWEEK(timestamp")
TEST_VARIATION(37, L"DAYOFWEEK(timestamp")
TEST_VARIATION(38, L"DAYOFYEAR(timestamp")
TEST_VARIATION(39, L"DAYOFWEEK(timestamp")
TEST_VARIATION(40, L"DAYOFWEEK(timestamp")
TEST_VARIATION(41, L"Nested TIMESTAMPADD timestamp")
TEST_VARIATION(42, L"Nested TIMESTAMPADD date")
TEST_VARIATION(43, L"Time canonical literal")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// {{ TCW_TEST_CASE_MAP(EURO)
//--------------------------------------------------------------------
// @class Ansi Unicode conversion cases involving EURO symbol
//
class EURO : public CScalar {
private:
// @cmember Static array of variations
DECLARE_TEST_CASE_DATA();
WCHAR m_wszEuro[2];
BOOL m_fPass;
public:
// {{ TCW_DECLARE_FUNCS
// @cmember Execution Routine
DECLARE_TEST_CASE_FUNCS(EURO,CScalar);
// }}
// @cmember Initialization Routine
virtual BOOL Init();
// @cmember Termination Routine
virtual BOOL Terminate();
// {{ TCW_TESTVARS()
// @cmember Convert SQL_CHAR to SQL_CHAR
int Variation_1();
// @cmember Convert SQL_VARCHAR to SQL_VARCHAR
int Variation_2();
// @cmember Convert SQL_LONGVARCHAR to SQL_LONGVARCHAR
int Variation_3();
// @cmember Convert SQL_WCHAR to SQL_WCHAR
int Variation_4();
// @cmember Convert SQL_WVARCHAR to SQL_WVARCHAR
int Variation_5();
// @cmember Convert SQL_WLONGVARCHAR to SQL_WLONGVARCHAR
int Variation_6();
// @cmember Convert SQL_CHAR to SQL_WCHAR
int Variation_7();
// @cmember Convert SQL_CHAR to SQL_WVARCHAR
int Variation_8();
// @cmember Convert SQL_CHAR to SQL_WLONGVARCHAR
int Variation_9();
// @cmember Convert SQL_VARCHAR to SQLWCHAR
int Variation_10();
// @cmember Convert SQL_VARCHAR to SQL_WVARCHAR
int Variation_11();
// @cmember Convert SQL_VARCHAR to SQL_WLONGVARCHAR
int Variation_12();
// @cmember Convert SQL_LONGVARCHAR to SQL_WCHAR
int Variation_13();
// @cmember Convert SQL_LONGVARCHAR to SQL_WVARCHAR
int Variation_14();
// @cmember Convert SQL_LONGVARCHAR to SQL_WLONGVARCHAR
int Variation_15();
// @cmember Convert SQL_WCHAR to SQL_CHAR
int Variation_16();
// @cmember Convert SQL_WCHAR to SQL_VARCHAR
int Variation_17();
// @cmember Convert SQL_WCHAR to SQL_LONGVARCHAR
int Variation_18();
// @cmember Convert SQL_WVARCHAR to SQL_CHAR
int Variation_19();
// @cmember Convert SQL_WVARCHAR to SQL_VARCHAR
int Variation_20();
// @cmember Convert SQL_WVARCHAR to SQL_LONGVARCHAR
int Variation_21();
// @cmember Convert SQL_WLONGVARCHAR to SQL_CHAR
int Variation_22();
// @cmember Convert SQL_WLONGVARCHAR to SQL_VARCHAR
int Variation_23();
// @cmember Convert SQL_WLONGVARCHAR to SQL_LONGVARCHAR
int Variation_24();
// }}
};
// {{ TCW_TESTCASE(EURO)
#define THE_CLASS EURO
BEG_TEST_CASE(EURO, CScalar, L"Ansi Unicode conversion cases involving EURO symbol")
TEST_VARIATION(1, L"Convert SQL_CHAR to SQL_CHAR")
TEST_VARIATION(2, L"Convert SQL_VARCHAR to SQL_VARCHAR")
TEST_VARIATION(3, L"Convert SQL_LONGVARCHAR to SQL_LONGVARCHAR")
TEST_VARIATION(4, L"Convert SQL_WCHAR to SQL_WCHAR")
TEST_VARIATION(5, L"Convert SQL_WVARCHAR to SQL_WVARCHAR")
TEST_VARIATION(6, L"Convert SQL_WLONGVARCHAR to SQL_WLONGVARCHAR")
TEST_VARIATION(7, L"Convert SQL_CHAR to SQL_WCHAR")
TEST_VARIATION(8, L"Convert SQL_CHAR to SQL_WVARCHAR")
TEST_VARIATION(9, L"Convert SQL_CHAR to SQL_WLONGVARCHAR")
TEST_VARIATION(10, L"Convert SQL_VARCHAR to SQLWCHAR")
TEST_VARIATION(11, L"Convert SQL_VARCHAR to SQL_WVARCHAR")
TEST_VARIATION(12, L"Convert SQL_VARCHAR to SQL_WLONGVARCHAR")
TEST_VARIATION(13, L"Convert SQL_LONGVARCHAR to SQL_WCHAR")
TEST_VARIATION(14, L"Convert SQL_LONGVARCHAR to SQL_WVARCHAR")
TEST_VARIATION(15, L"Convert SQL_LONGVARCHAR to SQL_WLONGVARCHAR")
TEST_VARIATION(16, L"Convert SQL_WCHAR to SQL_CHAR")
TEST_VARIATION(17, L"Convert SQL_WCHAR to SQL_VARCHAR")
TEST_VARIATION(18, L"Convert SQL_WCHAR to SQL_LONGVARCHAR")
TEST_VARIATION(19, L"Convert SQL_WVARCHAR to SQL_CHAR")
TEST_VARIATION(20, L"Convert SQL_WVARCHAR to SQL_VARCHAR")
TEST_VARIATION(21, L"Convert SQL_WVARCHAR to SQL_LONGVARCHAR")
TEST_VARIATION(22, L"Convert SQL_WLONGVARCHAR to SQL_CHAR")
TEST_VARIATION(23, L"Convert SQL_WLONGVARCHAR to SQL_VARCHAR")
TEST_VARIATION(24, L"Convert SQL_WLONGVARCHAR to SQL_LONGVARCHAR")
END_TEST_CASE()
#undef THE_CLASS
// }}
// }} TCW_TEST_CASE_MAP_END
// }} END_DECLARE_TEST_CASES()
// {{ TCW_TESTMODULE(ThisModule)
TEST_MODULE(23, ThisModule, gwszModuleDescrip)
TEST_CASE(1, StringFunctions)
TEST_CASE(2, NumFunctions)
TEST_CASE(3, DateTimeFn)
TEST_CASE(4, SystemFunctions)
TEST_CASE(5, OuterJoins)
TEST_CASE(6, LikeEscape)
TEST_CASE(7, LiteralDateTimeClauses)
TEST_CASE(8, ConvertClause)
TEST_CASE(9, ConvertFromTim)
TEST_CASE(10, ConvertStamp)
TEST_CASE(11, ConvFromLongVarBin)
TEST_CASE(12, ConvFromLongVarChar)
TEST_CASE(13, ConvFromNumeric)
TEST_CASE(14, ConvFromReal)
TEST_CASE(15, ConvFromSmallInt)
TEST_CASE(16, ConvFromTINYINT)
TEST_CASE(17, ConvFromGUID)
TEST_CASE(18, ConvFromWCHAR)
TEST_CASE(19, ConvFromVarBin)
TEST_CASE(20, ConvFromVarChar)
TEST_CASE(21, ConvFromDecimal)
TEST_CASE(22, Y2K_Tests)
TEST_CASE(23, EURO)
END_TEST_MODULE()
// }}
// {{ TCW_TC_PROTOTYPE(StringFunctions)
//*-----------------------------------------------------------------------
//| Test Case: StringFunctions - Test scalar string functions
//| Created: 05/03/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL StringFunctions::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
// TO DO: Add your own code here
// NEED To see if the provider supports string scalar functions
// There is no way to do this in OLE-DB, so we may have to hard-code.
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc ASCII Bz
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_1()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnAscii));
if(IsSupportedScalar(SQL_FN_STR_ASCII))
return CheckQry(L"66", CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc CHAR 102
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_2()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnChar));
if(IsSupportedScalar(SQL_FN_STR_CHAR))
return CheckQry(L"f", CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc CONCAT Fire Truck
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_3()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnConcat));
if(IsSupportedScalar(SQL_FN_STR_CONCAT))
return CheckQry(L"FireTruck",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc LTRIM a BCDef
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_4()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnInsert));
if(IsSupportedScalar(SQL_FN_STR_INSERT))
return CheckQry(L"Firehosek",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc LENGTH
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_5()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnLeft));
if(IsSupportedScalar(SQL_FN_STR_LEFT))
return CheckQry(L"aB",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc LOCATE st in forest estates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_6()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnLocate));
if(IsSupportedScalar(SQL_FN_STR_LOCATE))
return CheckQry(L"9",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc LCASE fIrEtRucK
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_7()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnLcase));
if(IsSupportedScalar(SQL_FN_STR_LCASE))
return CheckQry(L"firetruck",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc REPEAT tq 3
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_8()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRepeat));
if(IsSupportedScalar(SQL_FN_STR_REPEAT))
return CheckQry(L"t qt qt q",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc REPLACE forest estates es truck
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_9()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnReplace));
if(IsSupportedScalar(SQL_FN_STR_REPLACE))
return CheckQry(L"fortruckt trucktattruck",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc RIGHT forest estates 7
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_10()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRight));
if(IsSupportedScalar(SQL_FN_STR_RIGHT))
return CheckQry(L"estates",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc RTRIM forest estates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_11()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRtrim));
if(IsSupportedScalar(SQL_FN_STR_RTRIM))
return CheckQry(L" forest estates",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc SUBSTRING forest estates 5 4
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_12()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSubstring));
if(IsSupportedScalar(SQL_FN_STR_SUBSTRING))
return CheckQry(L"rest",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc UCASE forest estates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_13()
{
swprintf(m_wszQuery, g_wszScalarFmt,GetidsString(m_buf,idsFnUcase));
if(IsSupportedScalar(SQL_FN_STR_UCASE))
return CheckQry(L" FOREST ESTATES ",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc DIFFERENCE c ab
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_14()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDiff));
if(IsSupportedScalar(SQL_FN_STR_DIFFERENCE))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc SOUNDEX ab
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_15()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSoundex));
if(IsSupportedScalar(SQL_FN_STR_SOUNDEX))
return CheckQry(L"A100",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc SPACE 5
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_16()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSpace));
if(IsSupportedScalar(SQL_FN_STR_SPACE))
return CheckQry(L" ",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc CONCAT nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_17()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnConcatNested));
if(IsSupportedScalar(SQL_FN_STR_CONCAT))
return CheckQry(L"AAABBB",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc LEFT nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_18()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnLeftNested));
if(IsSupportedScalar(SQL_FN_STR_LEFT))
return CheckQry(L"ab",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc RIGHT nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_19()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRightNested));
if(IsSupportedScalar(SQL_FN_STR_RIGHT))
return CheckQry(L"fg",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc LOCATE nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_20()
{
// check: SQL Server supports LOCATE2
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnLocateNested));
if(IsSupportedScalar(SQL_FN_STR_LOCATE_2))
return CheckQry(L"3",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc SUBSTRING nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_21()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSubstringNested));
if(IsSupportedScalar(SQL_FN_STR_SUBSTRING))
return CheckQry(L"bc",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(22)
//*-----------------------------------------------------------------------
// @mfunc DIFFERENCE nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_22()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDiffNested));
if(IsSupportedScalar(SQL_FN_STR_DIFFERENCE))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(23)
//*-----------------------------------------------------------------------
// @mfunc REPEAT nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_23()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRepeatNested));
if(IsSupportedScalar(SQL_FN_STR_REPEAT))
return CheckQry(L"abcabcabc",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(24)
//*-----------------------------------------------------------------------
// @mfunc REPLACE nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_24()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnReplaceNested));
if(IsSupportedScalar(SQL_FN_STR_REPLACE))
return CheckQry(L"aXbXdX",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(25)
//*-----------------------------------------------------------------------
// @mfunc INSERT nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_25()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnInsertNested));
if(IsSupportedScalar(SQL_FN_STR_INSERT))
return CheckQry(L"aXYefg",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(26)
//*-----------------------------------------------------------------------
// @mfunc mulit-INSERT nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_26()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnMultiInsert));
if(IsSupportedScalar(SQL_FN_STR_INSERT))
return CheckQry(L"123XWZ5678",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(27)
//*-----------------------------------------------------------------------
// @mfunc Multi CONCAT nested
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_27()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnMultiConcat));
if((IsSupportedScalar(SQL_FN_STR_CONCAT)) && (IsSupportedScalar(SQL_FN_STR_UCASE)) && (IsSupportedScalar(SQL_FN_STR_SPACE)))
return CheckQry(L"C ",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(28)
//*-----------------------------------------------------------------------
// @mfunc STRING and NUMERIC
//
// @rdesc TEST_PASS or TEST_FAIL
//
int StringFunctions::Variation_28()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnStringAndNumeric));
if(IsSupportedScalar(SQL_FN_STR_CHAR))
return CheckQry(L"c",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL StringFunctions::Terminate()
{
// TO DO: Add your own code here
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(NumFunctions)
//*-----------------------------------------------------------------------
//| Test Case: NumFunctions - Test numeric scalar functions
//| Created: 05/05/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL NumFunctions::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
// TO DO: Add your own code here
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc ABS -123
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_1()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnAbs));
if(IsSupportedNumeric(SQL_FN_NUM_ABS))
return CheckQry(L"123",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc ACOS 1
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_2()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnAcos));
if(IsSupportedNumeric(SQL_FN_NUM_ACOS))
return CheckQry(L"0",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc ASIN -1
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_3()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnAsin));
if(IsSupportedNumeric(SQL_FN_NUM_ASIN))
return CheckQry(L"-1.5707963267949",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc ATAN 2
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_4()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnAtan));
if(IsSupportedNumeric(SQL_FN_NUM_ATAN))
return CheckQry(L"1.10714871779409",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc ATAN2 2 1
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_5()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnAtan2));
if(IsSupportedNumeric(SQL_FN_NUM_ATAN2))
return CheckQry(L"1.10714871779409",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc CEILING 1.09
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_6()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnCeiling));
if(IsSupportedNumeric(SQL_FN_NUM_CEILING))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc COS 0
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_7()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnCos));
if(IsSupportedNumeric(SQL_FN_NUM_COS))
return CheckQry(L"1",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc COT 0.5
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_8()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnCot));
if(IsSupportedNumeric(SQL_FN_NUM_COT))
return CheckQry(L"1.83048772171245",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc EXP 1
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_9()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnExp));
if(IsSupportedNumeric(SQL_FN_NUM_EXP))
return CheckQry(L"2.71828182845905",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc FLOOR 1.09
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_10()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnFloor));
if(IsSupportedNumeric(SQL_FN_NUM_FLOOR))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc LOG 10
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_11()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnLog));
if(IsSupportedNumeric(SQL_FN_NUM_LOG))
return CheckQry(L"2.30258509299405",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc MOD 10 6
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_12()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnMod));
if(IsSupportedNumeric(SQL_FN_NUM_MOD))
return CheckQry(L"4",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc PI
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_13()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnPi));
if(IsSupportedNumeric(SQL_FN_NUM_PI))
return CheckQry(L"3.14159265358979",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc RAND 10
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_14()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRand));
if(IsSupportedNumeric(SQL_FN_NUM_RAND))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc SIGN 10
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_15()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSign));
if(IsSupportedNumeric(SQL_FN_NUM_SIGN))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc SIN .05
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_16()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSin));
if(IsSupportedNumeric(SQL_FN_NUM_SIN))
return CheckQry(L"0.0499791692706783",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc SQRT 9
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_17()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSqrt));
if(IsSupportedNumeric(SQL_FN_NUM_SQRT))
return CheckQry(L"3",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc TAN 2
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_18()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnTan));
if(IsSupportedNumeric(SQL_FN_NUM_TAN))
return CheckQry(L"-2.18503986326152",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc DEGREES 3
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_19()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDegrees));
if(IsSupportedNumeric(SQL_FN_NUM_DEGREES))
return CheckQry(L"171",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc LOG10 97.1
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_20()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnLog10));
if(IsSupportedNumeric(SQL_FN_NUM_LOG10))
return CheckQry(L"1.987219229908",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc POWER 9.6 3
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_21()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnPower));
// POWER loses some precision - so use CHECKREAL
if(IsSupportedNumeric(SQL_FN_NUM_POWER))
return CheckQry(L"884.736",CHECKREAL);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(22)
//*-----------------------------------------------------------------------
// @mfunc RADIANS
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_22()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRadians));
if(IsSupportedNumeric(SQL_FN_NUM_RADIANS))
return CheckQry(L".148352986419518020",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(23)
//*-----------------------------------------------------------------------
// @mfunc ROUND 97.56 1
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_23()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnRound));
if(IsSupportedNumeric(SQL_FN_NUM_ROUND))
return CheckQry(L"97.6",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(24)
//*-----------------------------------------------------------------------
// @mfunc TRUNCATE 97.56 1
//
// @rdesc TEST_PASS or TEST_FAIL
//
int NumFunctions::Variation_24()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnTruncate));
if(IsSupportedNumeric(SQL_FN_NUM_TRUNCATE))
return CheckQry(L"97.5",CHECKFLOAT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL NumFunctions::Terminate()
{
// TO DO: Add your own code here
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(DateTimeFn)
//*-----------------------------------------------------------------------
//| Test Case: DateTimeFn - Test date time scalar functions
//| Created: 05/05/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL DateTimeFn::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
// TO DO: Add your own code here
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc NOW
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_1()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnNow));
if(IsSupportedDateTime(SQL_FN_TD_NOW))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc CURDATE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_2()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnCurdate));
if(IsSupportedDateTime(SQL_FN_TD_CURDATE))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc DAYOFMONTH 1991 02 26
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_3()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDayofmonth));
if(IsSupportedDateTime(SQL_FN_TD_DAYOFMONTH))
return CheckQry(L"26",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc DATOFWEEK 1991 02 26
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_4()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDayofweek));
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"3", CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR 1991 02 26
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_5()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDayofyear));
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"57",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc MONTH 1991 02 26
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_6()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnMonth));
if(IsSupportedDateTime(SQL_FN_TD_MONTH))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc QUARTER 1991 02 26
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_7()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnQuarter));
if(IsSupportedDateTime(SQL_FN_TD_QUARTER))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc WEEK 1991 02 26
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_8()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnWeek));
if(IsSupportedDateTime(SQL_FN_TD_WEEK))
return CheckQry(L"9",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc YEAR 1991 02 26
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_9()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnYear));
if(IsSupportedDateTime(SQL_FN_TD_YEAR))
return CheckQry(L"1991",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc CURTIME
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_10()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnCurtime));
if(IsSupportedDateTime(SQL_FN_TD_CURTIME))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc HOUR 14:49:19
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_11()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnHour));
if(IsSupportedDateTime(SQL_FN_TD_HOUR))
return CheckQry(L"14",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc MINUTE 14:49:19
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_12()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnMinute));
if(IsSupportedDateTime(SQL_FN_TD_MINUTE))
return CheckQry(L"49",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc SECOND 14:49:19
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_13()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnSecond));
if(IsSupportedDateTime(SQL_FN_TD_SECOND))
return CheckQry(L"19",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc DAYNAME d 1994 12 12
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_14()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDayname));
if(IsSupportedDateTime(SQL_FN_TD_DAYNAME))
return CheckQry(L"Monday",CHECKISTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc MONTHNAME d 1994 12 12
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_15()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnMonthname));
if(IsSupportedDateTime(SQL_FN_TD_MONTHNAME))
return CheckQry(L"December",CHECKISTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc TIMESTAMPADD SQL_TSI_DAY d 1994 12 12
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_16()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnTimestampadd));
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPADD))
return CheckQry(L"1994-12-14 00:00:00.000",CHECKTIMESTAMP);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc TIMESTAMPDIFF SQL_TSI_MONTH 11 15 94 12 12 94
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_17()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnTimestampdiff));
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPDIFF))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc CURRENT_TIME
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_18()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn CURRENT_TIME");
if(IsSupportedDateTime(SQL_FN_TD_CURRENT_TIME ))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc CURRENT_TIME()
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_19()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn CURRENT_TIME()");
if(IsSupportedDateTime(SQL_FN_TD_CURRENT_TIME ))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc CURRENT_TIMESTAMP
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_20()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn CURRENT_TIMESTAMP");
if(IsSupportedDateTime(SQL_FN_TD_CURRENT_TIME ))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc CURRENT_TIMESTAMP
//
// @rdesc TEST_PASS or TEST_FAIL
//
int DateTimeFn::Variation_21()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn CURRENT_TIMESTAMP()");
if(IsSupportedDateTime(SQL_FN_TD_CURRENT_TIME ))
return CheckQry(L"IGNORE",CHECKSTR);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL DateTimeFn::Terminate()
{
// TO DO: Add your own code here
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(SystemFunctions)
//*-----------------------------------------------------------------------
//| Test Case: SystemFunctions - Test system scalar functions
//| Created: 05/05/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL SystemFunctions::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
// TO DO: Add your own code here
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc USER
//
// @rdesc TEST_PASS or TEST_FAIL
//
int SystemFunctions::Variation_1()
{
WCHAR *wszUserName = NULL;
BOOL fPass = TEST_FAIL;
if (!SupportedProperty(DBPROP_USERNAME, DBPROPSET_DATASOURCEINFO, m_pIDBInitialize,DATASOURCE_INTERFACE))
return TEST_SKIPPED;
if (!COMPARE(GetProperty(DBPROP_USERNAME, DBPROPSET_DATASOURCEINFO, m_pIDBInitialize, &wszUserName),TRUE))
return TEST_FAIL;
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnUser));
if(IsSupportedSystem(SQL_FN_SYS_USERNAME))
fPass = CheckQry(wszUserName,CHECKSTR);
else
fPass = TEST_SKIPPED;
PROVIDER_FREE(wszUserName);
return fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc DATABASE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int SystemFunctions::Variation_2()
{
WCHAR *wszDatabase = NULL;
BOOL fPass = TEST_FAIL;
if(!IsSupportedSystem(SQL_FN_SYS_DBNAME))
return TEST_SKIPPED;
if (!SupportedProperty(DBPROP_CURRENTCATALOG, DBPROPSET_DATASOURCE, m_pIDBInitialize,DATASOURCE_INTERFACE))
return TEST_FAIL;
if (!COMPARE(GetProperty(DBPROP_CURRENTCATALOG, DBPROPSET_DATASOURCE, m_pIDBInitialize, &wszDatabase),TRUE))
return TEST_FAIL;
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDatabase));
fPass = CheckQry(wszDatabase,CHECKSTR);
PROVIDER_FREE(wszDatabase);
return fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc IFNULL NULL 4
//
// @rdesc TEST_PASS or TEST_FAIL
//
int SystemFunctions::Variation_3()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnIfnull1));
if(IsSupportedSystem(SQL_FN_SYS_IFNULL))
return CheckQry(L"4",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc IFNULL -1 4
//
// @rdesc TEST_PASS or TEST_FAIL
//
int SystemFunctions::Variation_4()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnIfnull2));
if(IsSupportedSystem(SQL_FN_SYS_IFNULL))
return CheckQry(L"-1",CHECKINT);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL SystemFunctions::Terminate()
{
// TO DO: Add your own code here
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(OuterJoins)
//*-----------------------------------------------------------------------
//| Test Case: OuterJoins - Test outer join canonical
//| Created: 05/04/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL OuterJoins::Init()
{
CCol TempCol;
m_pTable2 = NULL;
m_pTable3 = NULL;
m_wszGlobalTableColName = NULL;
m_wszTable2ColName = NULL;
m_wszTable3ColName = NULL;
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
m_pTable2 = new CTable(m_pThisTestModule->m_pIUnknown2, 0);
m_pTable3 = new CTable(m_pThisTestModule->m_pIUnknown2, 0);
if (!m_pTable2 || !m_pTable3)
return FALSE;
if( !SUCCEEDED(m_pTable2->CreateTable(10)) ||
!SUCCEEDED(m_pTable3->CreateTable(10)) )
return FALSE;
if(FAILED(m_pTable2->GetFirstNumericCol(&TempCol)))
return TEST_SKIPPED;
m_ulNumCol = TempCol.GetColNum();
m_wszTable2ColName = wcsDuplicate(TempCol.GetColName());
g_pTable->GetColInfo(m_ulNumCol, TempCol);
m_wszGlobalTableColName = wcsDuplicate(TempCol.GetColName());
m_pTable3->GetColInfo(m_ulNumCol, TempCol);
m_wszTable3ColName = wcsDuplicate(TempCol.GetColName());
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc Left OJ
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_1()
{
swprintf(m_wszQuery,
GetidsString(m_buf,idsShortLJoin),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc left OJ 3 Tables
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_2()
{
swprintf(m_wszQuery, //short left OJ(3 tables)
GetidsString(m_buf,idsInOutShortOJSyntax),
m_pTable3->GetTableName(),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName,
m_pTable3->GetTableName(),
m_wszTable3ColName,
L"=",
g_pTable->GetTableName(),
m_wszGlobalTableColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc Left OJ OJ_INNER 3 Tables
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_3()
{
if(!IsSupportedOJ(SQL_OJ_INNER))
return TEST_SKIPPED;
swprintf(m_wszQuery, //short left OJ,OJ_INNER(3 tables)
GetidsString(m_buf,idsInOutShortOJSyntax),
m_pTable3->GetTableName(),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName,
m_pTable3->GetTableName(),
m_wszTable3ColName,
L"=",
g_pTable->GetTableName(),
m_wszGlobalTableColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc Left OJ and OJ_ALL_COMPARISION_OPS
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_4()
{
if(!IsSupportedOJ(SQL_OJ_ALL_COMPARISON_OPS))
return TEST_SKIPPED;
swprintf(m_wszQuery,
GetidsString(m_buf,idsShortLJoin),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L">=",
m_pTable2->GetTableName(),
m_wszTable2ColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc Left OJ and SQL_OJ_NOT_ORDERED
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_5()
{
if(!IsSupportedOJ(SQL_OJ_NOT_ORDERED))
return TEST_SKIPPED;
swprintf(m_wszQuery,
GetidsString(m_buf,idsShortLJoin),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
m_pTable2->GetTableName(),
m_wszTable2ColName,
L"=",
g_pTable->GetTableName(),
m_wszGlobalTableColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc Right OJ
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_6()
{
swprintf(m_wszQuery,
GetidsString(m_buf,idsShortRJoin),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc Right OJ and OJ_ALL_COMPARISION_OPS
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_7()
{
if(!IsSupportedOJ(SQL_OJ_ALL_COMPARISON_OPS))
return TEST_SKIPPED;
swprintf(m_wszQuery,
GetidsString(m_buf,idsShortRJoin),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"<=",
m_pTable2->GetTableName(),
m_wszTable2ColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc Right OJ and SQL_OJ_NOT_ORDERED
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_8()
{
if(!IsSupportedOJ(SQL_OJ_NOT_ORDERED))
return TEST_SKIPPED;
swprintf(m_wszQuery,
GetidsString(m_buf,idsShortRJoin),
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
m_pTable2->GetTableName(),
m_wszTable2ColName,
L"=",
g_pTable->GetTableName(),
m_wszGlobalTableColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc Nested Outer Join
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_9()
{
// SQL95 bug #11015: Nested OJ do not work on a 4.21a Server!
if(!IsSupportedOJ(SQL_OJ_NESTED))
return TEST_SKIPPED;
swprintf(m_wszQuery,
GetidsString(m_buf,idsNestedShortJoin),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
m_pTable3->GetTableName(),
m_pTable2->GetTableName(),
m_wszTable2ColName,
L"=",
m_pTable3->GetTableName(),
m_wszTable3ColName,
m_pTable2->GetTableName(),
m_wszTable2ColName,
L"=",
g_pTable->GetTableName(),
m_wszGlobalTableColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc Nested OJ and OJ_ALL_COMPARISION_OPS
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_10()
{
if(!IsSupportedOJ(SQL_OJ_ALL_COMPARISON_OPS))
return TEST_SKIPPED;
swprintf(m_wszQuery,
GetidsString(m_buf,idsNestedShortJoin),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
m_pTable3->GetTableName(),
m_pTable2->GetTableName(),
m_wszTable2ColName,
L"<=",
m_pTable3->GetTableName(),
m_wszTable3ColName,
m_pTable2->GetTableName(),
m_wszTable2ColName,
L">=",
g_pTable->GetTableName(),
m_wszGlobalTableColName);
return ExecuteDirect(m_wszQuery);
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc Left OJ with multiple join predicates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_11()
{
static WCHAR s_wszOJ[] = L"select * from {oj %s left outer join %s on %s.%s%s%s.%s and %s.%s%s%s.%s}";
swprintf(m_wszQuery,
s_wszOJ,
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName,
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName);
return ExecuteDirect(m_wszQuery);
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc Right OK with multiple join predicates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_12()
{
static WCHAR s_wszOJ[] = L"select * from {oj %s right outer join %s on (%s.%s%s%s.%s) and (%s.%s%s%s.%s)}";
swprintf(m_wszQuery,
s_wszOJ,
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName,
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName);
return ExecuteDirect(m_wszQuery);
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc Right OK with multiple join predicates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int OuterJoins::Variation_13()
{
static WCHAR s_wszOJ[] =
L"select * from {oj %s left outer join %s on %s.%s%s%s.%s and %s.%s%s%s.%s} where 1=1";
swprintf(m_wszQuery,
s_wszOJ,
g_pTable->GetTableName(),
m_pTable2->GetTableName(),
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName,
g_pTable->GetTableName(),
m_wszGlobalTableColName,
L"=",
m_pTable2->GetTableName(),
m_wszTable2ColName);
return ExecuteDirect(m_wszQuery);
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL OuterJoins::Terminate()
{
if (m_pTable2)
{
m_pTable2->DropTable();
delete m_pTable2;
m_pTable2=NULL;
}
if (m_pTable3)
{
m_pTable3->DropTable();
delete m_pTable3;
m_pTable3=NULL;
}
PROVIDER_FREE(m_wszGlobalTableColName);
PROVIDER_FREE(m_wszTable2ColName);
PROVIDER_FREE(m_wszTable3ColName);
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(LikeEscape)
//*-----------------------------------------------------------------------
//| Test Case: LikeEscape - Test Like Escape clause
//| Created: 05/05/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL LikeEscape::Init()
{
WCHAR * wszLiteralInsert = L"%a";
DBORDINAL ulOrdinal = 1;
// Jet doesn't support the LIKE escape clause.
if (g_ProvInfo.dwDBMSType == DRVR_QJET)
return TEST_SKIPPED;
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
if (!CreateTypeTable(SQL_VARCHAR))
return FALSE;
if (!SUCCEEDED(m_p1TypeTable->InsertWithUserLiterals(1, &ulOrdinal, (WCHAR **)&(wszLiteralInsert))))
return FALSE;
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc Canonical Escape
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LikeEscape::Variation_1()
{
WCHAR *wszLiteralEscapePercent = L"\\";
CCol TempCol;
if (!CHECK(m_p1TypeTable->GetColInfo(1, TempCol),S_OK))
return TEST_FAIL;
swprintf(m_wszQuery,L"select * from %s where %s like '%s%%a%%' {escape '%s'}", m_p1TypeTable->GetTableName(), TempCol.GetColName(), wszLiteralEscapePercent,wszLiteralEscapePercent);
return CheckQry(L"%a",CHECKSTR);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL LikeEscape::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(LiteralDateTimeClauses)
//*-----------------------------------------------------------------------
//| Test Case: LiteralDateTimeClauses - Test literal date time escape clauses
//| Created: 05/05/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL LiteralDateTimeClauses::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
// TO DO: Add your own code here
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc TimeStamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_1()
{
WCHAR wszExpBuf[MAX_BUF];
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnTimestamp));
// Wont Fix SQL Server Bug AFB
if(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR)
{
if(g_ProvInfo.ulVersion > 6)
wcscpy(wszExpBuf,L"1994-12-12 01:12:56");
else
wcscpy(wszExpBuf,L"19941212 01:12:56");
}
else
wcscpy(wszExpBuf,L"1994-12-12 01:12:56");
return CheckQry(wszExpBuf,CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc Date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_2()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnDate));
if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion >= 7)
return CheckQry(L"1995-01-15 00:00:00",CHECKSTR);
else if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion < 7)
return CheckQry(L"19950115",CHECKSTR);
else
return CheckQry(L"1995-01-15",CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc Time
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_3()
{
swprintf(m_wszQuery,g_wszScalarFmt,GetidsString(m_buf,idsFnTime));
// TO DO - actually check the value
// most provider append the current date to the time
return CheckQry(L"IGNORE", CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL YEAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_4()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL MONTH
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_5()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL DAY
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_6()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL HOUR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_7()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL MINUTE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_8()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL SECOND 3 2
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_9()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL YEAR TO MONTH
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_10()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL DAY TO HOUR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_11()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL DAY TO MINUTE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_12()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL DAY TO SECOND
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_13()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL HOUR TO MINUTE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_14()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL HOUR TO SECOND
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_15()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL MINUTE TO SECOND
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_16()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc INTERVAL DAY TO SECOND
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_17()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc GUID
//
// @rdesc TEST_PASS or TEST_FAIL
//
int LiteralDateTimeClauses::Variation_18()
{
// This canonical only supported with 3.x drivers
if (g_ProvInfo.dwDBMSType == DRVR_ORACLE ||
(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion < 7) ||
(g_ProvInfo.dwDBMSType == DRVR_QJET && g_ProvInfo.ulVersion < 4))
return TEST_SKIPPED;
swprintf(m_wszQuery,g_wszScalarFmt,L"guid '1A2B3C4D-AAAA-FFFF-1199-1234567890af'");
if (g_ProvInfo.dwDBMSType == DRVR_QJET)
return CheckQry(L"1A2B3C4D-AAAA-FFFF-1199-1234567890af", CHECKISTR);
else
return CheckQry(L"{1A2B3C4D-AAAA-FFFF-1199-1234567890af}", CHECKISTR);
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL LiteralDateTimeClauses::Terminate()
{
// TO DO: Add your own code here
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvertClause)
//*-----------------------------------------------------------------------
//| Test Case: ConvertClause - Test canonical function convert
//| Created: 05/05/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvertClause::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_INTEGER);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_BIGINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_1()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_BIGINT, L"9999", idsFnBIGINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_BINARY
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_2()
{
// Expecting is "000" is a ported hack from ODBC
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_BINARY, L"111", idsFnBINARY, CHECKSTR, L"000");
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_BIT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_3()
{
if (g_ProvInfo.dwDBMSType == DRVR_ORACLE)
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_BIT, L"0", idsFnBIT, CHECKSTR, L"0");
else
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_BIT, L"0", idsFnBIT, CHECKSTR, L"False");
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_4()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_CHAR, L"32701", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_DATE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_5()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_DATE, L"1299", idsFnDATE, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_DECIMAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_6()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_DECIMAL, L"19999", idsFnDECIMAL, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_DOUBLE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_7()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_DOUBLE, L"19199", idsFnDOUBLE, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_FLOAT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_8()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_FLOAT, L"99999", idsFnFLOAT, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_LONGVARBINARY
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_9()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_LONGVARBINARY, L"11", idsFnLONGVARBINARY, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_10()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_LONGVARCHAR, L"-11234", idsFnLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_NUMERIC
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_11()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_NUMERIC, L"-1", idsFnNUMERIC, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_REAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_12()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_REAL, L"12991", idsFnREAL, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_SMALLINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_13()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_SMALLINT, L"0", idsFnSMALLINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_TIME
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_14()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_TIME, L"1212", idsFnTIME, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_TIMESTAMP
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_15()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_TIMESTAMP, L"9999", idsFnTIMESTAMP, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_TINYINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_16()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_TINYINT, L"127", idsFnTINYINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_VARBINARY
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_17()
{
// Expecting is "000" is a ported hack from ODBC
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_VARBINARY, L"111", idsFnVARBINARY, CHECKSTR, L"000");
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc Integer to SQL_VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_18()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_VARCHAR, L"12234", idsFnVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc To SQL_WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_19()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_WCHAR, L"-21000099", idsFnWCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc To SQL_VARWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_20()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_WVARCHAR, L"+128", idsFnWVARCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc To SQL_WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertClause::Variation_21()
{
return CheckConversion(SQL_CONVERT_INTEGER, SQL_CVT_WLONGVARCHAR, L"65536", idsFnWLONGVARCHAR, CHECKINT);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvertClause::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvertFromTim)
//*-----------------------------------------------------------------------
//| Test Case: ConvertFromTim - Test conversion from TIME
//| Created: 05/11/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvertFromTim::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_TIME);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc TO SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertFromTim::Variation_1()
{
return CheckConversion(SQL_CONVERT_TIME, SQL_CVT_CHAR, L"12:59:59", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc TO SQL_DATE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertFromTim::Variation_2()
{
return CheckConversion(SQL_CONVERT_TIME, SQL_CVT_DATE, L"01:01:01", idsFnDATE, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To SQL_TIME
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertFromTim::Variation_3()
{
return CheckConversion(SQL_CONVERT_TIME, SQL_CVT_TIME, L"01:01:01", idsFnTIME, CHECKSTR, L"01:01:01");
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To SQL_TIMESTAMP
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertFromTim::Variation_4()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvertFromTim::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvertStamp)
//*-----------------------------------------------------------------------
//| Test Case: ConvertStamp - Test conversion from TIMESTAMP
//| Created: 05/11/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvertStamp::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_TIMESTAMP);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_1()
{
if (g_ProvInfo.dwDBMSType == DRVR_ORACLE)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_CHAR, L"1904-02-21 12:59:59", idsFnCHAR, CHECKSTR, L"21-FEB-04");
else if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion < 7)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_CHAR, L"1904-02-21 12:59:59", idsFnCHAR, CHECKSTR, L"19040221 12:59:59", L"Feb 21 1904 12:59PM");
else if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion >= 7)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_CHAR, L"1904-02-21 12:59:59", idsFnCHAR, CHECKSTR, L"Feb 21 1904 12:59PM");
else
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_CHAR, L"1904-02-21 12:59:59", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To SQL_DATE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_2()
{
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_DATE, L"1904-02-21 12:59:59", idsFnDATE, CHECKSTR, L"1904-02-21");
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To SQL_TIME
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_3()
{
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_TIME, L"1904-02-21 12:59:59", idsFnTIME, CHECKSTR, L"12:59:59");
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To SQL_TIMESTAMP
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_4()
{
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_TIMESTAMP, L"1904-02-21 12:59:59", idsFnTIMESTAMP, CHECKSTR, L"1904-02-21 12:59:59");
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To SQL_VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_5()
{
if (g_ProvInfo.dwDBMSType == DRVR_ORACLE)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_VARCHAR, L"1904-02-21 12:59:59", idsFnVARCHAR, CHECKSTR, L"21-FEB-04");
else if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion < 7)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_VARCHAR, L"1904-02-21 12:59:59", idsFnVARCHAR, CHECKSTR, L"19040221 12:59:59", L"Feb 21 1904 12:59PM");
else if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion >= 7)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_CHAR, L"1904-02-21 12:59:59", idsFnCHAR, CHECKSTR, L"Feb 21 1904 12:59PM");
else
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_VARCHAR, L"1904-02-21 12:59:59", idsFnVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To SQL_LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_6()
{
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_LONGVARCHAR, L"1904-02-21 12:59:59", idsFnLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To SQL_VARWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_7()
{
if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion >= 7)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_CHAR, L"2004-02-21 12:59:59", idsFnCHAR, CHECKSTR, L"Feb 21 2004 12:59PM");
else
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_WVARCHAR, L"2004-02-21 12:59:59", idsFnWVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To SQL_WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_8()
{
if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion >= 7)
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_CHAR, L"2004-02-21 12:59:59", idsFnCHAR, CHECKSTR, L"Feb 21 2004 12:59PM");
else
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_WCHAR, L"2004-02-21 12:59:59", idsFnWCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To SQL_LONGVARWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvertStamp::Variation_9()
{
return CheckConversion(SQL_CONVERT_TIMESTAMP, SQL_CVT_WLONGVARCHAR, L"2004-02-21 12:59:59", idsFnWLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvertStamp::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromLongVarBin)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromLongVarBin - Test conversions from SQL_LONGVARBINARY
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromLongVarBin::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_LONGVARBINARY);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To Binary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_1()
{
return CheckConversion(SQL_CONVERT_LONGVARBINARY, SQL_CVT_BINARY, L"1111", idsFnBINARY, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To Char
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_2()
{
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To LongVarBinary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_3()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To LongVarChar
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_4()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To varbinary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_5()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To Varchar
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_6()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To SQL_WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_7()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To SQL_VARWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_8()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To SQL_LONGVARWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarBin::Variation_9()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromLongVarBin::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromLongVarChar)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromLongVarChar - Test conversions from SQL_LONGVARCHAR
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromLongVarChar::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_LONGVARCHAR);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To Bigint
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_1()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To Binary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_2()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To Bit
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_3()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To Char
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_4()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To SQL_DATE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_5()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To SQL_DECIMAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_6()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To SQL_DOUBLE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_7()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To SQL_FLOAT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_8()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To SQL_INTEGER
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_9()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc To SQL_LONGVARBINARY
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_10()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc To SQL_LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_11()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc To SQL_NUMERIC
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_12()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc To SQL_REAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_13()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc To SQL_SMALLINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_14()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc To SQL_TIME
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_15()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc To SQL_TIMESTAMP
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_16()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc To TinyInt
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_17()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc To VarBinary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_18()
{
// just test the parser
return CheckConversion(SQL_CONVERT_LONGVARCHAR, SQL_CVT_VARBINARY, L"44", idsFnVARBINARY, CHECKSTR, L"IGNORE");
}
// }}
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc To Varchar
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_19()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc To SQL_WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_20()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc To SQL_VARWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_21()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(22)
//*-----------------------------------------------------------------------
// @mfunc To SQL_LONGVARWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromLongVarChar::Variation_22()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromLongVarChar::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromNumeric)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromNumeric - Test conversions from SQL_NUMERIC
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromNumeric::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_NUMERIC);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc ToBigInt
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_1()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_CHAR, L"-9223372036854775808", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To Binary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_2()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_CHAR, L"111", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To Bit
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_3()
{
// Hydra server AVs
if (g_ProvInfo.dwDBMSType == DRVR_SQLSRVR && g_ProvInfo.ulVersion < 7)
return TEST_SKIPPED;
if (g_ProvInfo.dwDBMSType == DRVR_ORACLE)
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_BIT, L"1", idsFnBIT, CHECKSTR, L"0"); // Oracle doesn't support a backend SQL_BIT type
else
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_BIT, L"1", idsFnBIT, CHECKSTR, L"True");
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To Char
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_4()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_CHAR, L"12234", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To SQL_DECIMAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_5()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_DECIMAL, L"18446744073709551616", idsFnDECIMAL, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To DOUBLE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_6()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_DOUBLE, L"16777215", idsFnDOUBLE, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To FLOAT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_7()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_FLOAT, L"16777214", idsFnFLOAT, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To INTEGER
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_8()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_INTEGER, L"-2147483648", idsFnINTEGER, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_9()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_INTEGER, L"0", idsFnINTEGER, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc To NUMERIC
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_10()
{
// special case Jet since they don't have genuine conversion support to NUMERIC
if (g_ProvInfo.dwDBMSType == DRVR_QJET)
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_NUMERIC, L"922337203685477", idsFnNUMERIC, CHECKSTR);
else
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_NUMERIC, L"18446744073709551615", idsFnNUMERIC, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc To REAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_11()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_REAL, L"-38001", idsFnREAL, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc To SMALLINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_12()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_SMALLINT, L"32767", idsFnSMALLINT, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc To TINYINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_13()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_TINYINT, L"11", idsFnTINYINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc To VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_14()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_VARCHAR, L"1000000000", idsFnVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc TO WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_15()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_WCHAR, L"-38001", idsFnWCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc To WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_16()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_WVARCHAR, L"-38001", idsFnWVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc To WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromNumeric::Variation_17()
{
return CheckConversion(SQL_CONVERT_NUMERIC, SQL_CVT_WLONGVARCHAR, L"-38001", idsFnWLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromNumeric::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromReal)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromReal - Test conversion from SQL_REAL
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromReal::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_REAL);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_1()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_CHAR, L"27.123e+20", idsFnCHAR, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To DECIMAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_2()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_DECIMAL, L"+27.123e-20", idsFnDECIMAL, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To DOUBLE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_3()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_DOUBLE, L"+127.1231e+36", idsFnDOUBLE, CHECKREAL);
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To FLOAT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_4()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_FLOAT, L"1.6777214e+7", idsFnFLOAT, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To INTEGER
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_5()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_INTEGER, L"30.465E+4", idsFnINTEGER, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To NUMERIC
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_6()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_NUMERIC, L"30.465E+4", idsFnNUMERIC, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To REAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_7()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_REAL, L"30.465E+4", idsFnREAL, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To SMALLINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_8()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_SMALLINT, L"-30.46E+2", idsFnSMALLINT, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To TINYINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_9()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_TINYINT, L"0.123456e+1", idsFnTINYINT, CHECKINT, L"1");
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc To VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_10()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_VARCHAR, L"56.7812e+24", idsFnVARCHAR, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc To LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_11()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_LONGVARCHAR, L"56.7812e+24", idsFnLONGVARCHAR, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc To WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_12()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_WCHAR, L"56.7812e+24", idsFnWCHAR, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc To WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_13()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_WVARCHAR, L"56.7812e+24", idsFnWVARCHAR, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc To WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromReal::Variation_14()
{
return CheckConversion(SQL_CONVERT_REAL, SQL_CVT_WLONGVARCHAR, L"56.7812e+24", idsFnWLONGVARCHAR, CHECKFLOAT);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromReal::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromSmallInt)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromSmallInt - Test covnersion from SQL_SMALLINT
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromSmallInt::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_SMALLINT);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_1()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_SMALLINT, L"-31001", idsFnSMALLINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To DECIMAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_2()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_DECIMAL, L"-31001", idsFnDECIMAL, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To DOUBLE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_3()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_DOUBLE, L"-31001", idsFnDOUBLE, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To FLOAT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_4()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_FLOAT, L"-31001", idsFnFLOAT, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To INTEGER
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_5()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_INTEGER, L"0", idsFnINTEGER, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To NUMERIC
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_6()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_NUMERIC, L"0", idsFnNUMERIC, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To REAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_7()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_REAL, L"1", idsFnREAL, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To SMALLINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_8()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_SMALLINT, L"32767", idsFnSMALLINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To TINYINT
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_9()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_TINYINT, L"127", idsFnTINYINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc TO LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_10()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_LONGVARCHAR, L"0", idsFnLONGVARCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc To VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_11()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_VARCHAR, L"0", idsFnVARCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc to WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_12()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_WCHAR, L"0", idsFnWCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc To WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_13()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_WVARCHAR, L"1010", idsFnWVARCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc To WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromSmallInt::Variation_14()
{
return CheckConversion(SQL_CONVERT_SMALLINT, SQL_CVT_WLONGVARCHAR, L"1010", idsFnWLONGVARCHAR, CHECKINT);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromSmallInt::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromTINYINT)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromTINYINT - Test conversions from SQL_TINYINT
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromTINYINT::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_TINYINT);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_1()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_CHAR, L"127", idsFnCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To DECIMAL
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_2()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_DECIMAL, L"0", idsFnDECIMAL, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To Double
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_3()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_DOUBLE, L"1", idsFnDOUBLE, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To Float
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_4()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_FLOAT, L"2", idsFnFLOAT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To Integer
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_5()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_INTEGER, L"11", idsFnINTEGER, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To Numeric
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_6()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_NUMERIC, L"111", idsFnNUMERIC, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To Real
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_7()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_REAL, L"100", idsFnREAL, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_8()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_LONGVARCHAR, L"5", idsFnLONGVARCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To Smallint
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_9()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_SMALLINT, L"51", idsFnSMALLINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc To tinyint
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_10()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_TINYINT, L"99", idsFnTINYINT, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc To VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_11()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_VARCHAR, L"99", idsFnVARCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc To WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_12()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_WCHAR, L"99", idsFnWCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc To WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_13()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_WVARCHAR, L"99", idsFnWVARCHAR, CHECKINT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc To WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromTINYINT::Variation_14()
{
return CheckConversion(SQL_CONVERT_TINYINT, SQL_CVT_WLONGVARCHAR, L"99", idsFnWLONGVARCHAR, CHECKINT);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromTINYINT::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromGUID)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromGUID - Test conversions from SQL_GUID
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromGUID::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_GUID);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To GUID
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromGUID::Variation_1()
{
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_GUID, L"{00000001-0001-0001-0001-000000000001}", idsFnGUID, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromGUID::Variation_2()
{
if(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR)
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_CHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnCHAR, CHECKSTR, L"{00000001-0001-0001-0001-000000000001}", L"00000001-0001-0001-0001-000000000001");
else
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_CHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromGUID::Variation_3()
{
if(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR)
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_VARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnVARCHAR, CHECKSTR, L"{00000001-0001-0001-0001-000000000001}", L"00000001-0001-0001-0001-000000000001");
else
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_VARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromGUID::Variation_4()
{
if(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR)
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_LONGVARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnLONGVARCHAR, CHECKSTR, L"{00000001-0001-0001-0001-000000000001}", L"00000001-0001-0001-0001-000000000001");
else
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_LONGVARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromGUID::Variation_5()
{
if(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR)
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_WCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnWCHAR, CHECKSTR, L"{00000001-0001-0001-0001-000000000001}", L"00000001-0001-0001-0001-000000000001");
else
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_WCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnWCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromGUID::Variation_6()
{
if(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR)
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_WVARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnWVARCHAR, CHECKSTR, L"{00000001-0001-0001-0001-000000000001}", L"00000001-0001-0001-0001-000000000001");
else
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_WVARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnWVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromGUID::Variation_7()
{
if(g_ProvInfo.dwDBMSType == DRVR_SQLSRVR)
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_WLONGVARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnWLONGVARCHAR, CHECKSTR, L"{00000001-0001-0001-0001-000000000001}", L"00000001-0001-0001-0001-000000000001");
else
return CheckConversion(SQL_CONVERT_GUID, SQL_CVT_WLONGVARCHAR, L"{00000001-0001-0001-0001-000000000001}", idsFnWLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromGUID::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromWCHAR)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromWCHAR - Test conversion from SQL_WCHAR
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromWCHAR::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_WCHAR);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To BigInt
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_1()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_BIGINT, L"9223372036854775807", idsFnBIGINT, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc To Binary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_2()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_BINARY, L"1111", idsFnBINARY, CHECKSTR, L"3100310031003100");
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc To Bit
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_3()
{
if (g_ProvInfo.dwDBMSType == DRVR_ORACLE)
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_BIT, L"1", idsFnBIT, CHECKSTR, L"1");
else
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_BIT, L"1", idsFnBIT, CHECKSTR, L"True");
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc To Char
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_4()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_CHAR, L"1", idsFnCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc To SQL_DATE
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_5()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_DATE, L"2000-02-29", idsFnDATE, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc To Decimal
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_6()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_DECIMAL, L"1.9", idsFnDECIMAL, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc To Double
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_7()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_DOUBLE, L"1.912349", idsFnDOUBLE, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc To Float
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_8()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_FLOAT, L"1.9999", idsFnFLOAT, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc To Integer
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_9()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_INTEGER, L"129", idsFnINTEGER, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc To LongVarBinary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_10()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_LONGVARBINARY, L"44", idsFnLONGVARBINARY, CHECKSTR, L"34003400");
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc To LongVarChar
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_11()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_LONGVARCHAR, L"1.1234", idsFnLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc To Numeric
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_12()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_NUMERIC, L"129", idsFnNUMERIC, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc To Real
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_13()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_REAL, L"8388607", idsFnREAL, CHECKFLOAT);
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc To Smallint
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_14()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_SMALLINT, L"2", idsFnSMALLINT, CHECKSTR, L"2");
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc To Time
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_15()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc To TimeStamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_16()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc To TinyInt
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_17()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_TINYINT, L"127", idsFnTINYINT, CHECKSTR, L"127");
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc To VarBinary
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_18()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc To VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_19()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_VARCHAR, L"aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ", idsFnVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc To WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_20()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_WCHAR, L"aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ", idsFnWCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc To WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_21()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_WVARCHAR, L"aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ", idsFnWVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(22)
//*-----------------------------------------------------------------------
// @mfunc To WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_22()
{
return CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_WLONGVARCHAR, L"aZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZaZ", idsFnWLONGVARCHAR, CHECKSTR);
}
// }}
// {{ TCW_VAR_PROTOTYPE(23)
//*-----------------------------------------------------------------------
// @mfunc To SQL_GUID
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromWCHAR::Variation_23()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromWCHAR::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromVarBin)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromVarBin - Test conversion from SQL_VARBINARY
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromVarBin::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_VARBINARY);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To VARBINARY
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromVarBin::Variation_1()
{
return CheckConversion(SQL_CONVERT_VARBINARY, SQL_CVT_VARBINARY, L"1111", idsFnVARBINARY, CHECKSTR, L"1111");
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc to CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromVarBin::Variation_2()
{
return TEST_PASS;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc to WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromVarBin::Variation_3()
{
// TO DO: Add your own code here
return TEST_PASS;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromVarBin::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromVarChar)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromVarChar - Conversion from SQL_VARCHAR
//| Created: 05/19/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromVarChar::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_VARCHAR);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To NUMERIC
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromVarChar::Variation_1()
{
return CheckConversion(SQL_CONVERT_VARCHAR, SQL_CVT_NUMERIC, L"1.9", idsFnNUMERIC, CHECKSTR);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromVarChar::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(ConvFromDecimal)
//*-----------------------------------------------------------------------
//| Test Case: ConvFromDecimal - Test conversion from SQL_DECIMAL
//| Created: 05/22/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromDecimal::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
return CreateTypeTable(SQL_DECIMAL);
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc To CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int ConvFromDecimal::Variation_1()
{
return CheckConversion(SQL_CONVERT_DECIMAL, SQL_CVT_CHAR, L".1234567890123456789012345678", idsFnCHAR, CHECKFLOAT);
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL ConvFromDecimal::Terminate()
{
DropTypeTable();
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}
// {{ TCW_TC_PROTOTYPE(Y2K_Tests)
//*-----------------------------------------------------------------------
//| Test Case: Y2K_Tests - Test timedate scalar funcs relating to Y2k
//| Created: 7-8-98
//*-----------------------------------------------------------------------
//*-----------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL Y2K_Tests::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
// TO DO: Add your own code here
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc DAYNAME(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_1()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn DAYNAME({ts '2000-01-01 00:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYNAME))
return CheckQry(L"Saturday",CHECKISTR);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc DAYNAME(date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_2()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn DAYNAME({d '2000-02-29'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYNAME))
return CheckQry(L"Tuesday",CHECKISTR);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc DAYOFMONTH(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_3()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFMONTH({ts '2000-01-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFMONTH))
return CheckQry(L"31",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc DAYOFMONTH(date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_4()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFMONTH({d '2000-02-29'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFMONTH))
return CheckQry(L"29",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_5()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK( {ts '2000-02-28 12:01:00'} )");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"2", CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_6()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK( {d '2000-12-31'} )");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"1", CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_7()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '2000-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"366",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_8()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '2001-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"365",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc MONTH(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_9()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn MONTH({ts '2000-02-29 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_MONTH))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc MONTH(date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_10()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn MONTH({d '2000-10-10'})");
if(IsSupportedDateTime(SQL_FN_TD_MONTH))
return CheckQry(L"10",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc QUARTER(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_11()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn QUARTER({ts '2000-03-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_QUARTER))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc QUARTER(date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_12()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn QUARTER({d '2000-04-01'})");
if(IsSupportedDateTime(SQL_FN_TD_QUARTER))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc TIMESTAMPADD(timestamps
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_13()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn TIMESTAMPADD(SQL_TSI_HOUR, 13,{ts '1999-12-31 12:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPADD))
return CheckQry(L"2000-01-01 01:00:00.000",CHECKTIMESTAMP);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc TIMESTAMPADD(dates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_14()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn TIMESTAMPADD(SQL_TSI_DAY, 3, {d '2000-02-28'})");
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPADD))
return CheckQry(L"2000-03-02 00:00:00.000",CHECKTIMESTAMP);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc TIMESTAMPDIFF(timestamps
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_15()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn TIMESTAMPDIFF(SQL_TSI_MONTH, {ts '2000-03-01 00:00:00'}, {ts '1999-10-01 00:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPDIFF))
return CheckQry(L"-5",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc TIMESTAMPDIFF(dates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_16()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn TIMESTAMPDIFF(SQL_TSI_DAY, {d '2000-12-31'}, {d '2000-01-01'})");
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPDIFF))
return CheckQry(L"-365",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc WEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_17()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn WEEK({ts '2000-01-01 13:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_WEEK))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc WEEK(dates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_18()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn WEEK({d '2000-01-01'})");
if(IsSupportedDateTime(SQL_FN_TD_WEEK))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc YEAR(timestamps
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_19()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn YEAR({ts '2000-01-01 00:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_YEAR))
return CheckQry(L"2000",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc YEAR(dates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_20()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn YEAR({d '2000-12-31'})");
if(IsSupportedDateTime(SQL_FN_TD_YEAR))
return CheckQry(L"2000",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc HOUR(timestamps
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_21()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn HOUR({ts '2000-02-29 17:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_HOUR))
return CheckQry(L"17",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(22)
//*-----------------------------------------------------------------------
// @mfunc HOUR(date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_22()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn HOUR({ts '2000-02-29 00:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_HOUR))
return CheckQry(L"0",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
//------------------------------------------------------------------------
//------------------------------------------------------------------------
//------------------------------------------------------------------------
// {{ TCW_VAR_PROTOTYPE(23)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_23()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '1900-01-01 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(24)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_24()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '1900-02-28 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"4",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(25)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_25()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '1900-03-01 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"5",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(26)
//*-----------------------------------------------------------------------
// @mfunc WEEK(dates
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_26()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn WEEK({d '1901-01-01'})");
if(IsSupportedDateTime(SQL_FN_TD_WEEK))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(27)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_27()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '1928-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"366",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(28)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_28()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '1928-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"366",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(29)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_29()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '1998-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"365",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(30)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_30()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '1999-01-01 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"6",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(31)
//*-----------------------------------------------------------------------
// @mfunc QUARTER(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_31()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn QUARTER({ts '2000-01-10 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_QUARTER))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(32)
//*-----------------------------------------------------------------------
// @mfunc QUARTER(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_32()
{
swprintf(m_wszQuery,g_wszScalarFmt,L"fn QUARTER({ts '2001-01-01 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_QUARTER))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(33)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_33()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '2048-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"366",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(34)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_34()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '2049-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"365",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(35)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_35()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '2001-01-01 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(36)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_36()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '2002-01-01 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"3",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(37)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_37()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '2004-02-29 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(38)
//*-----------------------------------------------------------------------
// @mfunc DAYOFYEAR(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_38()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFYEAR({ts '2098-12-31 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFYEAR))
return CheckQry(L"365",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(39)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_39()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '2100-02-28 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"1",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(40)
//*-----------------------------------------------------------------------
// @mfunc DAYOFWEEK(timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_40()
{
swprintf(m_wszQuery,g_wszScalarFmt, L"fn DAYOFWEEK({ts '2100-03-01 23:59:00'})");
if(IsSupportedDateTime(SQL_FN_TD_DAYOFWEEK))
return CheckQry(L"2",CHECKINT);
else
return TEST_SKIPPED;
}
// }} TCW_VAR_PROTOTYPE_END
// {{ TCW_VAR_PROTOTYPE(41)
//*-----------------------------------------------------------------------
// @mfunc Nested TIMESTAMPADD timestamp
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_41()
{
swprintf(m_wszQuery,g_wszScalarFmt,
L"fn TIMESTAMPADD(SQL_TSI_DAY, {fn DAYOFMONTH({ts '2000-01-01 00:00:00'})}, {ts '2000-02-28 00:00:00'})");
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPADD))
return CheckQry(L"2000-02-29 00:00:00.000",CHECKTIMESTAMP);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(42)
//*-----------------------------------------------------------------------
// @mfunc Nested TIMESTAMPADD date
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_42()
{
swprintf(m_wszQuery,g_wszScalarFmt,
L"fn TIMESTAMPADD(SQL_TSI_DAY, {fn DAYOFMONTH({d '2000-01-01'})}, {d '2000-02-28'})");
if(IsSupportedDateTime(SQL_FN_TD_TIMESTAMPADD))
return CheckQry(L"2000-02-29 00:00:00.000",CHECKTIMESTAMP);
else
return TEST_SKIPPED;
}
// }}
// {{ TCW_VAR_PROTOTYPE(43)
//--------------------------------------------------------------------
// @mfunc Time canonical literal
//
// @rdesc TEST_PASS or TEST_FAIL
//
int Y2K_Tests::Variation_43()
{
WCHAR wszExpectedDate[MAXBUFLEN];
SYSTEMTIME SystemTime;
if(g_ProvInfo.dwDBMSType != DRVR_SQLSRVR)
return TEST_SKIPPED;
GetLocalTime(&SystemTime);
swprintf(wszExpectedDate, L"%.4d-%.2d-%.2d %s", SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay, L"07:15:26");
swprintf(m_wszQuery,g_wszScalarFmt, L"fn convert({ t '07:15:26'}, SQL_TIMESTAMP)");
return CheckQry(wszExpectedDate,CHECKTIMESTAMP);
}
// }}
// {{ TCW_TERMINATE_METHOD
//*-----------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TEST_PASS or TEST_FAIL
//
BOOL Y2K_Tests::Terminate()
{
// TO DO: Add your own code here
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }} TCW_TERMINATE_METHOD_END
// }} TCW_TC_PROTOTYPE_END
// {{ TCW_TC_PROTOTYPE(EURO)
//*-----------------------------------------------------------------------
//| Test Case: EURO - Ansi Unicode conversion cases involving EURO symbol
//| Created: 09/28/98
//*-----------------------------------------------------------------------
//--------------------------------------------------------------------
// @mfunc TestCase Initialization Routine
//
// @rdesc TRUE or FALSE
//
BOOL EURO::Init()
{
// {{ TCW_INIT_BASECLASS_CHECK
if(CScalar::Init())
// }}
{
BOOL fNoEuro = FALSE;
char szEuro[2];
ULONG cchBytesWritten = 0;
m_wszEuro[0] = 0x20AC;
m_wszEuro[1] = 0x0000;
// make sure that EURO is supported on this OS.
// For example, a Japanese OS won't have EURO support.
cchBytesWritten = WideCharToMultiByte( CP_ACP,
0,
m_wszEuro,
-1,
szEuro,
sizeof(szEuro),
NULL,
&fNoEuro);
COMPARE(cchBytesWritten, 2); // one byte for EURO char, one byte for null terminator
if (fNoEuro)
return TEST_SKIPPED;
else
return TRUE;
}
return FALSE;
}
// {{ TCW_VAR_PROTOTYPE(1)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_CHAR to SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_1()
{
if(TRUE != CreateTypeTable(SQL_CHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_CHAR, SQL_CVT_CHAR, m_wszEuro, idsFnCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(2)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_VARCHAR to SQL_VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_2()
{
if(TRUE != CreateTypeTable(SQL_VARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_VARCHAR, SQL_CVT_VARCHAR, m_wszEuro, idsFnVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(3)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_LONGVARCHAR to SQL_LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_3()
{
if(TRUE != CreateTypeTable(SQL_LONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_LONGVARCHAR, SQL_CVT_LONGVARCHAR, m_wszEuro, idsFnLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(4)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WCHAR to SQL_WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_4()
{
if(TRUE != CreateTypeTable(SQL_WCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_WCHAR, m_wszEuro, idsFnWCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(5)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WVARCHAR to SQL_WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_5()
{
if(TRUE != CreateTypeTable(SQL_WVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WVARCHAR, SQL_CVT_WVARCHAR, m_wszEuro, idsFnWVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(6)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WLONGVARCHAR to SQL_WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_6()
{
if(!CreateTypeTable(SQL_WLONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WLONGVARCHAR, SQL_CVT_WLONGVARCHAR, m_wszEuro, idsFnWLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(7)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_CHAR to SQL_WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_7()
{
if(TRUE != CreateTypeTable(SQL_CHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_CHAR, SQL_CVT_WCHAR, m_wszEuro, idsFnWCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(8)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_CHAR to SQL_WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_8()
{
if(TRUE != CreateTypeTable(SQL_CHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_CHAR, SQL_CVT_WVARCHAR, m_wszEuro, idsFnWVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(9)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_CHAR to SQL_WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_9()
{
if(TRUE != CreateTypeTable(SQL_CHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_CHAR, SQL_CVT_WLONGVARCHAR, m_wszEuro, idsFnWLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(10)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_VARCHAR to SQLWCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_10()
{
if(TRUE != CreateTypeTable(SQL_VARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_VARCHAR, SQL_CVT_WCHAR, m_wszEuro, idsFnWCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(11)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_VARCHAR to SQL_WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_11()
{
if(TRUE != CreateTypeTable(SQL_VARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_VARCHAR, SQL_CVT_WVARCHAR, m_wszEuro, idsFnWVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(12)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_VARCHAR to SQL_WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_12()
{
if(TRUE != CreateTypeTable(SQL_VARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_VARCHAR, SQL_CVT_WLONGVARCHAR, m_wszEuro, idsFnWLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(13)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_LONGVARCHAR to SQL_WCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_13()
{
if(TRUE != CreateTypeTable(SQL_LONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_LONGVARCHAR, SQL_CVT_WCHAR, m_wszEuro, idsFnWCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(14)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_LONGVARCHAR to SQL_WVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_14()
{
if(TRUE != CreateTypeTable(SQL_LONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_LONGVARCHAR, SQL_CVT_WVARCHAR, m_wszEuro, idsFnWVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(15)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_LONGVARCHAR to SQL_WLONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_15()
{
if(TRUE != CreateTypeTable(SQL_LONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_LONGVARCHAR, SQL_CVT_WLONGVARCHAR, m_wszEuro, idsFnWLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(16)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WCHAR to SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_16()
{
if(TRUE != CreateTypeTable(SQL_WCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_CHAR, m_wszEuro, idsFnCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(17)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WCHAR to SQL_VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_17()
{
if(TRUE != CreateTypeTable(SQL_WCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_VARCHAR, m_wszEuro, idsFnVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(18)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WCHAR to SQL_LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_18()
{
if(TRUE != CreateTypeTable(SQL_WCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WCHAR, SQL_CVT_LONGVARCHAR, m_wszEuro, idsFnLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(19)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WVARCHAR to SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_19()
{
if(TRUE != CreateTypeTable(SQL_WVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WVARCHAR, SQL_CVT_CHAR, m_wszEuro, idsFnCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(20)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WVARCHAR to SQL_VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_20()
{
if(TRUE != CreateTypeTable(SQL_WVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WVARCHAR, SQL_CVT_VARCHAR, m_wszEuro, idsFnVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(21)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WVARCHAR to SQL_LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_21()
{
if(TRUE != CreateTypeTable(SQL_WVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WVARCHAR, SQL_CVT_LONGVARCHAR, m_wszEuro, idsFnLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(22)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WLONGVARCHAR to SQL_CHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_22()
{
if(TRUE != CreateTypeTable(SQL_WLONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WLONGVARCHAR, SQL_CVT_CHAR, m_wszEuro, idsFnCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(23)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WLONGVARCHAR to SQL_VARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_23()
{
if(TRUE != CreateTypeTable(SQL_WLONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WLONGVARCHAR, SQL_CVT_VARCHAR, m_wszEuro, idsFnVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_VAR_PROTOTYPE(24)
//*-----------------------------------------------------------------------
// @mfunc Convert SQL_WLONGVARCHAR to SQL_LONGVARCHAR
//
// @rdesc TEST_PASS or TEST_FAIL
//
int EURO::Variation_24()
{
if(TRUE != CreateTypeTable(SQL_WLONGVARCHAR))
{
DropTypeTable();
return TEST_SKIPPED;
}
m_fPass = CheckConversion(SQL_CONVERT_WLONGVARCHAR, SQL_CVT_LONGVARCHAR, m_wszEuro, idsFnLONGVARCHAR, CHECKSTR);
DropTypeTable();
return m_fPass;
}
// }}
// {{ TCW_TERMINATE_METHOD
//--------------------------------------------------------------------
// @mfunc TestCase Termination Routine
//
// @rdesc TRUE or FALSE
//
BOOL EURO::Terminate()
{
// TO DO: Add your own code here
// {{ TCW_TERM_BASECLASS_CHECK2
return(CScalar::Terminate());
} // }}
// }}
// }}