9515 lines
239 KiB
C++
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());
|
|
} // }}
|
|
// }}
|
|
// }}
|