should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,101 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Class representing database bulk loader.
*/
#ifndef DB_LOADER_H
#define DB_LOADER_H
#include "ODBCLoad_stdafx.h"
namespace TPCE {
// Database binding type for integer identifiers (IDENT_T metatype in TPC-E
// spec).
//
#define IDENT_BIND SQLINT8
// For nullable columns
typedef struct BCPDOUBLE {
int iIndicator;
float value;
} * PBCPDOUBLE;
typedef struct BCPDBDATETIME {
int iIndicator;
DBDATETIME value;
} * PBCPDBDATETIME;
/*
* DBLoader class.
*/
template <typename T> class CDBLoader : public CBaseLoader<T> {
protected:
T m_row;
int m_cnt;
SQLHENV m_henv; // ODBC environment handle
SQLHDBC m_hdbc;
SQLHSTMT m_hstmt; // the current hstmt
char m_szServer[iMaxHostname]; // server name
char m_szDatabase[iMaxDBName]; // name of the database being loaded
char m_szLoaderParams[iMaxPath]; // loader parameters specified on the
// command-line
char m_szTable[iMaxPath]; // name of the table being loaded
virtual void CopyRow(const T &row) {
memcpy(&m_row, &row, sizeof(m_row));
};
public:
CDBLoader(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable);
~CDBLoader(void);
virtual void BindColumns() = 0; // column binding function subclasses must implement
virtual void Init(); // resets to clean state; needed after FinishLoad to
// continue loading
virtual void Commit(); // commit rows sent so far
virtual void FinishLoad(); // finish load
void Connect(); // connect to SQL Server
void Disconnect(); // disconnect - should not throw any exceptions (to put
// into the destructor)
void ThrowError(CODBCERR::ACTION eAction, SQLSMALLINT HandleType = 0, SQLHANDLE Handle = SQL_NULL_HANDLE);
virtual void WriteNextRecord(const T &next_record);
};
} // namespace TPCE
#endif // DB_LOADER_H

View File

@@ -0,0 +1,70 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for ACCOUNT_PERMISSION table.
*/
#ifndef ODBC_ACCOUNT_PERMISSION_LOAD_H
#define ODBC_ACCOUNT_PERMISSION_LOAD_H
namespace TPCE {
class CODBCAccountPermissionLoad : public CDBLoader<ACCOUNT_PERMISSION_ROW> {
public:
CODBCAccountPermissionLoad(char *szServer, char *szDatabase, char *szLoaderParams,
char *szTable = "ACCOUNT_PERMISSION")
: CDBLoader<ACCOUNT_PERMISSION_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.AP_CA_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AP_ACL, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AP_TAX_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AP_L_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AP_F_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (AP_CA_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_ACCOUNT_PERMISSION_LOAD_H

View File

@@ -0,0 +1,70 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for ADDRESS table.
*/
#ifndef ODBC_ADDRESS_LOAD_H
#define ODBC_ADDRESS_LOAD_H
namespace TPCE {
class CODBCAddressLoad : public CDBLoader<ADDRESS_ROW> {
public:
CODBCAddressLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "ADDRESS")
: CDBLoader<ADDRESS_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.AD_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AD_LINE1, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AD_LINE2, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AD_ZC_CODE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.AD_CTRY, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (AD_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_ADDRESS_LOAD_H

View File

@@ -0,0 +1,67 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for BROKER table.
*/
#ifndef ODBC_BROKER_LOAD_H
#define ODBC_BROKER_LOAD_H
namespace TPCE {
class CODBCBrokerLoad : public CDBLoader<BROKER_ROW> {
public:
CODBCBrokerLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "BROKER")
: CDBLoader<BROKER_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.B_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.B_ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.B_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.B_NUM_TRADES, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.B_COMM_TOTAL, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (B_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_BROKER_LOAD_H

View File

@@ -0,0 +1,73 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for CASH_TRANSACTION table.
*/
#ifndef ODBC_CASH_TRANSACTION_LOAD_H
#define ODBC_CASH_TRANSACTION_LOAD_H
namespace TPCE {
class CODBCCashTransactionLoad : public CDBLoader<CASH_TRANSACTION_ROW> {
private:
DBDATETIME ODBC_CT_DTS;
virtual inline void CopyRow(const CASH_TRANSACTION_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.CT_DTS.GetDBDATETIME(&ODBC_CT_DTS);
};
public:
CODBCCashTransactionLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "CASH_TRANSACTION")
: CDBLoader<CASH_TRANSACTION_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.CT_T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_CT_DTS, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CT_AMT, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CT_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (CT_T_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_CASH_TRANSACTION_LOAD_H

View File

@@ -0,0 +1,74 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for CHARGE table.
*/
#ifndef ODBC_CHARGE_LOAD_H
#define ODBC_CHARGE_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCChargeLoad : public CDBLoader<CHARGE_ROW> {
public:
CODBCChargeLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "CHARGE")
: CDBLoader<CHARGE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.CH_TT_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CH_C_TIER, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CH_CHRG, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const CHARGE_ROW &row) {
strncpy(m_row.CH_TT_ID, row.CH_TT_ID, sizeof(m_row.CH_TT_ID));
m_row.CH_C_TIER = row.CH_C_TIER;
m_row.CH_CHRG = row.CH_CHRG;
};
};
} // namespace TPCE
#endif // ODBC_CHARGE_LOAD_H

View File

@@ -0,0 +1,81 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for COMMISSION_RATE table.
*/
#ifndef ODBC_COMMISSION_RATE_LOAD_H
#define ODBC_COMMISSION_RATE_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCCommissionRateLoad : public CDBLoader<COMMISSION_RATE_ROW> {
public:
CODBCCommissionRateLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "COMMISSION_RATE")
: CDBLoader<COMMISSION_RATE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.CR_C_TIER, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CR_TT_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CR_EX_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CR_FROM_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CR_TO_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CR_RATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const COMMISSION_RATE_ROW &row) {
m_row.CR_C_TIER = row.CR_C_TIER;
strncpy(m_row.CR_TT_ID, row.CR_TT_ID, sizeof(m_row.CR_TT_ID));
strncpy(m_row.CR_EX_ID, row.CR_EX_ID, sizeof(m_row.CR_EX_ID));
m_row.CR_FROM_QTY = row.CR_FROM_QTY;
m_row.CR_TO_QTY = row.CR_TO_QTY;
m_row.CR_RATE = row.CR_RATE;
};
};
} // namespace TPCE
#endif // ODBC_COMMISSION_RATE_LOAD_H

View File

@@ -0,0 +1,68 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for COMPANY_COMPETITOR table.
*/
#ifndef ODBC_COMPANY_COMPETITOR_LOAD_H
#define ODBC_COMPANY_COMPETITOR_LOAD_H
namespace TPCE {
class CODBCCompanyCompetitorLoad : public CDBLoader<COMPANY_COMPETITOR_ROW> {
public:
CODBCCompanyCompetitorLoad(char *szServer, char *szDatabase, char *szLoaderParams,
char *szTable = "COMPANY_COMPETITOR")
: CDBLoader<COMPANY_COMPETITOR_ROW>(szServer, szDatabase, szLoaderParams, szTable) {
}
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.CP_CO_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CP_COMP_CO_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CP_IN_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "ORDER (AD_ID)" ) != SUCCEED
// )
// ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_COMPANY_COMPETITOR_LOAD_H

View File

@@ -0,0 +1,81 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for COMPANY table.
*/
#ifndef ODBC_COMPANY_LOAD_H
#define ODBC_COMPANY_LOAD_H
namespace TPCE {
class CODBCCompanyLoad : public CDBLoader<COMPANY_ROW> {
private:
DBDATETIME ODBC_CO_OPEN_DATE;
virtual inline void CopyRow(const COMPANY_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.CO_OPEN_DATE.GetDBDATETIME(&ODBC_CO_OPEN_DATE);
};
public:
CODBCCompanyLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "COMPANY")
: CDBLoader<COMPANY_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.CO_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CO_ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CO_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CO_IN_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CO_SP_RATE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CO_CEO, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CO_AD_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CO_DESC, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_CO_OPEN_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (CO_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_COMPANY_LOAD_H

View File

@@ -0,0 +1,68 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for CUSTOMER_ACCOUNT table.
*/
#ifndef ODBC_CUSTOMER_ACCOUNT_LOAD_H
#define ODBC_CUSTOMER_ACCOUNT_LOAD_H
namespace TPCE {
class CODBCCustomerAccountLoad : public CDBLoader<CUSTOMER_ACCOUNT_ROW> {
public:
CODBCCustomerAccountLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "CUSTOMER_ACCOUNT")
: CDBLoader<CUSTOMER_ACCOUNT_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.CA_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CA_B_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CA_C_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CA_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CA_TAX_ST, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT1, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CA_BAL, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (CA_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_CUSTOMER_ACCOUNT_LOAD_H

View File

@@ -0,0 +1,106 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for CUSTOMER table.
*/
#ifndef ODBC_CUSTOMER_LOAD_H
#define ODBC_CUSTOMER_LOAD_H
namespace TPCE {
class CODBCCustomerLoad : public CDBLoader<CUSTOMER_ROW> {
private:
DBDATETIME ODBC_C_DOB;
virtual inline void CopyRow(const CUSTOMER_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.C_DOB.GetDBDATETIME(&ODBC_C_DOB);
};
public:
CODBCCustomerLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "CUSTOMER")
: CDBLoader<CUSTOMER_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.C_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_TAX_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_L_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_F_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_M_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_GNDR, 0, 1, NULL, 0, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_TIER, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT1, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_C_DOB, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_AD_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_CTRY_1, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_AREA_1, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_LOCAL_1, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_EXT_1, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_CTRY_2, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_AREA_2, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_LOCAL_2, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_EXT_2, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_CTRY_3, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_AREA_3, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_LOCAL_3, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_EXT_3, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_EMAIL_1, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.C_EMAIL_2, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (C_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
}
};
} // namespace TPCE
#endif // ODBC_CUSTOMER_LOAD_H

View File

@@ -0,0 +1,64 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for CUSTOMER_TAXRATE table.
*/
#ifndef ODBC_CUSTOMER_TAXRATE_LOAD_H
#define ODBC_CUSTOMER_TAXRATE_LOAD_H
namespace TPCE {
class CODBCCustomerTaxRateLoad : public CDBLoader<CUSTOMER_TAXRATE_ROW> {
public:
CODBCCustomerTaxRateLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "CUSTOMER_TAXRATE")
: CDBLoader<CUSTOMER_TAXRATE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.CX_C_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.CX_TX_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (CX_C_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_CUSTOMER_TAXRATE_LOAD_H

View File

@@ -0,0 +1,76 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* ODBC Database loader class for DAILY_MARKET table.
*/
#ifndef ODBC_DAILY_MARKET_LOAD_H
#define ODBC_DAILY_MARKET_LOAD_H
namespace TPCE {
class CODBCDailyMarketLoad : public CDBLoader<DAILY_MARKET_ROW> {
private:
DBDATETIME ODBC_DM_DATE;
virtual inline void CopyRow(const DAILY_MARKET_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.DM_DATE.GetDBDATETIME(&ODBC_DM_DATE);
};
public:
CODBCDailyMarketLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "DAILY_MARKET")
: CDBLoader<DAILY_MARKET_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&ODBC_DM_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.DM_S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.DM_CLOSE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.DM_HIGH, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.DM_LOW, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.DM_VOL, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_DAILY_MARKET_LOAD_H

View File

@@ -0,0 +1,88 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for EXCHANGE table.
*/
#ifndef ODBC_EXCHANGE_LOAD_H
#define ODBC_EXCHANGE_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCExchangeLoad : public CDBLoader<EXCHANGE_ROW> {
public:
CODBCExchangeLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "EXCHANGE")
: CDBLoader<EXCHANGE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.EX_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.EX_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.EX_NUM_SYMB, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.EX_OPEN, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.EX_CLOSE, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED
// || bcp_bind(m_hdbc, (BYTE *) &m_row.EX_OPEN, 0,
// SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
// SUCCEED
// || bcp_bind(m_hdbc, (BYTE *) &m_row.EX_CLOSE, 0,
// SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
// SUCCEED
||
bcp_bind(m_hdbc, (BYTE *)&m_row.EX_DESC, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.EX_AD_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const EXCHANGE_ROW &row) {
strncpy(m_row.EX_ID, row.EX_ID, sizeof(m_row.EX_ID));
strncpy(m_row.EX_NAME, row.EX_NAME, sizeof(m_row.EX_NAME));
m_row.EX_NUM_SYMB = row.EX_NUM_SYMB;
m_row.EX_OPEN = row.EX_OPEN;
m_row.EX_CLOSE = row.EX_CLOSE;
strncpy(m_row.EX_DESC, row.EX_DESC, sizeof(m_row.EX_DESC));
m_row.EX_AD_ID = row.EX_AD_ID;
};
};
} // namespace TPCE
#endif // ODBC_EXCHANGE_LOAD_H

View File

@@ -0,0 +1,84 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for FINANCIAL table.
*/
#ifndef ODBC_FINANCIAL_LOAD_H
#define ODBC_FINANCIAL_LOAD_H
namespace TPCE {
class CODBCFinancialLoad : public CDBLoader<FINANCIAL_ROW> {
private:
DBDATETIME ODBC_FI_QTR_START_DATE;
virtual inline void CopyRow(const FINANCIAL_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.FI_QTR_START_DATE.GetDBDATETIME(&ODBC_FI_QTR_START_DATE);
};
public:
CODBCFinancialLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "FINANCIAL")
: CDBLoader<FINANCIAL_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.FI_CO_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_YEAR, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_QTR, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_FI_QTR_START_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_REVENUE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_NET_EARN, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_BASIC_EPS, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_DILUT_EPS, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_MARGIN, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_INVENTORY, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_ASSETS, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_LIABILITY, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_OUT_BASIC, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.FI_OUT_DILUT, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (FI_CO_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_FINANCIAL_LOAD_H

View File

@@ -0,0 +1,66 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for HOLDING_HISTORY table.
*/
#ifndef HOLDING_HISTORY_LOAD_H
#define HOLDING_HISTORY_LOAD_H
namespace TPCE {
class CODBCHoldingHistoryLoad : public CDBLoader<HOLDING_HISTORY_ROW> {
public:
CODBCHoldingHistoryLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "HOLDING_HISTORY")
: CDBLoader<HOLDING_HISTORY_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.HH_H_T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.HH_T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.HH_BEFORE_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.HH_AFTER_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (HH_H_T_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // HOLDING_HISTORY_LOAD_H

View File

@@ -0,0 +1,75 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for HOLDING table.
*/
#ifndef ODBC_HOLDING_LOAD_H
#define ODBC_HOLDING_LOAD_H
namespace TPCE {
class CODBCHoldingLoad : public CDBLoader<HOLDING_ROW> {
private:
DBDATETIME ODBC_H_DTS;
virtual inline void CopyRow(const HOLDING_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.H_DTS.GetDBDATETIME(&ODBC_H_DTS);
};
public:
CODBCHoldingLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "HOLDING")
: CDBLoader<HOLDING_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.H_T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.H_CA_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.H_S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, 0, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_H_DTS, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.H_PRICE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.H_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (H_T_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_HOLDING_LOAD_H

View File

@@ -0,0 +1,62 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for HOLDING_SUMMARY table.
*/
#ifndef ODBC_HOLDING_SUMMARY_LOAD_H
#define ODBC_HOLDING_SUMMARY_LOAD_H
namespace TPCE {
class CODBCHoldingSummaryLoad : public CDBLoader<HOLDING_SUMMARY_ROW> {
public:
CODBCHoldingSummaryLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "HOLDING_SUMMARY")
: CDBLoader<HOLDING_SUMMARY_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.HS_CA_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.HS_S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, 0, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.HS_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
};
};
} // namespace TPCE
#endif // ODBC_HOLDING_SUMMARY_LOAD_H

View File

@@ -0,0 +1,73 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for INDUSTRY table.
*/
#ifndef ODBC_INDUSTRY_LOAD_H
#define ODBC_INDUSTRY_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCIndustryLoad : public CDBLoader<INDUSTRY_ROW> {
public:
CODBCIndustryLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "INDUSTRY")
: CDBLoader<INDUSTRY_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.IN_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.IN_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.IN_SC_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const INDUSTRY_ROW &row) {
strncpy(m_row.IN_ID, row.IN_ID, sizeof(m_row.IN_ID));
strncpy(m_row.IN_NAME, row.IN_NAME, sizeof(m_row.IN_NAME));
strncpy(m_row.IN_SC_ID, row.IN_SC_ID, sizeof(m_row.IN_SC_ID));
};
};
} // namespace TPCE
#endif // ODBC_INDUSTRY_LOAD_H

View File

@@ -0,0 +1,77 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for LAST TRADE table.
*/
#ifndef ODBC_LAST_TRADE_LOAD_H
#define ODBC_LAST_TRADE_LOAD_H
namespace TPCE {
class CODBCLastTradeLoad : public CDBLoader<LAST_TRADE_ROW> {
private:
DBDATETIME ODBC_LT_DTS;
virtual inline void CopyRow(const LAST_TRADE_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.LT_DTS.GetDBDATETIME(&ODBC_LT_DTS);
};
public:
CODBCLastTradeLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "LAST_TRADE")
: CDBLoader<LAST_TRADE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.LT_S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_LT_DTS, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.LT_PRICE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.LT_OPEN_PRICE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.LT_VOL, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_LAST_TRADE_LOAD_H

View File

@@ -0,0 +1,94 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#ifndef ODBCLOAD_STDAFX_H
#define ODBCLOAD_STDAFX_H
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>
// ODBC headers
#include <sql.h>
#include <sqlext.h>
#include <odbcss.h>
#include "../utilities/EGenUtilities_stdafx.h"
#include "../TableRows.h"
#include "../EGenBaseLoader_stdafx.h"
#include "error.h"
#include "DBLoader.h"
#include "ODBCAccountPermissionLoad.h"
#include "ODBCAddressLoad.h"
#include "ODBCBrokerLoad.h"
#include "ODBCCashTransactionLoad.h"
#include "ODBCChargeLoad.h"
#include "ODBCCommissionRateLoad.h"
#include "ODBCCompanyLoad.h"
#include "ODBCCompanyCompetitorLoad.h"
#include "ODBCCustomerLoad.h"
#include "ODBCCustomerAccountLoad.h"
#include "ODBCCustomerTaxrateLoad.h"
#include "ODBCDailyMarketLoad.h"
#include "ODBCExchangeLoad.h"
#include "ODBCFinancialLoad.h"
#include "ODBCHoldingLoad.h"
#include "ODBCHoldingHistoryLoad.h"
#include "ODBCHoldingSummaryLoad.h"
#include "ODBCIndustryLoad.h"
#include "ODBCLastTradeLoad.h"
#include "ODBCNewsItemLoad.h"
#include "ODBCNewsXRefLoad.h"
#include "ODBCSectorLoad.h"
#include "ODBCSecurityLoad.h"
#include "ODBCSettlementLoad.h"
#include "ODBCStatusTypeLoad.h"
#include "ODBCTaxrateLoad.h"
#include "ODBCTradeLoad.h"
#include "ODBCTradeHistoryLoad.h"
#include "ODBCTradeRequestLoad.h"
#include "ODBCTradeTypeLoad.h"
#include "ODBCWatchItemLoad.h"
#include "ODBCWatchListLoad.h"
#include "ODBCZipCodeLoad.h"
#include "ODBCLoaderFactory.h"
#endif // #ifndef ODBCLOAD_STDAFX_H

View File

@@ -0,0 +1,168 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
* - Doug Johnson
*/
/*
* ODBC loader class factory for MS SQL Server.
* This class instantiates particular table loader classes.
*/
#ifndef ODBC_LOADER_FACTORY_H
#define ODBC_LOADER_FACTORY_H
namespace TPCE {
class CODBCLoaderFactory : public CBaseLoaderFactory {
char m_szServer[iMaxHostname]; // database server name
char m_szDB[iMaxDBName]; // database name
char m_szLoaderParams[1024]; // optional parameters
public:
// Constructor
CODBCLoaderFactory(char *szServer, char *szDatabase, char *szLoaderParams) {
assert(szServer);
assert(szDatabase);
strncpy(m_szServer, szServer, sizeof(m_szServer));
strncpy(m_szDB, szDatabase, sizeof(m_szDB));
strncpy(m_szLoaderParams, szLoaderParams, sizeof(m_szLoaderParams));
}
// Functions to create loader classes for individual tables.
virtual CBaseLoader<ACCOUNT_PERMISSION_ROW> *CreateAccountPermissionLoader() {
return new CODBCAccountPermissionLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<ADDRESS_ROW> *CreateAddressLoader() {
return new CODBCAddressLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<BROKER_ROW> *CreateBrokerLoader() {
return new CODBCBrokerLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<CASH_TRANSACTION_ROW> *CreateCashTransactionLoader() {
return new CODBCCashTransactionLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<CHARGE_ROW> *CreateChargeLoader() {
return new CODBCChargeLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<COMMISSION_RATE_ROW> *CreateCommissionRateLoader() {
return new CODBCCommissionRateLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<COMPANY_COMPETITOR_ROW> *CreateCompanyCompetitorLoader() {
return new CODBCCompanyCompetitorLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<COMPANY_ROW> *CreateCompanyLoader() {
return new CODBCCompanyLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<CUSTOMER_ACCOUNT_ROW> *CreateCustomerAccountLoader() {
return new CODBCCustomerAccountLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<CUSTOMER_ROW> *CreateCustomerLoader() {
return new CODBCCustomerLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<CUSTOMER_TAXRATE_ROW> *CreateCustomerTaxrateLoader() {
return new CODBCCustomerTaxRateLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<DAILY_MARKET_ROW> *CreateDailyMarketLoader() {
return new CODBCDailyMarketLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<EXCHANGE_ROW> *CreateExchangeLoader() {
return new CODBCExchangeLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<FINANCIAL_ROW> *CreateFinancialLoader() {
return new CODBCFinancialLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<HOLDING_ROW> *CreateHoldingLoader() {
return new CODBCHoldingLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<HOLDING_HISTORY_ROW> *CreateHoldingHistoryLoader() {
return new CODBCHoldingHistoryLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<HOLDING_SUMMARY_ROW> *CreateHoldingSummaryLoader() {
return new CODBCHoldingSummaryLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<INDUSTRY_ROW> *CreateIndustryLoader() {
return new CODBCIndustryLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<LAST_TRADE_ROW> *CreateLastTradeLoader() {
return new CODBCLastTradeLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<NEWS_ITEM_ROW> *CreateNewsItemLoader() {
return new CODBCNewsItemLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<NEWS_XREF_ROW> *CreateNewsXRefLoader() {
return new CODBCNewsXRefLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<SECTOR_ROW> *CreateSectorLoader() {
return new CODBCSectorLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<SECURITY_ROW> *CreateSecurityLoader() {
return new CODBCSecurityLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<SETTLEMENT_ROW> *CreateSettlementLoader() {
return new CODBCSettlementLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<STATUS_TYPE_ROW> *CreateStatusTypeLoader() {
return new CODBCStatusTypeLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<TAX_RATE_ROW> *CreateTaxRateLoader() {
return new CODBCTaxRateLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<TRADE_HISTORY_ROW> *CreateTradeHistoryLoader() {
return new CODBCTradeHistoryLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<TRADE_ROW> *CreateTradeLoader() {
return new CODBCTradeLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<TRADE_REQUEST_ROW> *CreateTradeRequestLoader() {
return new CODBCTradeRequestLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<TRADE_TYPE_ROW> *CreateTradeTypeLoader() {
return new CODBCTradeTypeLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<WATCH_ITEM_ROW> *CreateWatchItemLoader() {
return new CODBCWatchItemLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<WATCH_LIST_ROW> *CreateWatchListLoader() {
return new CODBCWatchListLoad(m_szServer, m_szDB, m_szLoaderParams);
};
virtual CBaseLoader<ZIP_CODE_ROW> *CreateZipCodeLoader() {
return new CODBCZipCodeLoad(m_szServer, m_szDB, m_szLoaderParams);
};
};
} // namespace TPCE
#endif // ODBC_LOADER_FACTORY_H

View File

@@ -0,0 +1,79 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for NEWS_ITEM table.
*/
#ifndef ODBC_NEWS_ITEM_LOAD_H
#define ODBC_NEWS_ITEM_LOAD_H
namespace TPCE {
class CODBCNewsItemLoad : public CDBLoader<NEWS_ITEM_ROW> {
DBDATETIME ODBC_NI_DTS;
virtual inline void CopyRow(const NEWS_ITEM_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.NI_DTS.GetDBDATETIME(&ODBC_NI_DTS);
};
public:
CODBCNewsItemLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "NEWS_ITEM")
: CDBLoader<NEWS_ITEM_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.NI_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.NI_HEADLINE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.NI_SUMMARY, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.NI_ITEM, 0, cNI_ITEM_len, NULL, 0, SQLIMAGE, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_NI_DTS, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.NI_SOURCE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.NI_AUTHOR, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (NI_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_NEWS_ITEM_LOAD_H

View File

@@ -0,0 +1,64 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for NEWS_XREF table.
*/
#ifndef ODBC_NEWS_XREF_LOAD_H
#define ODBC_NEWS_XREF_LOAD_H
namespace TPCE {
class CODBCNewsXRefLoad : public CDBLoader<NEWS_XREF_ROW> {
public:
CODBCNewsXRefLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "NEWS_XREF")
: CDBLoader<NEWS_XREF_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.NX_NI_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.NX_CO_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (NX_NI_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_NEWS_XREF_LOAD_H

View File

@@ -0,0 +1,71 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for SECTOR table.
*/
#ifndef ODBC_SECTOR_LOAD_H
#define ODBC_SECTOR_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCSectorLoad : public CDBLoader<SECTOR_ROW> {
public:
CODBCSectorLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "SECTOR")
: CDBLoader<SECTOR_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.SC_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.SC_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const SECTOR_ROW &row) {
strncpy(m_row.SC_ID, row.SC_ID, sizeof(m_row.SC_ID));
strncpy(m_row.SC_NAME, row.SC_NAME, sizeof(m_row.SC_NAME));
};
};
} // namespace TPCE
#endif // ODBC_SECTOR_LOAD_H

View File

@@ -0,0 +1,95 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for SECURITY table.
*/
#ifndef ODBC_SECURITY_LOAD_H
#define ODBC_SECURITY_LOAD_H
namespace TPCE {
class CODBCSecurityLoad : public CDBLoader<SECURITY_ROW> {
DBDATETIME ODBC_S_START_DATE;
DBDATETIME ODBC_S_EXCH_DATE;
DBDATETIME ODBC_S_52WK_LOW_DATE;
DBDATETIME ODBC_S_52WK_HIGH_DATE;
virtual inline void CopyRow(const SECURITY_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.S_START_DATE.GetDBDATETIME(&ODBC_S_START_DATE);
m_row.S_EXCH_DATE.GetDBDATETIME(&ODBC_S_EXCH_DATE);
m_row.S_52WK_LOW_DATE.GetDBDATETIME(&ODBC_S_52WK_LOW_DATE);
m_row.S_52WK_HIGH_DATE.GetDBDATETIME(&ODBC_S_52WK_HIGH_DATE);
};
public:
CODBCSecurityLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "SECURITY")
: CDBLoader<SECURITY_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if ( // bcp_bind(m_hdbc, (BYTE *) &m_row.S_ID, 0, SQL_VARLEN_DATA, NULL,
// 0, SQLINT4, ++i) != SUCCEED
bcp_bind(m_hdbc, (BYTE *)&m_row.S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_ISSUE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_EX_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_CO_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_NUM_OUT, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_S_START_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_S_EXCH_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_PE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_52WK_HIGH, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_S_52WK_HIGH_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_52WK_LOW, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_S_52WK_LOW_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_DIVIDEND, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.S_YIELD, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_SECURITY_LOAD_H

View File

@@ -0,0 +1,75 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for SETTLEMENT table.
*/
#ifndef ODBC_SETTLEMENT_LOAD_H
#define ODBC_SETTLEMENT_LOAD_H
namespace TPCE {
class CODBCSettlementLoad : public CDBLoader<SETTLEMENT_ROW> {
private:
DBDATETIME ODBC_SE_CASH_DUE_DATE;
virtual inline void CopyRow(const SETTLEMENT_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.SE_CASH_DUE_DATE.GetDBDATETIME(&ODBC_SE_CASH_DUE_DATE);
};
public:
CODBCSettlementLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "SETTLEMENT")
: CDBLoader<SETTLEMENT_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.SE_T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.SE_CASH_TYPE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_SE_CASH_DUE_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.SE_AMT, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (SE_T_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
}
};
} // namespace TPCE
#endif // ODBC_SETTLEMENT_LOAD_H

View File

@@ -0,0 +1,71 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for STATUS_TYPE table.
*/
#ifndef ODBC_STATUS_TYPE_LOAD_H
#define ODBC_STATUS_TYPE_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCStatusTypeLoad : public CDBLoader<STATUS_TYPE_ROW> {
public:
CODBCStatusTypeLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "STATUS_TYPE")
: CDBLoader<STATUS_TYPE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.ST_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const STATUS_TYPE_ROW &row) {
strncpy(m_row.ST_ID, row.ST_ID, sizeof(m_row.ST_ID));
strncpy(m_row.ST_NAME, row.ST_NAME, sizeof(m_row.ST_NAME));
};
};
} // namespace TPCE
#endif // ODBC_STATUS_TYPE_LOAD_H

View File

@@ -0,0 +1,73 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for TAXRATE table.
*/
#ifndef ODBC_TAX_RATE_LOAD_H
#define ODBC_TAX_RATE_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCTaxRateLoad : public CDBLoader<TAX_RATE_ROW> {
public:
CODBCTaxRateLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "TAXRATE")
: CDBLoader<TAX_RATE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.TX_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TX_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TX_RATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const TAX_RATE_ROW &row) {
strncpy(m_row.TX_ID, row.TX_ID, sizeof(m_row.TX_ID));
strncpy(m_row.TX_NAME, row.TX_NAME, sizeof(m_row.TX_NAME));
m_row.TX_RATE = row.TX_RATE;
};
};
} // namespace TPCE
#endif // ODBC_TAX_RATE_LOAD_H

View File

@@ -0,0 +1,72 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for TRADE_HISTORY table.
*/
#ifndef ODBC_TRADE_HISTORY_LOAD_H
#define ODBC_TRADE_HISTORY_LOAD_H
namespace TPCE {
class CODBCTradeHistoryLoad : public CDBLoader<TRADE_HISTORY_ROW> {
private:
DBDATETIME ODBC_TH_DTS;
virtual inline void CopyRow(const TRADE_HISTORY_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.TH_DTS.GetDBDATETIME(&ODBC_TH_DTS);
};
public:
CODBCTradeHistoryLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "TRADE_HISTORY")
: CDBLoader<TRADE_HISTORY_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.TH_T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_TH_DTS, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TH_ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (TH_T_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_TRADE_HISTORY_LOAD_H

View File

@@ -0,0 +1,92 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for TRADE table.
*/
#ifndef ODBC_TRADE_LOAD_H
#define ODBC_TRADE_LOAD_H
namespace TPCE {
class CODBCTradeLoad : public CDBLoader<TRADE_ROW> {
private:
DBDATETIME ODBC_T_DTS;
virtual inline void CopyRow(const TRADE_ROW &row) {
memcpy(&m_row, &row, sizeof(m_row));
m_row.T_DTS.GetDBDATETIME(&ODBC_T_DTS);
};
public:
CODBCTradeLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "TRADE")
: CDBLoader<TRADE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
int iKeepIdentityTrue = TRUE;
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&ODBC_T_DTS, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_TT_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_IS_CASH, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT1, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_BID_PRICE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_CA_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_EXEC_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_TRADE_PRICE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_CHRG, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_COMM, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_TAX, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.T_LIFO, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT1, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (T_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
// Load passed in T_ID data
if (bcp_control(m_hdbc, BCPKEEPIDENTITY, &iKeepIdentityTrue) != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_TRADE_LOAD_H

View File

@@ -0,0 +1,71 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for TRADE_REQUEST table.
*/
#ifndef ODBC_TRADE_REQUEST_LOAD_H
#define ODBC_TRADE_REQUEST_LOAD_H
namespace TPCE {
class CODBCTradeRequestLoad : public CDBLoader<TRADE_REQUEST_ROW> {
public:
CODBCTradeRequestLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "TRADE_REQUEST")
: CDBLoader<TRADE_REQUEST_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.TR_T_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TR_TT_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TR_S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) !=
SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TR_QTY, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT4, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TR_BID_PRICE, 0, SQL_VARLEN_DATA, NULL, 0, SQLFLT8, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TR_B_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (TR_T_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_TRADE_REQUEST_LOAD_H

View File

@@ -0,0 +1,75 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for TRADE_TYPE table.
*/
#ifndef ODBC_TRADE_TYPE_LOAD_H
#define ODBC_TRADE_TYPE_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCTradeTypeLoad : public CDBLoader<TRADE_TYPE_ROW> {
public:
CODBCTradeTypeLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "TRADE_TYPE")
: CDBLoader<TRADE_TYPE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.TT_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TT_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TT_IS_SELL, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT1, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.TT_IS_MRKT, 0, SQL_VARLEN_DATA, NULL, 0, SQLINT1, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK" ) != SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const TRADE_TYPE_ROW &row) {
strncpy(m_row.TT_ID, row.TT_ID, sizeof(m_row.TT_ID));
strncpy(m_row.TT_NAME, row.TT_NAME, sizeof(m_row.TT_NAME));
m_row.TT_IS_SELL = row.TT_IS_SELL;
m_row.TT_IS_MRKT = row.TT_IS_MRKT;
};
};
} // namespace TPCE
#endif // ODBC_TRADE_TYPE_LOAD_H

View File

@@ -0,0 +1,64 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for WATCH_ITEM table.
*/
#ifndef ODBC_WATCH_ITEM_LOAD_H
#define ODBC_WATCH_ITEM_LOAD_H
namespace TPCE {
class CODBCWatchItemLoad : public CDBLoader<WATCH_ITEM_ROW> {
public:
CODBCWatchItemLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "WATCH_ITEM")
: CDBLoader<WATCH_ITEM_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.WI_WL_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.WI_S_SYMB, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (WI_WL_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_WATCH_ITEM_LOAD_H

View File

@@ -0,0 +1,64 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
/*
* Database loader class for WATCH_LIST table.
*/
#ifndef ODBC_WATCH_LIST_LOAD_H
#define ODBC_WATCH_LIST_LOAD_H
namespace TPCE {
class CODBCWatchListLoad : public CDBLoader<WATCH_LIST_ROW> {
public:
CODBCWatchListLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "WATCH_LIST")
: CDBLoader<WATCH_LIST_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.WL_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.WL_C_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
if (bcp_control(m_hdbc, BCPHINTS, "ORDER (WL_ID)") != SUCCEED)
ThrowError(CODBCERR::eBcpControl);
};
};
} // namespace TPCE
#endif // ODBC_WATCH_LIST_LOAD_H

View File

@@ -0,0 +1,74 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Doug Johnson
*/
/*
* Database loader class for ZIP_CODE table.
*/
#ifndef ODBC_ZIP_CODE_LOAD_H
#define ODBC_ZIP_CODE_LOAD_H
#include "../utilities/TableConsts.h"
namespace TPCE {
class CODBCZipCodeLoad : public CDBLoader<ZIP_CODE_ROW> {
public:
CODBCZipCodeLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "ZIP_CODE")
: CDBLoader<ZIP_CODE_ROW>(szServer, szDatabase, szLoaderParams, szTable){};
virtual void BindColumns() {
// Binding function we have to implement.
int i = 0;
if (bcp_bind(m_hdbc, (BYTE *)&m_row.ZC_CODE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.ZC_TOWN, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED ||
bcp_bind(m_hdbc, (BYTE *)&m_row.ZC_DIV, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED)
ThrowError(CODBCERR::eBcpBind);
// if ( bcp_control(m_hdbc, BCPHINTS, "TABLOCK, ORDER (AD_ID)" ) !=
// SUCCEED )
// ThrowError(CODBCERR::eBcpControl);
};
virtual void CopyRow(const ZIP_CODE_ROW &row) {
strncpy(m_row.ZC_CODE, row.ZC_CODE, sizeof(m_row.ZC_CODE));
strncpy(m_row.ZC_TOWN, row.ZC_TOWN, sizeof(m_row.ZC_TOWN));
strncpy(m_row.ZC_DIV, row.ZC_DIV, sizeof(m_row.ZC_DIV));
};
};
} // namespace TPCE
#endif // ODBC_ZIP_CODE_LOAD_H

View File

@@ -0,0 +1,114 @@
/*
* Legal Notice
*
* This document and associated source code (the "Work") is a part of a
* benchmark specification maintained by the TPC.
*
* The TPC reserves all right, title, and interest to the Work as provided
* under U.S. and international laws, including without limitation all patent
* and trademark rights therein.
*
* No Warranty
*
* 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
* CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
* AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
* WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
* INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
* DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
* PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
* WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
* ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
* QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
* WITH REGARD TO THE WORK.
* 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
* ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
* COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
* OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
* INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
* OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
* RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
* ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
*
* Contributors
* - Sergey Vasilevskiy
*/
#ifndef WIN_ERROR_H
#define WIN_ERROR_H
#include "../utilities/error.h"
namespace TPCE {
#define ERR_TYPE_ODBC 6 // odbc generated error
class CODBCERR : public CBaseErr {
public:
enum ACTION {
eNone,
eUnknown,
eAllocConn, // error from SQLAllocConnect
eAllocHandle, // error from SQLAllocHandle
eBcpBind, // error from bcp_bind
eBcpControl, // error from bcp_control
eBcpInit, // error from bcp_init
eBcpBatch, // error from bcp_batch
eBcpDone, // error from bcp_done
eConnOption, // error from SQLSetConnectOption
eConnect, // error from SQLConnect
eAllocStmt, // error from SQLAllocStmt
eExecDirect, // error from SQLExecDirect
eBindParam, // error from SQLBindParameter
eBindCol, // error from SQLBindCol
eFetch, // error from SQLFetch
eFetchScroll, // error from SQLFetchScroll
eMoreResults, // error from SQLMoreResults
ePrepare, // error from SQLPrepare
eExecute, // error from SQLExecute
eBcpSendrow, // error from bcp_sendrow
eSetConnectAttr, // error from SQLSetConnectAttr
eSetEnvAttr, // error from SQLSetEnvAttr
eSetStmtAttr, // error from SQLSetStmtAttr
eSetCursorName, // error from SQLSetCursorName
eSQLSetPos, // error from SQLSetPos
eEndTxn, // error from SQLEndTxn
eNumResultCols, // error from SQLNumResultCols
eCloseCursor, // error from SQLCloseCursor
eFreeStmt // error from SQLFreeStmt
};
CODBCERR(char const *szLoc = "")
: CBaseErr(szLoc)
{
m_eAction = eNone;
m_NativeError = 0;
m_bDeadLock = false;
m_odbcerrstr = NULL;
};
~CODBCERR() {
if (m_odbcerrstr != NULL)
delete[] m_odbcerrstr;
};
ACTION m_eAction;
int m_NativeError;
bool m_bDeadLock;
char *m_odbcerrstr;
int ErrorType() {
return ERR_TYPE_ODBC;
};
int ErrorNum() {
return m_NativeError;
};
const char *ErrorText() const {
return m_odbcerrstr;
};
};
} // namespace TPCE
#endif // WIN_ERROR_H