Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » ElevateDB Technical Support » Support Forums » ElevateDB General » View Thread |
Messages 1 to 6 of 6 total |
Strange error |
Thu, Dec 11 2008 5:21 AM | Permanent Link |
Francisco Fernandez | Hi Tim.
One of your nightmares again. As you know, i'm using triggers in my application. And normally are working well. I have a customer with several clients. In one of clients modify a record that shoot a trigger and work fine but if in another client create a temporary table that nothing to do with the tables affected by the other client I get the error "Elevate error #1000 an error ocurred with TempCursor (the cursor has no active row)". This error occurs in a AFTER UPDATE trigger of the table "VENTASLINEAS" and in the other client only have created a temporary table. If I close session and open again it works fine again. Thank you |
Thu, Dec 11 2008 2:46 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Francisco,
<< I have a customer with several clients. In one of clients modify a record that shoot a trigger and work fine but if in another client create a temporary table that nothing to do with the tables affected by the other client I get the error "Elevate error #1000 an error ocurred with TempCursor (the cursor has no active row)". This error occurs in a AFTER UPDATE trigger of the table "VENTASLINEAS" and in the other client only have created a temporary table. If I close session and open again it works fine again. >> This is what I was trying to tell you via email. We added a check for this in 2.02 B5 because previously such an UPDATE on a cursor with no active row would result in a not-so-friendly error. It has nothing to do with temporary tables, etc. It is simply a notification that the cursor that you're trying to update is empty. -- Tim Young Elevate Software www.elevatesoft.com |
Thu, Dec 11 2008 3:25 PM | Permanent Link |
Francisco Fernandez | Tim,
<<This is what I was trying to tell you via email. We added a check for this in 2.02 B5 because previously such an UPDATE on a cursor with no active row would result in a not-so-friendly error. It has nothing to do with temporary tables, etc. It is simply a notification that the cursor that you're trying to update is empty.>> In the trigger there is a control to update only if rowcount>0, also, if i don't create the temporary table don't show me error when i change the same row and when i create temporary table show me the error. I can be wrong but I have many hours trying this point. If you want I can try to prepare an example project to show it. Thank you |
Fri, Dec 12 2008 8:02 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Francisco,
<< In the trigger there is a control to update only if rowcount>0, also, if i don't create the temporary table don't show me error when i change the same row and when i create temporary table show me the error. I can be wrong but I have many hours trying this point. If you want I can try to prepare an example project to show it. >> Thanks for the project. Per email, here's the issue: << I think this is all my problems with triggers and corrupt tables. As i said to you at the news web i'm having problems when I create a temporary table. Please check this example project (Delphi 2007) and tell me what's I'm doing wrong. It is working in a folder called C:\example. >> It explains the #1000 "no active row" error, but I'm not sure about the write error. The issue is that the temporary table drop operation causes a reload of the database catalog because it fails (table doesn't exist), and the reload of the database catalog causes some internal tracking information for the triggers to get reset. This information is about the referenced OLDROW columns in the trigger, which causes the query using the OLDROW values to retrieve/insert the wrong row in the EXISTENCIAS table. This is not specific to temporary tables, and can be caused by any DDL/DML statement that causes an execution error. I'll have a fix for this pretty quickly, probably by Sunday. I'm also going to update the DROP TABLE logic to not try to mess around with the database catalog for temporary tables at all as a performance improvement. Tim Young Elevate Software www.elevatesoft.com |
Fri, Dec 12 2008 10:41 AM | Permanent Link |
Francisco Fernandez | Hi Tim.
Ok, i know now why I was thinking that executes triggers twice, because I was working with before build and in this build it was no error when no active row, then update the record of NEWROW values but not decrement OLDROW values. I was changed my application and i use a disk table instead of memory table and i have no problem in two days with my "yet" customer, jajajaja. Not worry Tim, I wait your fix. Thank you. |
Mon, Dec 15 2008 10:02 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Francisco,
<< Ok, i know now why I was thinking that executes triggers twice, because I was working with before build and in this build it was no error when no active row, then update the record of NEWROW values but not decrement OLDROW values. >> Yes. I'm also going to keep looking into this to see if there's possibly a relationship with the other #100 error that you were seeing. At first thought I didn't think there was, but I've thought of a way in which it might. << I was changed my application and i use a disk table instead of memory table and i have no problem in two days with my "yet" customer, jajajaja. >> Great. << Not worry Tim, I wait your fix. >> It should be tomorrow evening at the latest. -- Tim Young Elevate Software www.elevatesoft.com |
This web page was last updated on Tuesday, April 30, 2024 at 03:55 PM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |