~percona-dev/perconatools/tpcemysql

« back to all changes in this revision

Viewing changes to TestHarness/Reference/inc/win/ODBCCompanyLoad.h

  • Committer: Vadim Tkachenko
  • Date: 2010-01-21 03:31:03 UTC
  • Revision ID: vadim@percona.com-20100121033103-og9mv7xibr2wwadr
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Legal Notice
 
3
 *
 
4
 * This document and associated source code (the "Work") is a preliminary
 
5
 * version of a benchmark specification being developed by the TPC. The
 
6
 * Work is being made available to the public for review and comment only.
 
7
 * The TPC reserves all right, title, and interest to the Work as provided
 
8
 * under U.S. and international laws, including without limitation all patent
 
9
 * and trademark rights therein.
 
10
 *
 
11
 * No Warranty
 
12
 *
 
13
 * 1.1 TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE INFORMATION
 
14
 *     CONTAINED HEREIN IS PROVIDED "AS IS" AND WITH ALL FAULTS, AND THE
 
15
 *     AUTHORS AND DEVELOPERS OF THE WORK HEREBY DISCLAIM ALL OTHER
 
16
 *     WARRANTIES AND CONDITIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,
 
17
 *     INCLUDING, BUT NOT LIMITED TO, ANY (IF ANY) IMPLIED WARRANTIES,
 
18
 *     DUTIES OR CONDITIONS OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR
 
19
 *     PURPOSE, OF ACCURACY OR COMPLETENESS OF RESPONSES, OF RESULTS, OF
 
20
 *     WORKMANLIKE EFFORT, OF LACK OF VIRUSES, AND OF LACK OF NEGLIGENCE.
 
21
 *     ALSO, THERE IS NO WARRANTY OR CONDITION OF TITLE, QUIET ENJOYMENT,
 
22
 *     QUIET POSSESSION, CORRESPONDENCE TO DESCRIPTION OR NON-INFRINGEMENT
 
23
 *     WITH REGARD TO THE WORK.
 
24
 * 1.2 IN NO EVENT WILL ANY AUTHOR OR DEVELOPER OF THE WORK BE LIABLE TO
 
25
 *     ANY OTHER PARTY FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO THE
 
26
 *     COST OF PROCURING SUBSTITUTE GOODS OR SERVICES, LOST PROFITS, LOSS
 
27
 *     OF USE, LOSS OF DATA, OR ANY INCIDENTAL, CONSEQUENTIAL, DIRECT,
 
28
 *     INDIRECT, OR SPECIAL DAMAGES WHETHER UNDER CONTRACT, TORT, WARRANTY,
 
29
 *     OR OTHERWISE, ARISING IN ANY WAY OUT OF THIS OR ANY OTHER AGREEMENT
 
30
 *     RELATING TO THE WORK, WHETHER OR NOT SUCH AUTHOR OR DEVELOPER HAD
 
31
 *     ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES.
 
32
 *
 
33
 * Contributors
 
34
 * - Sergey Vasilevskiy
 
35
 */
 
36
 
 
37
/*
 
38
*   Database loader class for COMPANY table.
 
39
*/
 
40
#ifndef ODBC_COMPANY_LOAD_H
 
41
#define ODBC_COMPANY_LOAD_H
 
42
 
 
43
namespace TPCE
 
44
{
 
45
 
 
46
class CODBCCompanyLoad : public CDBLoader <COMPANY_ROW>
 
47
{
 
48
private:
 
49
    DBDATETIME  ODBC_CO_OPEN_DATE;
 
50
    virtual inline void CopyRow(PT row)
 
51
    {
 
52
        memcpy(&m_row, row, sizeof(m_row));
 
53
        m_row.CO_OPEN_DATE.GetDBDATETIME(&ODBC_CO_OPEN_DATE);
 
54
    };
 
55
 
 
56
public:
 
57
    CODBCCompanyLoad(char *szServer, char *szDatabase, char *szLoaderParams, char *szTable = "COMPANY")
 
58
        : CDBLoader<COMPANY_ROW>(szServer, szDatabase, szLoaderParams, szTable)
 
59
    {
 
60
    };
 
61
 
 
62
    virtual void BindColumns()
 
63
    {
 
64
        //Binding function we have to implement.
 
65
        int i = 0;
 
66
        if (   bcp_bind(m_hdbc, (BYTE *) &m_row.CO_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED
 
67
            || bcp_bind(m_hdbc, (BYTE *) &m_row.CO_ST_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED
 
68
            || bcp_bind(m_hdbc, (BYTE *) &m_row.CO_NAME, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED
 
69
            || bcp_bind(m_hdbc, (BYTE *) &m_row.CO_IN_ID, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED
 
70
            || bcp_bind(m_hdbc, (BYTE *) &m_row.CO_SP_RATE, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED
 
71
            || bcp_bind(m_hdbc, (BYTE *) &m_row.CO_CEO, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED
 
72
            || bcp_bind(m_hdbc, (BYTE *) &m_row.CO_AD_ID, 0, SQL_VARLEN_DATA, NULL, 0, IDENT_BIND, ++i) != SUCCEED
 
73
            || bcp_bind(m_hdbc, (BYTE *) &m_row.CO_DESC, 0, SQL_VARLEN_DATA, (BYTE *)"", 1, SQLCHARACTER, ++i) != SUCCEED
 
74
            || bcp_bind(m_hdbc, (BYTE *) &ODBC_CO_OPEN_DATE, 0, SQL_VARLEN_DATA, NULL, 0, SQLDATETIME, ++i) != SUCCEED
 
75
            )
 
76
            ThrowError(CODBCERR::eBcpBind);
 
77
 
 
78
        if ( bcp_control(m_hdbc, BCPHINTS, "ORDER (CO_ID)" ) != SUCCEED )
 
79
            ThrowError(CODBCERR::eBcpControl);
 
80
    };
 
81
 
 
82
};
 
83
 
 
84
}   // namespace TPCE
 
85
 
 
86
#endif //ODBC_COMPANY_LOAD_H