BDE Migration to UniDAC with Sybase

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Tue 05 Jul 2011 08:41

Thanks Alex for all the support you hv provided so far.We almost finished migrating all delphi 6 (BDE) to delphi 10 with unidac..

Now we are facing slowness with unidac when we are interfacing delphi with our application which is developed in Uniface..We didnt changed anything in Uniface it is working too slow when we compare Delphi 6 with BDE.

Could please let us know how can we make it to perform well

Thanks!

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Post by AlexP » Tue 05 Jul 2011 09:49

Hello,

Please specify what exactly is executed more slowly. Please give us an example of tables and “slow” queries, and specify the UniDAC components settings.
If you are working with database directly (without Uniface), does the performance decrease or not?

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Tue 05 Jul 2011 11:38

When we connect directly to database,we didnt feel like too slow but when we are trying to connect from Uniface it is too slow..connection and storedproc are performing slow.

stevel
Posts: 125
Joined: Tue 02 Nov 2010 19:01

Post by stevel » Tue 05 Jul 2011 12:07

sasdua wrote:When we connect directly to database,we didnt feel like too slow but when we are trying to connect from Uniface it is too slow..connection and storedproc are performing slow.
Maybe you are trying to retrieve all the rows from the table (using stored procedure). You should filter the results using WHERE.


Regards,
Steve Faleiro

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Post by AlexP » Tue 05 Jul 2011 12:13

Hello,

Please specify the ODBC driver you are using with UniDAC when working with Unifest - the native Sybase driver or specific Unifest driver?

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Wed 06 Jul 2011 09:55

We are using ASE Driver which is avaiable along with Unidac.

Uniface will just call Delphi Inerface after that delphi will connect to database with the connection detauils passed by uniface.

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Wed 06 Jul 2011 09:57

stevel wrote:
sasdua wrote:When we connect directly to database,we didnt feel like too slow but when we are trying to connect from Uniface it is too slow..connection and storedproc are performing slow.
Maybe you are trying to retrieve all the rows from the table (using stored procedure). You should filter the results using WHERE.


Regards,
Steve Faleiro
No for simple updates also taking so much time..which are not an issue earlier..

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Wed 06 Jul 2011 14:10

AlexP wrote:Hello,

We will try to add support of sql.ini as soon as posible.
We will investigate the possibility of adding '@' to to names of procedure parameters, but that is hardly to happen in the nearest future.
Now you need to change parameters names manually
We need sql.ini look up is it ready??

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Post by AlexP » Thu 07 Jul 2011 08:37

Hello,

The sql.ini support will be implemented in the next version. We plan to release it in August.
We did not test our products with Uniface. We will try to investigate the problem with performance decrease when working with Uniface in the nearest time and will tell you the result.

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Thu 07 Jul 2011 12:08

Can you please provide the SQL.ini look this month..we are going live in August.

Currently we have developed lockup ourselves but when we are using alias names of the server..when we pass the alias name to sever name of the Uni-connection it is not working.


We have encountered another issue,when we are passing Single Character('') in BDE to Sybase ..Sybase is treating has NULL

But here in our Uni Components Single Character is coming as Single Character only.Can you please let me how can i resolve this issue because we are using same procs for some other process also which is going to increase our tasks.

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Thu 07 Jul 2011 17:35

Hello,

While using transactions control within MFUniconnection , it is behaving differently on Sybase 12.5 Client and with Sybase 15 Client.

In Sybase 15 Client , we were getting error message ODBC Driver Failed. Stored Proc xxx can be run only on unchained transaction mode.Set chained off before executing the procedure

So I gave the below command after starting the transaction

MFUniConnection.StartTransaction;
MFUniConnection.ExecSQL('set chained off',[]);

With Sybase 12.5 Client, we are getting the below error message
Set Chained command not allowed in Multistatement transaction.


Can you please let us know why this is a difference. We are trying to compile and execute the same buid with both Sybase 12.5 Client and Sybase 15 Client.

Thanks
AS

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Post by AlexP » Tue 12 Jul 2011 15:05

Hello,

The sql.ini support for Sybase will be available only in the new version of UniDAC that is going to be released in August. But we can send you a beta-version for testing.For this, please specify your license number, IDE version and e-mail to which we can send you this beta-version.

Different behaviour when working with procedures in a transaction is connected with the specifics of Sybase clients 12.5 and 15, and we cannot change it. But you can check the current client version yourself using the TUniConnection.ClientVersion property, and, if needed, set the Chained property to off. Also you can set the anymode mode for your procedures:

Code: Select all

sp_procxmode sp_test, "anymode"
In this case behaviour on both clients will be the same (you will not have to set the Chained property to off on the 15 client).

I cannot reproduce the problem with "Single Character('')". Please send an example demonstrating it to alexp*devart*com

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Thu 14 Jul 2011 16:48

Thanks Alex,

We will send you a mail for the sql..ini patch so we can do the testing.

Also, the issue resolved using explicitly handling the transaction in delphi using begin tran and commit tran so that it runs on unchained transaction mode.

Regards
AS

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Thu 28 Jul 2011 15:06

Hi Alex,

The Unistored proc is behaving strangely for some paramenters when it has temp tables created inside the procedures.

When you execute the procedure from backend you dont get any result set but with Sybase 12.5 Client , Unidac retreives some 75 records when I tried and displays them in Data Editor.

The same does not happen with Sybase 15 Client. Why Unidac retreives data using 12.5 Client we are not understanding

The Procedure has #temp tables and returns the data from that

Please help to check this issues

Thanks
AS

sasdua
Posts: 73
Joined: Wed 16 Mar 2011 15:06

Post by sasdua » Fri 29 Jul 2011 15:30

Hi Team,

ANy update on the below issue please

Regards,
AS

Post Reply