BorlandTalk.com Forum Index BorlandTalk.com
Borland discussion newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Requirements needed: extending dbExpress via dbExpressPlus

 
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi Databases (dbExpress)
View previous topic :: View next topic  
Author Message
Martijn Tonies
Guest





PostPosted: Wed Sep 15, 2004 7:58 am    Post subject: Requirements needed: extending dbExpress via dbExpressPlus Reply with quote



Hi all,

We all know that dbExpress is a bit limited in some regards.

For example, you cannot pass custom connection options (in
TSQLConnection.Params) to a driver just before connecting.

You cannot set custom properties for commands/queries.

You cannot get the Query Plan for, for example, InterBase or
Firebird.

I recently had a small e-mail exchange with Thomas Miller, the
maintainer of dbExpressPlus.

I proposed extending the dbExpress interfaces and optionally
implementing them in dbExpressPlus. This way, driver creators
could choose to implement them and dbExpressPlus can use
current drivers and drivers that implement the newer interfaces.

To this effect, we would like to know the requirements of people
who are using dbExpress.

What would you like to do when extending dbExpress?

I already gave an example:
- pass everything that's not a valid dbExpress parameter in
TSQLConnection.Params to the driver as plain text.

An example implementation (driver wise) would be:

ISQLConnectionPlus = interface(...)
procedure SetConnectOption(aOption: PChar; aValue: PChar); stdcall;
end;

Another example:
- getting custom values from a (prepared) command:

ISQLCommandPlus = interface(...)
procedure GetCustomProperty(aProperty: PChar; aValue: PChar); stdcall;
end;

Usage (example: Firebird):
Command.GetCustomProperty('PLAN', PlanBuffer);

Comments?

--
With regards,

Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird, MySQL & MS SQL
Server.
Upscene Productions
http://www.upscene.com


Back to top
Dmitry Arefiev [gs-soft.r
Guest





PostPosted: Thu Sep 16, 2004 7:10 pm    Post subject: Re: Requirements needed: extending dbExpress via dbExpressPl Reply with quote



Hi Martin !

As you know, dbExpress has a lot of issues. I will name
just few:
- no right data types. At least Unicode ones are at most mised.
- no connection parameter enumeration and, of course, no
ability to transfer intermediate parameters
- no right error handling
- no access to CLI handles
- cant cancel a query
- etc (A LOT)

I dont think "Query Plan" should be generelaized. Different
RDMB's will have different approaches. As i got you, IB
requires access to handles. Oracle will get plan from DB
table.

I think ODBC, OLEDB, BDE done what we need. Is not ?
dbExpress is pure commercial step ...

Regards,
Dmitry

--
Dmitry Arefiev, gs-soft Company, community.gs-soft.com
Personal - www.da-soft.com

SAPx - Delphi to SAP R/3 direct access
Saphir - SAP R/3 metadata on your fingertips
MetaBase - ERWIN model in Delphi applications
NCOCI8 - Freeware Delphi to ORACLE direct access

Martijn Tonies wrote:
Quote:
Hi all,

We all know that dbExpress is a bit limited in some regards.

For example, you cannot pass custom connection options (in
TSQLConnection.Params) to a driver just before connecting.

You cannot set custom properties for commands/queries.

You cannot get the Query Plan for, for example, InterBase or
Firebird.

I recently had a small e-mail exchange with Thomas Miller, the
maintainer of dbExpressPlus.

I proposed extending the dbExpress interfaces and optionally
implementing them in dbExpressPlus. This way, driver creators
could choose to implement them and dbExpressPlus can use
current drivers and drivers that implement the newer interfaces.

To this effect, we would like to know the requirements of people
who are using dbExpress.

What would you like to do when extending dbExpress?

I already gave an example:
- pass everything that's not a valid dbExpress parameter in
TSQLConnection.Params to the driver as plain text.

An example implementation (driver wise) would be:

ISQLConnectionPlus = interface(...)
procedure SetConnectOption(aOption: PChar; aValue: PChar); stdcall;
end;

Another example:
- getting custom values from a (prepared) command:

ISQLCommandPlus = interface(...)
procedure GetCustomProperty(aProperty: PChar; aValue: PChar); stdcall;
end;

Usage (example: Firebird):
Command.GetCustomProperty('PLAN', PlanBuffer);

Comments?

Back to top
Thomas Miller
Guest





PostPosted: Fri Sep 17, 2004 12:05 am    Post subject: Re: Requirements needed: extending dbExpress via dbExpressPl Reply with quote



There are some great things about dbExpress too. So just
because they never finished the technology doesn't mean
we shouldn't finish it and keep on going. Obviously
Martin is willing to support the new interface. If
Corelab is too, then we have a lot of drivers available.
I am sure we can work on the open source ODBC driver.

That would only leave a couple of other vendors to
convince to support the newer interface and another
reason for people to buy their drivers.

I like the idea. I would like to see the Metadata
interface much border to support Triggers, Foreign
Keys, Generators, Plan, etc.

If we do this from scratch and properly, then we
can start a real open source project that can be
ported to Free Pascal too.

That is a good list to start with. Any more?

Dmitry Arefiev [gs-soft.ru] wrote:

Quote:
Hi Martin !

As you know, dbExpress has a lot of issues. I will name
just few:
- no right data types. At least Unicode ones are at most mised.
- no connection parameter enumeration and, of course, no
ability to transfer intermediate parameters
- no right error handling
- no access to CLI handles
- cant cancel a query
- etc (A LOT)

I dont think "Query Plan" should be generelaized. Different
RDMB's will have different approaches. As i got you, IB
requires access to handles. Oracle will get plan from DB
table.

I think ODBC, OLEDB, BDE done what we need. Is not ?
dbExpress is pure commercial step ...

Regards,
Dmitry


--
Thomas Miller
Delphi Client/Server Certified Developer
BSS Accounting & Distribution Software
BSS Enterprise Accounting FrameWork

http://www.bss-software.com
http://sourceforge.net/projects/dbexpressplus

Back to top
Martijn Tonies
Guest





PostPosted: Fri Sep 17, 2004 11:30 pm    Post subject: Re: Requirements needed: extending dbExpress via dbExpressPl Reply with quote

Hi Dmitry,

Quote:
As you know, dbExpress has a lot of issues. I will name
just few:
- no right data types. At least Unicode ones are at most mised.

It's in the interface, more or less, I believe ;-)

Quote:
- no connection parameter enumeration and, of course, no
ability to transfer intermediate parameters

Indeed, this one I dislike a lot.

Quote:
- no right error handling

Could you specify this?

Quote:
- no access to CLI handles

?

Quote:
- cant cancel a query

This would be a nice addition for the ISQLCommandPlus
interface.

Quote:
- etc (A LOT)

I dont think "Query Plan" should be generelaized. Different
RDMB's will have different approaches. As i got you, IB
requires access to handles. Oracle will get plan from DB
table.

The driver could return the plan as a string of text, perhaps.

What I said isn't cast in stone - it's an idea.

Quote:
I think ODBC, OLEDB, BDE done what we need. Is not ?
dbExpress is pure commercial step ...

Of course, the Borland drivers won't support "our" interfaces, but
I'm sure we can convince the third party tool drivers to include some
of our features. I believe the odbc-dbexpress project uses an ini
to pass additional connection parameters, I like the idea of passing
then in code (via the Params property) much better. And I'm sure
there are other ideas as well.


--
With regards,

Martijn Tonies
Database Workbench - developer tool for InterBase, Firebird, MySQL & MS SQL
Server.
Upscene Productions
http://www.upscene.com



Back to top
Display posts from previous:   
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi Databases (dbExpress) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.