summaryrefslogtreecommitdiff
path: root/mysqlc/source/mysqlc_propertyids.hxx
blob: 294ed509ee23743dea0635eee71ca7be87256d24 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */

#ifndef _CONNECTIVITY_PROPERTYIDS_HXX_
#define _CONNECTIVITY_PROPERTYIDS_HXX_

// this define has to be set to split the names into different dll's or so's
// every dll has his own set of property names
#ifndef _RTL_USTRING_
#include <rtl/ustring.hxx>
#endif
#ifndef _MAP_
#include <map>
#endif

namespace connectivity
{
namespace mysqlc
{
    class OPropertyMap
    {
        ::std::map<sal_Int32 , rtl_uString*> m_aPropertyMap;

        ::rtl::OUString fillValue(sal_Int32 _nIndex);
    public:
        OPropertyMap()
        {
        }
        ~OPropertyMap();
        ::rtl::OUString getNameByIndex(sal_Int32 _nIndex) const;

        static OPropertyMap& getPropMap()
        {
            static OPropertyMap s_aPropMap;
            return s_aPropMap;
        }
    };


    typedef const sal_Char* (*PVFN)();

    struct UStringDescription
    {
        const sal_Char* pZeroTerminatedName;
        sal_Int32 nLength;

        UStringDescription(PVFN _fCharFkt);
        operator ::rtl::OUString() const { return ::rtl::OUString(pZeroTerminatedName,nLength,RTL_TEXTENCODING_ASCII_US); }
        ~UStringDescription();
    private:
        UStringDescription();
    };


enum
{
    PROPERTY_ID_FIRST = 0,
    PROPERTY_ID_QUERYTIMEOUT,
    PROPERTY_ID_MAXFIELDSIZE,
    PROPERTY_ID_MAXROWS,
    PROPERTY_ID_CURSORNAME,
    PROPERTY_ID_RESULTSETCONCURRENCY,
    PROPERTY_ID_RESULTSETTYPE,
    PROPERTY_ID_FETCHDIRECTION,
    PROPERTY_ID_FETCHSIZE,
    PROPERTY_ID_ESCAPEPROCESSING,
    PROPERTY_ID_USEBOOKMARKS,
// Column
    PROPERTY_ID_NAME,
    PROPERTY_ID_TYPE,
    PROPERTY_ID_TYPENAME,
    PROPERTY_ID_PRECISION,
    PROPERTY_ID_SCALE,
    PROPERTY_ID_ISNULLABLE,
    PROPERTY_ID_ISAUTOINCREMENT,
    PROPERTY_ID_ISROWVERSION,
    PROPERTY_ID_DESCRIPTION,
    PROPERTY_ID_DEFAULTVALUE,

    PROPERTY_ID_REFERENCEDTABLE,
    PROPERTY_ID_UPDATERULE,
    PROPERTY_ID_DELETERULE,
    PROPERTY_ID_CATALOG,
    PROPERTY_ID_ISUNIQUE,
    PROPERTY_ID_ISPRIMARYKEYINDEX,
    PROPERTY_ID_ISCLUSTERED,
    PROPERTY_ID_ISASCENDING,
    PROPERTY_ID_SCHEMANAME,
    PROPERTY_ID_CATALOGNAME,

    PROPERTY_ID_COMMAND,
    PROPERTY_ID_CHECKOPTION,
    PROPERTY_ID_PASSWORD,
    PROPERTY_ID_RELATEDCOLUMN,

    PROPERTY_ID_FUNCTION,
    PROPERTY_ID_TABLENAME,
    PROPERTY_ID_REALNAME,
    PROPERTY_ID_DBASEPRECISIONCHANGED,
    PROPERTY_ID_ISCURRENCY,
    PROPERTY_ID_ISBOOKMARKABLE,

    PROPERTY_ID_INVALID_INDEX,
    PROPERTY_ID_ERRORMSG_SEQUENCE,
    PROPERTY_ID_HY010,
    PROPERTY_ID_HY0000,
    PROPERTY_ID_DELIMITER,
    PROPERTY_ID_FORMATKEY,
    PROPERTY_ID_LOCALE,
    PROPERTY_ID_IM001,

    PROPERTY_ID_AUTOINCREMENTCREATION,

    PROPERTY_ID_PRIVILEGES,

    PROPERTY_ID_LAST
};
}/* mysqlc */
}/* connectivity */

//------------------------------------------------------------------------------
#define DECL_PROP1IMPL(varname, type) \
pProperties[nPos++] = Property(OPropertyMap::getPropMap().getNameByIndex(PROPERTY_ID_##varname), PROPERTY_ID_##varname, ::getCppuType(reinterpret_cast< type*>(NULL)),
//------------------------------------------------------------------------------
#define DECL_PROP0(varname, type)   \
    DECL_PROP1IMPL(varname, type) 0)
//------------------------------------------------------------------------------
#define DECL_BOOL_PROP1IMPL(varname) \
        pProperties[nPos++] = Property(OPropertyMap::getPropMap().getNameByIndex(PROPERTY_ID_##varname), PROPERTY_ID_##varname, ::getBooleanCppuType(),
//------------------------------------------------------------------------------
#define DECL_BOOL_PROP0(varname)    \
    DECL_BOOL_PROP1IMPL(varname) 0)



#endif // _CONNECTIVITY_PROPERTYIDS_HXX_


/* vim:set shiftwidth=4 softtabstop=4 expandtab: */