Definitely an issue that arises more often than not in real world
applications, and definitely one that pops up on our forum from
time to time.
Firstly, a bit of the fundamentals. MyComponents are derived from
the standard Borland TCustomConnection and TDataset classes, and
it is therefore important to realize that if these base classes'
methods are not thread protected (using synchronization), neither
are those of the MyComponents. That said, the MyComponents are
quite safe to use in an isolated manner from and within threads
(TThread). Moreover, the MyComponents classes actually makes
special provision for you to create threaded connections to the
MySQL server.
Also to be kept in mind, is that all Borlands' GUI VCL runs in
the main application thread, and therefore is it not possible to
create a dataset in a thread and have it be connected to a DBGrid
for example. However, the TMySQLDataset does have a thread open …
Tonight the Boston MySQL meetup convened for pizza, soda, conversation and a presentation on MySQL 5 by Philip Antoniades.
Attendance was ~25 and a fairly low key. After some pizza we got right into Philip's presentation, "What's New in MySQL 5." Philip gave 10 tips or reasons for migrating to 5.0, along with a host of other information about the company, the database architecture etc. A good presentation with a lot of background and in-depth information about MySQL. After the 40-minute presentation there was another 20 minutes of Q/A, which was also pretty in-depth. Philip knows his MySQL stuff.
I recorded the meeting on my …
[Read more]
I started out today doing what I thought was a simple task;
Install the MySQL client using Intel's compiler. In my
environment, we like to install the client software so it is
generally available to everyone and the server software on the
actual physical box. We feel this gives us the flexibility to
upgrade the servers indendently from all the programs.
I've compiled the 5.0.16 software using gcc about a dozen times
already and other than a few simple tweaks here and there, it was
a no-brainer. When I installed the client, I used gcc instead of
the preferred (in my environment) icc.
I started by issuing a "make clean" to remove any builds I did
before. I then changed my CC and CXX environment variables to
point to the icc compiler and did:
$ configure --without-server --prefix=/usr/local/mysql_client
On my first try I encountered errors that were looking for …
It seems I only ever post these days to shamelessly plug
MySQLDevelopment.com :) However recently my conscience has been
clear because I've actually been plugging content written by
people rather than myself.
Roland Bouman has done a great job on his blog recently (even
winning the grand prize in the MySQL 5 competition), but he has
still found time to kindly write content for
MySQLDevelopment.com, this weekend we put the final touches to
his introduction to the Call Level Interface and Connector/J
articles. They are available now at the following URL
http://mysql.gilfster.com/page.php?parent_id=3a&page_id=3a.0.1
Just stumbled about this comment about MySQL 5.0 in an article about OSS Databases in the Inquirer: "This major release in October has remedied many of these shortcomings with new features including ACID transactions..."
Sigh. Transactions have been supported using the InnoDB storage engine since March 2001 when it was added to MySQL in version 3.23 (as part of the Max builds, it was enabled in all binaries starting with MySQL 4.0). What is it about the Internet that such myths stay around for so long? We even have an article that dispels common MySQL misconceptions like this one, but it seems checking facts is too much work...
More info on using Transactions with …
[Read more]for most ORM’s the typical access path is
single table selects either for:
- a primary key (for a single record)
- a list of related records (ie.. a foreign key)
- and possibly a ‘%XXX%’ to match a name or something
Is the HANDLER functionality a better (ie faster) method than using SQL syntax in this case? it seems like a more natural ‘fit’ for the ORM type behavior.
Tonight is the 2nd MySQL Meetup Group. The group has 114 people registered. I saw a clear need to make the group back in October, given that there were 32 people waiting for a Boston MySQL Meetup Group.
And of course, Boston being a major high-tech area, folks are driving in from a 30-mile radius (New Hampshire and places out on 495) to attend.
(Fourth part of the MySQL 5 general purpose routine library
presentation.)
SYNTAX HELPERSNo matter how skilled you are as a programmer, when
dealing with a rich language (or a rich library),
there is little chance that you will remember the syntax of all
the routines, especially if such routines need more than two
parameters each.
This is even truer for MySQL stored routines, where the language
does not allow niceties like routines with variable number of
parameters or default values for parameters that are not included
in the call list.
I solved the problem storing the syntax in a couple of tables,
and having a few functions returning such syntax for each routine
and some procedures to list routines by a regular
expression.
Let's start with these last ones.
The most general procedure is …