 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Martijn Tonies Guest
|
Posted: Wed Sep 15, 2004 7:58 am Post subject: Requirements needed: extending dbExpress via dbExpressPlus |
|
|
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
|
Posted: Thu Sep 16, 2004 7:10 pm Post subject: Re: Requirements needed: extending dbExpress via dbExpressPl |
|
|
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
|
Posted: Fri Sep 17, 2004 12:05 am Post subject: Re: Requirements needed: extending dbExpress via dbExpressPl |
|
|
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
|
Posted: Fri Sep 17, 2004 11:30 pm Post subject: Re: Requirements needed: extending dbExpress via dbExpressPl |
|
|
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 |
|
 |
|
|
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
|
|