mysql 1031_MySQL++已更新到2.06(mysql 的一套c++封装,用起来感觉还不错,估计大部分使用C++和MYSQL的人都曾经封装过...

2.0.6, 2005.09.28 (r1123)

o Fixed makemake.bat so it works on cmd.exe, not just 4NT.

o Documentation fixes.

2.0.5, 2005.09.13 (r1114)

o Visual C++ build now requires GNU make.  It is tested to work

with either the Cygwin or the MinGW versions.  The previous

version of MySQL++ used nmake.  This change enabled the

following features:

o Debug and Release versions are both built into

separate subdirectories.

o Dependency tracking for release version works

correctly now.  (Previously dependencies worked

only for debug version.)

o 'make clean' removes release version binaries

in addition to debug versions.

o MinGW makemake support updated to support new release/debug

subdirectory system.This is probationary support, since

this code currently can't be built as a DLL.As a result,

it is no more useful than the Cygwin version, for licensing

reasons.

o Several fixes to allow building on Solaris 8.  These fixes may

also help on other SVR4-derived systems.

o Removed Borland C++ makemake support, because this version

of the library does not work completely, and there seems

to be almost no user interest in fixing it.

o Clarified "Handling SQL Nulls" section of user manual's

Tutorial chapter.

2.0.4, 2005.08.29 (r1076)

o Made mysql_shutdown() second parameter autoconf check less

sensitive to compiler pedantry.

o VC++ library Makefile is now smart enough to re-create the

import library, if it is deleted while leaving the DLL alone.

o Added libmysqlclient.def to tarball.

o Reworked most of the top-level README* files.

o Renamed LGPL file to LICENSE.

2.0.3, 2005.08.25 (r1060)

o Visual C++ makemake system updated to build both debug and

release versions of library DLL.

o Fixed bug in simple1 example that caused crashes on Windows.

o Doing UTF-8 to ANSI text translation in simple examples now.

o Previous two releases built libmysqlpp with wrong soname on

autotools-based systems.  Fixed.

2.0.2, 2005.08.18 (r1050)

o Fixes to makemake system for cmd.exe.

o Fixed the case where the system's C++ library includes an slist

implementation in namespace std.

2.0.1, 2005.08.17 (r1046)

o Added new simple1 example, showing how to retrieve just one

column from a table.  Old simple1 is now called simple2, and

simple2 is likewise shifted to simple3.

o Added custom6 example, showing how to do the same thing with

SSQLS.

o Updated user manual to cover new examples.

o Was accidentally shipping Subversion crap with tarball.  Fixed.

2.0.0, 2005.08.16 (r1031) The "Excess Hair Removal" release

THIS IS NOT A DROP-IN REPLACEMENT FOR MySQL++ v1.7!

At minimum, you will have to recompile your program against

this library.  You may also have to make code changes.

Please see the "Incompatible Library Changes" chapter of

the user manual for a guide to migrating your code to this

new version:

http://tangentsoft.net/mysql++/doc/userman/html/breakages.html

o The library's shared object file name (soname) scheme has

changed.  (This mainly affects POSIX systems.)

The soname for the last 1.7.x releases of MySQL++ was

libmysqlpp.so.4, meaning the fourth version of the library's

application binary interface (ABI).  (The first ABI version

in this scheme was that provided by 1.7.9.)  MySQL++

2.0.0's soname is libmysqlpp.so.2.0.0.  Since the dynamic

linker setup on some systems will create a symlink to

that file called libmysqlpp.so.2, it's possible that this

library could be confused with that for MySQL++ 1.7.19

through .21, which also used this number.  Do not install

this library on a system which still has binaries linked

against that version of the library!

The new scheme is {ABI}.{feature}.{bug fix}.  That is,

the first number changes whenever we break the library's

binary interface; the second changes when adding features

that do not break the ABI; and the last changes when the

release contains only internal bug fixes.  This means

that we will probably end up with MySQL++ 3.0 and 4.0 at

some point, so there will be further soname conflicts.

Hopefully we can put these ABI changes off long enough

to avoid any real problems.

o autoconf now installs headers into $prefix/include/mysql++,

instead of $prefix/include.  If you were using the

--includedir configure script option to get this behavior

before, you no longer need it.

o Linux binary RPMs will henceforth include only the

libmysqlpp.so.X.Y.Z file, and create any short names

required, to allow multiple versions to be installed at

once.  Currently, you cannot install two MySQL++ library

RPMs at once, because they both have /usr/lib/libmysqlpp.so.X,

for instance.

o Replaced the Visual C++ and Borland C++ project files with

a new "makemake" system, which creates Makefiles specific

to a particular toolchain.  This new mechanism also supports

MinGW and generic GCC-on-*ix.  This was done partly to reduce

the number of places we have to change when changing the

file names in MySQL++ or adding new ones, and partly so we're

not tied to one particular version of each of these tools.

o VC++ Makefiles create a DLL version of the library only

now, so there's no excuse for LGPL violations now.

This same mechanism should make DLL builds under other

Windows compilers easy.

o Added Connection::enable_ssl(), which enables encrypted

connections to the database server using SSL.

o Connection::create_db() and drop_db() now return true on

success, not false.

o Connection::create_db() and drop_db() use Query::exec()

now, for efficiency, rather than Query::execute().

o Removed Connection::infoo().  Apparently just there to

save you from a typo when calling the info() method, since

it was a mere alias.

o Renamed Connection::real_connect() to connect(), gave

several more of its parameters defaults, and removed old

connect() function.  Then changed user manual and examples

to use new APIs.

o Replaced Connection::read_option() with new set_option()

mechanism.  The name change matches the method's purpose

better.  Functional changes are that it returns true on

success instead of 0, it supports a broader set of options

than read_option() did, and it enforces the correct option

argument type.

o You can now call Connection::set_option() before the

connection is established, which will simply queue the option

request up until the connection comes up.  If you use this

feature, you should use exceptions, because that's the only

way an option setting failure can be signalled in this case.

o Removed query-building functions (exec*(), store*(),

use()) from class Connection, and moved all the implementation

code to class Query.  Query no longer delegates the final

step of sending the query to the database server to

Connection().

o Added Connection::enable_ssl(), for turning on SSL support on

a connection.

o Extracted exception disabling mechanism out of the many

classes that had the feature into a new OptionalExceptions

base class, which all classes having this feature now

derive from.  Also, removed all per-method exception

handling flags.  Finally, added NoExceptions class.  With

all of these changes, there is now a common way to disable

exceptions with fine granularity on all objects that

support the feature.

o All custom MySQL++ exceptions now derive from the new

Exceptions class.  This regularizes the exception interface

and allows you to use a single catch() block if you want.

o The "throw exceptions" flag is passed from parent to child

in all situations now.  (Or if not, please report it as

a bug.) This fulfills a promise made in the v1.7.9 user

manual, with the cost being that some programs will see

new exceptions thrown that they're not expecting.

o Added a bunch of new exception types: BadOption,

ConnectionFailed, DBSelectionFailed, EndOfResults,

EndOfResultSets, LockFailed, and ObjectNotInitialized.

Some of these replace the use of BadQuery, which in v1.7.x

was a kind of generic exception, thrown when something more

specific wasn't available.  Beware, this means that programs

may start crashing after recompiling them under v2.0 due to

uncaught exceptions, if they were only trying to catch BadQuery.

There are additional instances where the library will

throw new exceptions.  One is when calling a method that

forces the internals to use an out-of-bounds index on a

vector; previously, this would just make the program

likely to crash.  Another is that the library uses the

BadFieldName exception -- created in v1.7.30 -- in more

apropos situations.

o Renamed SQLQueryNEParms to BadParamCount, to match naming

style of other concrete exception types.

o Extracted lock()/unlock() functions from Connection and

Query classes into a new Lockable interface class.  Locking

is implemented in terms of a different class hierarchy, Lock,

which allows multiple locking strategies with a single ABI.

o Removed ResUse::eof().  It's based on a deprecated MySQL

C API feature, and it isn't needed anyway.

o Removed arrow operator (->) for iterator returned by Fields,

Result and Row containers.  It was inherently buggy, because

a correct arrow operator must return the address of an

object, but the underlying element access functions in these

classes (e.g. at()) return objects by value, of necessity.

Therefore, this operator could only return the address of

a temporary, which cannot be safely dereferenced.

o Returned Row subscripting to something more like the

v1.7.9 scheme: there are two operator[] overloads, one for an

integer (field by index) and another for const char* (field

by name).  lookup_by_name() has been removed.  Because row[0]

is ambiguous again, added Row::at() (by analogy with STL

sequence containers), which always works.

o Collapsed two of the Row::value_list*() overloads into

two other similar functions using default parameters.

This changes the API, but the removed functions aren't

used within the library, and I doubt they are used outside,

either.

o Merged RowTemplate into Row.

o Merged SQLQuery class into Query class.

o Query is now derived from std::ostream instead of

std::stringstream, and we manage our own internal string

buffer.

o Moved SQLParseElement and SQLQueryParms into their own

module, qparms.

o Added multiple result set handling to Query.MySQL 4.1

and higher allow you to give multiple SQL statements in a

single "store" call, which requires extensions to MySQL++

so you can iterate through the multiple result sets.Also,

stored procedures in MySQL 5.0 reportedly return multiple

result sets.Thanks for the initial patch go to Arnon Jalon;

I reworked it quite a bit.

o Query::storein*() now supports more varieties of the

nonstandard slist comtainer.(Singly-linked version of

STL std::list.)

o Template query mechanism and user manual had several

mismatches.  Made manual match actual behavior, or

made library match documented behavior, as apropriate.

Initial patch by J眉rgen MF Gleiss, with corrections and

enhancements by Warren Young.

o Collapsed mysql_* date and time base classes' methods and

data into the subclasses.  Also, DateTime no longer derives

from Date and Time; you could get away with that in the

old hierarchy, but now it creates an inheritance diamond,

and allows unsupported concepts like comparing a Time to

a DateTime.

o Removed "field name" form of Row::field_list().  It was

pretty much redundant -- if you have the field names, why

do you need a list of field names?

o ColData can convert itself to bool now.  Thanks for this

patch go to Byrial Jensen.

o Removed simp_list_b type; wasn't being used, and doesn't

look to be useful for end-user code.

o Several methods that used to take objects by value now

do so by const reference, for efficiency.

o Several variable and function renamings so that MySQL++

isn't needlessly tied to MySQL.  Even if we never make

the library work with other database servers, there's

little point in tying this library to MySQL blindly.

o Renamed all private data members of MySQL++ classes to

have trailing underscores.

o 'private' section follows 'public' section in all classes

now.

o Removed mysql++.hh and sqlplus.hh backwards-compatibility

headers.

o Added copy ctors to Date/Time classes so that they will

work in SSQLS under GCC 4.0.0.  Without these, the compiler

couldn't make the conversion from raw MySQL row data.

o Fixed a bunch of GCC 4.0 pedantic warnings: added virtual

dtors to all base classes, calling base class ctors from leaf

classes, etc.

o All warnings fixed under VC++ at warning level 3.  (Mostly

harmless signedness and integer conversion stuff.)

o Updated LGPL license/copyright comments at the top of

several files to use FSF's new physical address.

o Relicensed user manual under a close variant of the Linux

Documentation Project License, as it's designed for

documentation, which the LGPL is not.  Permission for this

received from Kevin Atkinson and MySQL AB.

o Added ABI and API breakages chapter to user manual.  It

is basically a subset of this ChangeLog, with only the

information an end-user must know when migrating between

versions.

o Reworked user manual's DocBook code quite a bit after

reading Bob Stayton's book "DocBook XSL" 3/e.  Better handling

of stylesheets, taking advantage of some superior DocBook

features, prettier output (especially the HTML version), etc.

o Rewrote doc/userman/README to make it clearer how to get

started contributing to the user manual.  It's essentially a

"getting started with DocBook" guide now!

o Lots of small text improvements to user and reference

manuals.  Aside from the obvious tracking of library changes,

made a bunch of minor style and clarity improvements.

o Added CSS stylesheets for userman and refman to

make the HTML versions of each a) not ugly; and b) match

tangentsoft.net.  (Yes, some may say that these are incompatible

goals....)

o Standardized exception handling code in the examples that

use it.

o Fixed a potential memory leak due to exceptions thrown from

ResUse.  Thanks for this patch go to Chris Frey.

o Using new "no exceptions" feature of library in simple1

example, so it is now truly simple.

o simple1 example no longer depends as much on util module, so

that all of the important code is in one place.  Makes

learning MySQL++ a little less intimidating.

o Added new simple2 and usequery examples, to demonstrate

the proper way to handle a "use" query, with exceptions

disabled, and not, respectively.  Added them to the user

manual, in the appropriate place.

o Refactored the "print stock table" example functions

again, to make code using them clearer.

o UTF-8 to UCS-2 handling in examples is now automatic on

Windows.

o Removed debug code from Windows Unicode output examples

that slipped into previous release.

o resetdb example is now clearer, and more robust in the

face of database errors.

o Simplified connect_to_db() in examples' util module.

o Added sample autoconf macro for finding MySQL++ libraries, for

people to use in their own autotools-based projects.

o Lots and lots of minor cleanups not worth mentioning

individually...

--------------------next---------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值