Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 9 of 9 total
Thread A procedure runs fine in edb manager, but not in an application
Fri, Dec 18 2009 11:15 AMPermanent Link

"Lucian Radulescu"
Hi Tim,

I have a procedure that runs fine from EDB Manager, but gives an AV in
my application. Errr, what do I do now?


regards,
Lucian
Fri, Dec 18 2009 5:09 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Lucian,

<< I have a procedure that runs fine from EDB Manager, but gives an AV in my
application. Errr, what do I do now? >>

Send me the database catalog and relevant table files, and tell me which
procedure is causing the problem.  I'll see if I can recreate the issue
here.  Also, what version/build of ElevateDB are you using ?

--
Tim Young
Elevate Software
www.elevatesoft.com

Sat, Dec 19 2009 3:38 AMPermanent Link

"Lucian Radulescu"
> the issue here.  Also, what version/build of ElevateDB are you using ?

2.03b6
Files coming shortly to your account,
The procedure that works in EDB and AVs in my app is "PurgeProject".


regards,
Lucian
Sat, Dec 19 2009 7:41 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Lucian,

<< 2.03b6 Files coming shortly to your account,The procedure that works in
EDB and AVs in my app is "PurgeProject". >>

Per email: I couldn't replicate in Delphi 2009, so I need to know which
version of Delphi you're using.

Thanks,

--
Tim Young
Elevate Software
www.elevatesoft.com

Sun, Dec 20 2009 4:43 AMPermanent Link

"Lucian Radulescu"
Hi Tim,

Seems the problem was the way I was starting the transaction. I was
passing EmptyEDBStringsArray thinking that will lock all *tables*, I
don't know what it does, but now I pass the names of all tables in the
database (because most of them are involved in the procedure) and it
all works fine ... with one comment: it seems to be a lot faster in my
application than in edb manager, don't know why. It takes the procedure
to run less than a second in my app, and it takes ALMOST 30 SECONDS in
edb manager. That's thirty, it's not a mistake. I would like to know
why, because I don't want it to happen in my app later.

regards,
Lucian
Sun, Dec 20 2009 9:39 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Lucian,

<< Seems the problem was the way I was starting the transaction. I was
passing EmptyEDBStringsArray thinking that will lock all *tables*, I don't
know what it does, but now I pass the names of all tables in the database
(because most of them are involved in the procedure) and it all works fine
.... with one comment: it seems to be a lot faster in my application than in
edb manager, don't know why. It takes the procedure to run less than a
second in my app, and it takes ALMOST 30 SECONDS in edb manager. That's
thirty, it's not a mistake. I would like to know why, because I don't want
it to happen in my app later. >>

If you're starting a transaction in your application, but not in the EDB
Manager, then the time difference is due to that.  Transactions really speed
up writes to the database.

Let me play around with this here and find out why the presence of the
transaction was causing the error.

--
Tim Young
Elevate Software
www.elevatesoft.com

Sun, Dec 20 2009 12:29 PMPermanent Link

Uli Becker
Tim,

> Transactions really speed
> up writes to the database.

Very good hint! I checked some iterations I am using in stored
procedures and was able to speed them significantly.

Uli
Mon, Dec 28 2009 7:51 AMPermanent Link

"Lucian Radulescu"
> Let me play around with this here and find out why the presence of
> the transaction was causing the error.

I think I have more info on this. I discovered "View Server Session
Locks" in EDB Manager (which allow me to say it's one of the greatest
debug tools, thank you !!!) and I discovered an exclusive lock on a
temporary table coming from a query never closed. This was causing the
procedure to fail inside a transaction in my application.

regards,
Lucian
Mon, Dec 28 2009 9:50 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Lucian,

<< I think I have more info on this. I discovered "View Server Session
Locks" in EDB Manager (which allow me to say it's one of the greatest debug
tools, thank you !!!) >>

Yes, those configuration tables can be very useful for debugging.  I use
them quite a bit myself.

<< and I discovered an exclusive lock on a temporary table coming from a
query never closed. This was causing the
procedure to fail inside a transaction in my application. >>

Ahh yes, that will do it. Smiley

--
Tim Young
Elevate Software
www.elevatesoft.com

Image