VISOCO Software  Home | Products | Services | Download | Order | Support | Forum | Resources | Search | About
  RSS feedRSS Feed  FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups  RegisterRegister   ProfileProfile    Log inLog in 
Bugs in dbexpsyb.dll

 
Post new topic   Reply to topic    VISOCO Software Forum Index -> VISOCO dbExpress driver for Sybase ASE
Author Message
David
Guest





PostPosted: Wed Aug 21, 2002 4:48 pm    Post subject: Bugs in dbexpsyb.dll Reply with quote

Hi all,

just to warn you before spending time and money for this buggy driver:

1. It creates new connection to the server for every single statement (it does not use cursors at all). Evil or Very Mad

2. None of these connections is ever closed - due to a buggy handling of interfaced objects in the driver none of created objects is ever destroyed. Evil or Very Mad

3. For each connection it tries to create a helper table (not taking care if the rights are sufficient for this or not) and inserts 32 integers into it. Evil or Very Mad
This slows down everything very much and if it fails (because of insufficient rights) then the ISQLMetadata.getIndices() does not work.

4. It is mentioned in the FAQ on VISOCO web site, but just to point out - BLOB parameters are not supported.

5. As mentioned above - passing NULL value as a query string parameter causes access violation in dbexpsyb.dll.

As a conclusion, these bugs make impossible any real use of this "product".

Regards,
David Churavy
Back to top
VISOCO Support
VISOCO Software Support


Joined: 16 Jul 2002
Posts: 96

PostPosted: Sun Aug 25, 2002 10:14 pm    Post subject: Bugs and Features. Reply with quote

Hello.

Thank you for thorough testing.
Really, there are some serious errors yet. Most of them will be plainly fixed in the next build. (like AV when passing null values to a string parameters)


One of the main objectives of this forum is feedback. There are several global problems that cannot be fixed right now. We must know your opinion cause there are mutually exclusive solutions.

Here is the first problem:
>> 1. It creates new connection to the server for every single statement (it does not use cursors at all).

There is a Sybase restriction here. It is impossible to send new command to a server while another command has results pending.
In other words we can have only one active command in a single connection. If we want to use one connection we must fetch all rows returned by previous query before execute another one.

Alternative solutions are:

1. Open a new connection to a server if a current command has unfetched rows.
This is a current implementation and this is relatively simple way. This possibility proposed by dbExpress architecture itself. If ISQLConnection.getOption(eConnMaxActiveComm) returns 1 and there is an active command a new connection will be opened. (see TSQLConnection implementation)

2. Fetch and cache all rows immediately after executing.
This method fraught with resource overheads. It conflicts with dbExpress essential principles.

3. Use Sybase client cursors. This method allows simultaneous results processing but has its own disadvantages. The first and the main one is impossibility of multiple results processing.
This ability is one of useful extraordinary Sybase features.

All offers welcome !

Best regards,
Visoco Software developers.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic   Reply to topic    VISOCO Software Forum Index -> VISOCO dbExpress driver for Sybase ASE All times are GMT + 2 Hours
Page 1 of 1

 


©VISOCO Software. phpBB by phpBB Group