MySQL++

Check-in [d080820431]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Converted top-level README.txt file to Markdown so it formats more nicely on GitHub and in the Fossil /file view.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: d080820431801db121e15eb33e047646afd87493373f60af9c60804c6f6f4865
User & Date: tangent 2019-04-22 19:38:13
Context
2019-05-11
11:09
Updates to README.md to take advantage of its new Markdown formatting and to account for the fact that it might be mirrored on GitHub where Fossil-relative repo links no longer work. check-in: 0102b7250b user: tangent tags: trunk
2019-04-22
19:38
Converted top-level README.txt file to Markdown so it formats more nicely on GitHub and in the Fossil /file view. check-in: d080820431 user: tangent tags: trunk
18:50
Added info on the GitHub mirror to HACKERS.md. check-in: 8b0728e18d user: tangent tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to .fossil-settings/crlf-glob.


1

*.txt
>

1
2
*.md
*.txt

Name change from README.txt to README.md.

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





What It Is
~~~~~~~~~~

    MySQL++ is a C++ wrapper for MySQL's C API.  It is built around STL
    principles, to make dealing with the database as easy as dealing
    with an STL container.  MySQL++ relieves the programmer of dealing
    with cumbersome C data structures, generation of repetitive SQL
    statements, and manual creation of C++ data structures to mirror
    the database schema.

    Its home page is http://tangentsoft.net/mysql++/







Prerequisites
~~~~~~~~~~~~~

    To build MySQL++, you must have the MySQL C API development
    files installed.

    On Unixy systems (Linux, Mac OS X, Cygwin, *BSD, Solaris...),
    the MySQL development files are installed if you build MySQL
    from source.  If you installed MySQL as a binary package, then
    the development files are often packaged separately from the
    MySQL server itself.  It's common for the package containing the
    development files to be called something like "MySQL-devel".


    If you're building on Windows with Visual C++ or MinGW, you
    need to install the native Win32 port of MySQL from mysql.com.
    The development files are only included with the "complete"
    version of the MySQL installer, and some versions of this
    installer won't actually install them unless you do a custom





    install.  Another pitfall is that MySQL++'s project files assume
    that you've installed the current General Availability release of
    MySQL (v5.0 right now) and it's installed in the default location.
    If you've installed a different version, or if MySQL Inc. changes
    the default location (which they seem to do regularly!) you'll have


    to adjust the link and include file paths in the project settings.


Additional Things to Read
~~~~~~~~~~~~~~~~~~~~~~~~~

    Each major platform we support has a dedicated README-*.txt
    file for it containing information specific to that platform.
    Please read it.

    For authorship information, see the CREDITS.txt file.

    For license information, see the COPYING.txt file.

    If you want to change MySQL++, see the HACKERS.txt file.

    You should have received a user manual and a reference manual
    with MySQL++.  If not, you can read a recent version online:

        http://tangentsoft.net/mysql++/doc/

    Search the MySQL++ mailing list archives if you have more

    questions:


        http://lists.mysql.com/plusplus/


Building the Library
~~~~~~~~~~~~~~~~~~~~

    MySQL++ uses Bakefile (http://bakefile.org/) to generate
    platform-specific project files and makefiles from a single set
    of input files.  We currently support these build systems:

    autoconf:
        For Unixy platforms, including Linux, Mac OS X, and Cygwin, in
        addition to the "real" Unices.  See README-Unix.txt for general
        instructions.  Supplementary platform-specific details are
        in README-Cygwin.txt, README-Linux.txt, README-Mac-OS-X.txt,



        and README-Solaris.txt.

    MinGW:
        We ship Makefile.mingw for MinGW.  It currently only builds the
        static version of the library for technical reasons.  This has
        licensing ramifications.  See README-MinGW.txt for details.



    Visual C++:
        We ship Visual Studio 2003, 2005, and 2008 project files.


        No older version of Visual C++ will build MySQL++, due to
        compiler limitations.  See README-Visual-C++.txt for more
        details.


    Xcode:
        We ship an Xcode v2 project file.  It hasn't been tested

        much yet, since the autoconf method works just fine on OS X.
        As a result, we need both success and failure reports on the



        mailing list.  See README-Mac-OS-X.txt for more information.







Example Programs
~~~~~~~~~~~~~~~~

    You may want to try out the programs in the examples subdirectory
    to ensure that the MySQL++ API and your MySQL database are both
    working properly.  Also, these examples give many examples of
    the proper use of MySQL++.  See README-examples.txt for further
    details.




Unsupported Compliers
~~~~~~~~~~~~~~~~~~~~~

    If you're on Windows but want to use some other compiler besides
    Visual C++ or GCC, you are currently on your own.  There have
    been past efforts to port MySQL++ to other Windows compilers,
    but for one reason or another, all of these ports have died.

    On Unixy systems, GCC still works best.  "Native" compilers and
    third-party compilers may work, but you're on your own to get
    it working.

    We have nothing in particular against these unsupported systems.
    We just lack the time and resources to support everything
    ourselves.  If you are sufficiently motivated to get MySQL++
    working on one of these alternate systems, see the HACKERS.txt
    file first for guidance.  If you follow the advice in that file,
    your patch will be more likely to be accepted.




If You Want to Hack on MySQL++...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    If you intend to change the library or example code, please read


    the HACKERS.txt file.

    If you want to change the user manual, read doc/userman/README.txt


    If you want to change the reference manual, see the Doxygen manual:
    http://www.stack.nl/~dimitri/doxygen/manual.html





|
<
>
|
|
|
|
|
|

|
>
>

>
>

>
|
<
>
|
|

|
|
|
<
|
|
>

|
<
<
<
<
>
>
>
>
>
|
|
<
|
<
>
>
|


|
<
>
|
|
|

|

|

|

|
|

|

<
>
|

>
|


|
<
>
|
|
|

<
<
<
<
<
>
>
>
|

<
<
<
<
>
>

<
|
>
>
|
<
<
>

<
<
>
|
<
>
>
>
|
>
>
>
>


>
|
<
>
|
|
|
|
<

>

>
|
<
>
|
|
|
|

|
|
|

|
|
|
|
|
|

>

>
|
<
<
>
>
|

|
>

|
<
>
>
>
>
>
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
139
140

141
142
143
144
145
# What It Is


MySQL++ is a C++ wrapper for the MySQL and MariaDB C APIs.  It is built
around STL principles, to make dealing with the database as easy as
dealing with an STL container.  MySQL++ relieves the programmer of
dealing with cumbersome C data structures, generation of repetitive SQL
statements, and manual creation of C++ data structures to mirror the
database schema.

MySQL++’s development home is its [Fossil repository][home]. You may be
reading this via its [GitHub mirror][ghm], but that repository is
read-only, meant only for use with automation tooling based on Git.

[ghm]:  https://github.com/tangentsoft/mysqlpp
[home]: https://tangentsoft.com/mysqlpp/


# Prerequisites


To build MySQL++, you must have the MySQL/MariaDB C API development
files installed.

On Unixy systems (Linux, Mac OS X, Cygwin, \*BSD, Solaris...), the MySQL
development files are installed if you build MySQL from source.  If you
installed MySQL as a binary package, then the development files are

often packaged separately from the MySQL server itself.  It's common for
the package containing the development files to be called something like
`MySQL-devel`, `libmysqlclient-dev`, etc.

If you're building on Windows with Visual C++ or MinGW, you need to




install the native Windows port of MySQL or MariaDB.  The way that’s
packaged changes occasionally, so you might have to select a "complete"
version rather than the server-only version. You might also have to
choose a “custom” installation option to get the development files.

Another pitfall is that the project files we ship assume that you've
installed the current General Availability release of MySQL in its

default location on your computer. If you've installed a different

version, or if those packaging the development files move them around —
which happens occasionally! — you'll have to adjust the link and include
file paths in the project settings.


# Additional Things to Read


Each major platform we support has a dedicated `README-*.txt`
file for it containing information specific to that platform.
Please read it.

For authorship information, see the CREDITS.txt file.

For license information, see the COPYING.txt file.

If you want to change MySQL++, see the HACKERS.md file.

You should have received a user manual and a reference manual
with MySQL++.  If not, you can read a recent version online:

    https://tangentsoft.com/mysqlpp/doc/


Search the MySQL++ [mailing list archives][ml] and [its forum][for] if
you have more questions.

[for]:  https://tangentsoft.com/mysqlpp/froum/
[ml]:   http://lists.mysql.com/plusplus/


# Building the Library


MySQL++ uses [Bakefile](http://bakefile.org/) to generate
platform-specific project files and makefiles from a single set
of input files.  We currently support these build systems:






*   **autoconf:** Use this method for most Unix type platforms along
    with [the generic instructions][unix].  We have supplemental
    information for [Linux][linux], [macOS][macos], [Cygwin][cyg], and
    [Solaris][sol].





*   **MinGW:** We ship `Makefile.mingw` for MinGW. See
    [its README][mingw] for details.


*   **Visual C++:** We ship Visual Studio 2003, 2005, and 2008 project
    files. Newer versions of Visual C++ can upgrade these automatically,
    though the result sometimes requires manual adjustment. No older
    version of Visual C++ will build MySQL++, due to compiler


    limitations.  See [its README][vcpp] for more details.



*   **Xcode:** We ship an Xcode project file, but it hasn't been well
    tested, since the autoconf method works just fine on macOS.


[cyg]:   /doc/trunk/README-Cygwin.txt
[linux]: /doc/trunk/README-Linux.txt
[macos]: /doc/trunk/README-Mac-OS-X.txt
[mingw]: /doc/trunk/README-MinGW.txt
[sol]:   /doc/trunk/README-Solaris.txt
[unix]:  /doc/trunk/README-Unix.txt
[vcpp]:  /doc/trunk/README-Visual-C%2B%2B.txt



# Example Programs


You may want to try out the programs in the examples subdirectory
to ensure that the MySQL++ API and your MySQL database are both
working properly.  Also, [these examples][exr] give many examples of
the proper use of MySQL++.


[exr]: /doc/trunk/README-examples.txt


# Unsupported Compliers


If you're on Windows but want to use some other compiler besides
Visual C++ or GCC, you are currently on your own.  There have
been past efforts to port MySQL++ to other Windows compilers,
but for one reason or another, all of these ports have died.

On Unixy systems, GCC still works best.  "Native" compilers and
third-party compilers may work, but you're on your own to get
it working.

We have nothing in particular against these unsupported systems.
We just lack the time and resources to support everything
ourselves.  If you are sufficiently motivated to get MySQL++
working on one of these alternate systems, see [the HACKERS file][hack]
for guidance.  If you follow the advice in that file,
your patch will be more likely to be accepted.

[hack]: /doc/trunk/HACKERS.md


# If You Want to Hack on MySQL++...



If you intend to submit a change to the MySQL++ project, see
[the HACKERS file][hack].

If you want to change the MySQL++ user manual, also read
[the user manual’s README][umr].

If you want to change the MySQL++ reference manual, see

[the Doxygen manual][dgm].


[dgm]: http://www.doxygen.nl/manual/
[umr]: /doc/trunk/doc/userman/README.txt