MySQL++

Check-in [3b3678d64e]
Login

Check-in [3b3678d64e]

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

Overview
Comment:Updated user manual Docbook version from 4.2 to 4.4, effectively dropping CentOS 3 and 4 as build platforms, since the current Homebrew Docbook XSL stylesheets throw lots of errors if you specify 4.2 or 4.3. Updated the user manual's README.txt file accordingly.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 3b3678d64e02d53be70cbfa62a78e7cfa811e018b331088f332142c36d0ac9e8
User & Date: tangent 2018-07-27 04:34:34.504
Context
2018-07-27
04:39
Polishing pass on the new Unicode material in the user manual. check-in: 8469cf623d user: tangent tags: trunk
04:34
Updated user manual Docbook version from 4.2 to 4.4, effectively dropping CentOS 3 and 4 as build platforms, since the current Homebrew Docbook XSL stylesheets throw lots of errors if you specify 4.2 or 4.3. Updated the user manual's README.txt file accordingly. check-in: 3b3678d64e user: tangent tags: trunk
03:59
Squished a few complaints from Doxygen. NFC. check-in: 57170bf853 user: tangent tags: trunk
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to doc/userman/README.txt.
1
2
3
4




5
6
7
8
9
10
11




1
2
3
4
5
6
7
8
9
10
11
-
-
-
-
+
+
+
+







The user manual is written in XML DocBook format, version 4.2.
It uses the official DocBook XSL stylesheets, and will build with
versions as old as 1.61.2.  (Why these versions?  They're what comes
with CentOS 3, the oldest system I still use.)
The user manual is written in XML DocBook format, version 4.4.  It uses
the official DocBook XSL stylesheets, and will build with versions at
least as far back as 1.69.1.  (Why these versions?  They're what comes
with CentOS 5, the oldest system I still use.)

To make the HTML version of the user manual, just type 'make' in this
directory.  (Or 'make html' if you want to be pedantic.)  To make the
PDF version of the manual, say 'make pdf'.  To make both versions,
say 'make all'.


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







-
-
-
-
+
+
+
+




-
+




-
-
-
-
+
+
+
+
+
+
+
+
+















-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+




-
-
+
+

-
+

-
-
+
+







    The build system relies on a simple script in this directory --
    fo2pdf -- to find an XSL-FO formatter and run it.  It looks first
    for RenderX's XEP, which comes in a free-as-in-beer version for
    personal use.  (http://renderx.com/download/personal.html)  If
    you're in a commercial environment, RenderX wants you to use their
    commercial trial version which will format this manual without
    complaint, but it puts watermarks and blank pages into the output.
    They want $300 for the single-user to get clean output.  It's the
    same as the free personal version, just with a different license.
    You don't need the higher-end versions of XEP; they don't do
    anything we need here.
    As of July 2018, they want $400 for the single-user to get clean
    output.  It's the same as the free personal version, just with a
    different license.  You don't need the higher-end versions of XEP;
    they don't do anything we need here.

    If fo2pdf can't find XEP, it then looks for Antenna House's XSL
    Formatter (http://antennahouse.com/).  It's pretty much the same
    deal as XEP: crippled demo version for testing, and a single-user
    version for $300.  There is no free version for personal use,
    version for $400.  There is no free version for personal use,
    however.

    Failing all that, fo2pdf falls back to the only free-as-in-speech
    XSL-FO formmatter, Apache FOP (http://xmlgraphics.apache.org/fop/).
    FOP isn't yet available through most Unixy package download
    systems, so you'll have to download it directly from the source.
    The Debian repositories do have it, so on any Debian based distro
    (e.g. Ubuntu) you can just say "sudo apt-get install fop".
    FOP may be available through your OS's package system.  For
    instance, with Debian tyep OSes, you can just say

       sudo apt-get install fop

    If FOP is not in your OS's package system, you can download
    pre-built binaries from the FOP web site that will run with the
    version of Java that almost certainly is available with your OS's
    package system.

    You might be wondering why fo2pdf looks for FOP last, given that
    MySQL++ is itself free software and relies on a lot of other
    free software.  It's just that it's a good bet that if there's
    a commercial processor on the system, it was put there quite
    purposefully by someone who paid (or caused money to be paid) for
    it, and so wants it to be used.  The commercial vendors can still
    get money for their products because FOP hasn't caught up with
    them in several important areas.  That said, don't feel that you
    need to go and buy an XSL-FO processor just to build the manuals.
    We try to always keep the manual in a state where FOP can generate
    adequate output.


The third replaceable piece above is the DocBook XSL stylesheet set.
The stylesheets are the XSLT processor's rules, controlling how
the input XML gets transformed to the output format.  The standard
DocBook stylesheet set (link below) includes stylesheets for HTML and
XSL-FO output.  By default, xsltproc looks for these first on your
local system, and failing to find them, tries to download them on
the fly from the Internet.  Because this slows processing quite a bit
even if you have a fast Internet connection, and it obviously doesn't
The stylesheets are the XSLT processor's rules, controlling how the
input XML gets transformed to the output format.  The standard DocBook
stylesheet set includes stylesheets for HTML and XSL-FO output.
Normally, xsltproc looks for these first on your local system, and
failing to find them, tries to download them on the fly from the
Internet.  Because this slows processing quite a bit even if you have a
fast Internet connection, we've disabled this feature of xsltproc, so
work when your net connection is down, we've disabled this option.
Therefore, you must have the DocBook XSL stylesheets installed to
build the user manual.
you must have the DocBook XSL stylesheets locally installed to build the
user manual.

Most Unixy type systems have pre-built DocBook XSL stylesheet packages
available:

    Red Hat/Fedora: docbook-style-xsl RPM package
    Mac OS X:       docbook-xsl Fink package (http://fink.sf.net)
    Red Hat/Fedora: docbook-style-xsl RPM package, base OS repository
    macOS:          docbook-xsl Homebrew package (http://brew.sh/)
    Cygwin:         docbook-xml?? package (?? = DocBook version)
    Ubuntu/Debian:  docbook-xsl, from the standard APT repository
    Ubuntu/Debian:  docbook-xsl package, standard APT repository

(Please send the name of the package for your system to the mailing
list if it isn't listed above, and I'll add it to the list.)
Please send the name of the package for your system to the mailing list
if it isn't listed above, and I'll add it to the list.

If you can't find a package for your system, you can get the DocBook
stylesheets from the source: http://docbook.sourceforge.net/  They're
a bit tricky to set up correctly, so it's better to use a pre-built
package if you can.

If you are still having problems, post the details about it to the
122
123
124
125
126
127
128
129

130
131
132

133
134
135


136
137
138
139
140
141
142
143
144
145
146
147
148
126
127
128
129
130
131
132

133

134

135
136


137
138







139
140
141
142
143
144







-
+
-

-
+

-
-
+
+
-
-
-
-
-
-
-






    article:

        http://tinyurl.com/8alb2

        This is the best tutorial I've found.
        

    Walsh and Muellner's _DocBook: The Definitive Guide_ book, second
    Walsh and Muellner's _DocBook: The Definitive Guide_ book:
    edition, online version:

        http://www.docbook.org/tdg/en/html/docbook.html
        https://tdg.docbook.org/

        This is the official DocBook referece.

        This is the official DocBook referece.  It is available both
        online and in dead-tree versions.

    DocBook FAQ:

        http://www.dpawson.co.uk/docbook/

        Go here when you have a question that the tutorials and
        references do not answer.


    The official DocBook site:

        http://docbook.org/

Changes to doc/userman/breakages.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="breakages">
  <title>Incompatible Library Changes</title>

  <para>This chapter documents those library changes since the epochal
  1.7.9 release that break end-user programs. You can dig this stuff out
  of the <filename>ChangeLog.md</filename> file, but the change log
Changes to doc/userman/configuration.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="configuration">
  <title>Configuring MySQL++</title>

  <para>The default configuration of MySQL++ is suitable for most
  purposes, but there are a few things you can change to make it meet
  special needs.</para>
Changes to doc/userman/incorporating.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="incorporating">
  <title>Using MySQL++ in Your Own Project</title>

  <para>Up to now, this manual has only discussed MySQL++
  in conjunction with the example programs that come with the
  library. This chapter covers the steps you need to take to
Changes to doc/userman/intro.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="intro">
  <title>Introduction</title>

  <para>MySQL++ is a powerful C++ wrapper for MySQL&#x2019;s
  C API<footnote><para>The MySQL C API is also known as <ulink
  url="https://dev.mysql.com/downloads/connector/c/">Connector/C</ulink>.</para></footnote>.
Changes to doc/userman/licenses.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="licenses">
  <title>Licensing</title>

  <para>The primary copyright holders on the MySQL++ library and its
  documentation are Kevin Atkinson (1998), MySQL AB (1999 through 2001)
  and Educational Technology Resources, Inc. (2004 through the date of
Changes to doc/userman/overview.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="overview">
  <title>Overview</title>

  <para>MySQL++ has a lot of complexity and power to cope with the
  variety of ways people use databases, but at bottom it doesn&#x2019;t
  work all that differently than other database access APIs. The usage
Changes to doc/userman/section-template.dbx.
1
2
3


4
5
6
7
8
9
1


2
3
4
5
6
7
8
9

-
-
+
+






<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="SOMETHING_UNIQUE">
  <title>SECTION TITLE</title>

  <para>FIRST PARAGRAPH</para>
</sect1>
Changes to doc/userman/ssqls.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="ssqls">
  <title>Specialized SQL Structures</title>

  <para>The Specialized SQL Structure (SSQLS) feature lets you easily
  define C++ structures that match the form of your SQL tables. At the
  most superficial level, an SSQLS has a member variable corresponding
Changes to doc/userman/threads.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="threads">
  <title>Using MySQL++ in a Multithreaded Program</title>

  <para>MySQL++ is not &#x201C;thread safe&#x201D; in any
  meaningful sense. MySQL++ contains very little code that
  actively prevents trouble with threads, and all of it is
Changes to doc/userman/tquery.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="tquery" xreflabel="Template Queries">
  <title>Template Queries</title>

  <para>Another powerful feature of MySQL++ is being able to set up
  template queries. These are kind of like C&#x2019;s
  <function>printf()</function> facility: you give MySQL++ a string
Changes to doc/userman/tutorial.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="tutorial" xreflabel="Tutorial">
  <title>Tutorial</title>

  <para>The <link linkend="overview">previous chapter</link> introduced
  the major top-level mechanisms in MySQL++. Now we&#x2019;ll dig down a
  little deeper and get into real examples. We start off with the basics
Changes to doc/userman/unicode.dbx.
1
2
3


4
5
6
7
8
9
10
1


2
3
4
5
6
7
8
9
10

-
-
+
+







<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.2//EN"
    "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook V4.4//EN"
    "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">

<sect1 id="unicode" xreflabel="Using Unicode with MySQL++">
  <title>Using Unicode with MySQL++</title>

  <sect2 id="unicode-history">
    <title>A Short History of Unicode</title>
    <subtitle>...with a focus on relevance to MySQL++</subtitle>
Changes to doc/userman/userman.dbx.
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
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

-
-
+
+




-
-
+
+

-
-
-
-
-
+
+
+
+
+

-
-
-
-
+
+
+
+

-
-
-
-
+
+
+
+

-
-
-
-
-
+
+
+
+
+

-
-
-
-
-
-
+
+
+
+
+
+

-
-
+
+


-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
                         "http://www.docbook.org/xml/4.2/docbookx.dtd"
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
                         "http://www.docbook.org/xml/4.4/docbookx.dtd"
[ <!ENTITY % xinclude SYSTEM "xinclude.mod">
%xinclude;
]>
<article>
	<articleinfo>
		<title>MySQL++ v3.2.3 User Manual</title>
  <articleinfo>
    <title>MySQL++ v3.2.3 User Manual</title>

		<authorgroup>
			<author>
				<firstname>Kevin</firstname>
				<surname>Atkinson</surname>
			</author>
    <authorgroup>
      <author>
        <firstname>Kevin</firstname>
        <surname>Atkinson</surname>
      </author>

			<author>
				<firstname>Sinisa</firstname>
				<surname>Milivojevic</surname>
			</author>
      <author>
        <firstname>Sinisa</firstname>
        <surname>Milivojevic</surname>
      </author>

			<author>
				<firstname>Monty</firstname>
				<surname>Widenius</surname>
			</author>
      <author>
        <firstname>Monty</firstname>
        <surname>Widenius</surname>
      </author>

			<author>
				<firstname>Warren</firstname>
				<surname>Young</surname>
			</author>
		</authorgroup>
      <author>
        <firstname>Warren</firstname>
        <surname>Young</surname>
      </author>
    </authorgroup>

		<copyright>
			<year>1998-2001, 2005-2015</year>
			<holder>Kevin Atkinson (original author)</holder>
			<holder>MySQL AB</holder>
			<holder>Educational Technology Resources</holder>
		</copyright>
    <copyright>
      <year>1998-2001, 2005-2015</year>
      <holder>Kevin Atkinson (original author)</holder>
      <holder>MySQL AB</holder>
      <holder>Educational Technology Resources</holder>
    </copyright>

		<pubdate><?dbtimestamp format="B d, Y"?></pubdate>
	</articleinfo>
    <pubdate><?dbtimestamp format="B d, Y"?></pubdate>
  </articleinfo>


	<xi:include href="intro.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="overview.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="tutorial.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="tquery.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="ssqls.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="unicode.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="threads.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="configuration.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="incorporating.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="breakages.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
	<xi:include href="licenses.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="intro.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="overview.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="tutorial.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="tquery.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="ssqls.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="unicode.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="threads.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="configuration.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="incorporating.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="breakages.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
  <xi:include href="licenses.dbx" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</article>