From: "Warren W. Gay VE3WWG" <ve3wwg@NoSpam.cogeco.ca>
Subject: Re: APQ
Date: Thu, 16 Dec 2004 06:34:06 -0500
Date: 2004-12-16T06:34:06-05:00 [thread overview]
Message-ID: <Onewd.204$Wt5.95202@read2.cgocable.net> (raw)
In-Reply-To: <sa4brcv2l5m.fsf@snoopy.apana.org.au>
Brian May wrote:
> Hello,
>
> Here are my suggested changes to APQ (not actually done or tested).
I'll just respond briefly here, since I am on my way to
work..
> 1. Decide on or write a "smart pointer" library. ie. a library that
> manages pointers based on a reference count. Obviously the license
> must be compatible with the license of APQ.
>
> 2. No change to Connection_Type or Root_Connection_Type.
>
> 3. Create new Database_Type. This type should not be
> tagged. Applications will use this instead of the
> Root_Connection_Type. It has the following data:
>
> * Smart pointer to Root_Connection_Type'Class. This is dynamically
> allocated when the connection is created.
>
> It has the following methods:
>
> * Connect method takes a string, which is the connection URL. Note:
> Two ways of implementing:
Ok, this makes sense because you don't know the type
of Connection_Type apriori. I generally favour Booch
components myself, which includes a smart pointer.
...
> 4. Modify Root_Query_Type class:
>
> New_Query is the only function that takes a *Database_Type*
> parameter.
>
> The functions that use to require Root_Connection_Type now use the
> smart pointer that was saved instead.
>
> Why not make the procedures abstract instead of having them raise
> an Is_Abstract? This way the checks can be done at compile time.
Answer: I wanted to put some code at the top level so that I
wouldn't have to repeat it for every database. For some reason
the compiler wouldn't let me do it (perhaps I was missing
something). I would be happy to have this done, but I was
unable to make it so in practice. Maybe someone else can
figure it out.
> Execute already returns exception if not connected.
>
> Add methods for obtaining and clearing status information. This
> should be cached so if you execute two separate queries (in two
> separate variables) on the same database, you will get two status
> messages saved.
You have to be real careful here, because database products
like Sybase use callbacks and things can change. In fact, Sybase
was a monster to tame with its oodles of states and callbacks.
> I hope this helps explain what I said earlier... I believe this solves
> a number of concerns with the existing system in one go.
I'll try to respond more fully later on, but this seems to make
sense.
--
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg
next prev parent reply other threads:[~2004-12-16 11:34 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-15 23:31 APQ Brian May
2004-12-16 11:34 ` Warren W. Gay VE3WWG [this message]
2004-12-16 23:58 ` APQ Randy Brukardt
2004-12-17 3:45 ` APQ Brian May
2004-12-17 4:03 ` APQ Warren W. Gay VE3WWG
2004-12-17 4:38 ` APQ Brian May
2004-12-17 9:06 ` APQ Egil H. H�vik
2004-12-17 11:42 ` APQ Brian May
2004-12-17 22:55 ` APQ Brian May
2004-12-18 15:52 ` APQ Warren W. Gay VE3WWG
2004-12-18 18:23 ` APQ Dmitry A. Kazakov
2004-12-21 23:34 ` APQ Brian May
2004-12-22 8:57 ` APQ Dmitry A. Kazakov
2004-12-22 10:07 ` APQ Martin Krischik
2004-12-22 13:15 ` APQ Dmitry A. Kazakov
2004-12-22 16:53 ` APQ Martin Krischik
2004-12-22 17:21 ` APQ Dmitry A. Kazakov
2004-12-22 18:23 ` APQ Martin Krischik
2004-12-17 8:59 ` APQ Stephen Leake
2004-12-17 14:12 ` APQ Dmitry A. Kazakov
2004-12-17 23:20 ` APQ Brian May
2004-12-18 16:13 ` APQ Dmitry A. Kazakov
2004-12-21 23:29 ` APQ Brian May
2004-12-22 9:14 ` APQ Dmitry A. Kazakov
2005-01-04 21:32 ` APQ Brian May
2005-01-05 11:58 ` APQ Dmitry A. Kazakov
2004-12-23 17:04 ` APQ (Connection Cloning) Warren W. Gay VE3WWG
2004-12-23 17:55 ` Georg Bauhaus
2004-12-23 18:52 ` Warren W. Gay VE3WWG
2005-01-03 7:40 ` Frank Piron
2004-12-17 13:54 ` APQ Dmitry A. Kazakov
-- strict thread matches above, loose matches on Subject: below --
2004-12-16 4:37 APQ Christoph Karl Walter Grein
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox