Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM General » View Thread |
Messages 1 to 5 of 5 total |
DBISAM Error #8710 |
Wed, May 31 2006 1:49 AM | Permanent Link |
Praveen A B | Hi All,
I'm having a 'Record not Found' problem when trying to use the 'Locate' function. Attached is the stack trace obtained from madExcept. I have a table TABLE_LOOKUP which is used as a general lookup table. A TdxDBLookupEdit in a screen uses TABLE_LOOKUP as its LookupDataset. The DBLookupEdit works like the IE's address bar.. i.e. it has an OnFilter event that filters the content of TABLE_LOOKUP based on the chars entered in the edit box. Ex: if typed 'ad' then the OnFilter event filters all records beginning with 'ad'. This effectively also filters TABLE_LOOKUP, if I'm right ? I'm trying to implement a functionality wherein if user presses the ESC key, when partially modifying the lookupedit, the previously entered value should be shown. Ex: I type 'abcd' then I type 'efg' then press ESC..it should revert back to 'abcd'. The problem now is that when I type 'efg' the TABLE_LOOKUP will get filtered to show values starting with 'efg'. When I press ESC I can get the prev value and try to do TABLE_LOOKUP.Locate and get the #8710 error. Can someone please help me solve this. ? TIA Praveen Attachments: bugreport.txt |
Wed, May 31 2006 1:31 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Praveen,
<< I'm having a 'Record not Found' problem when trying to use the 'Locate' function. Attached is the stack trace obtained from madExcept. >> The attachment didn't make it through correctly - try just putting it in your post as text instead. << The problem now is that when I type 'efg' the TABLE_LOOKUP will get filtered to show values starting with 'efg'. When I press ESC I can get the prev value and try to do TABLE_LOOKUP.Locate and get the #8710 error. >> What version of DBISAM are you using ? Also, is this occurring in the IDE or at runtime outside of the IDE ? -- Tim Young Elevate Software www.elevatesoft.com |
Fri, Jun 2 2006 5:06 AM | Permanent Link |
Praveen A B | Hi Tim,
<<What version of DBISAM are you using ? Also, is this occurring in the IDE or at runtime outside of the IDE ? >> DBISAM 3.17 and Yes, it happens in IDE and also in runtime. But, I might have found a solution. I trapped the 'ESCAPE' key event and set TABLE_LOOKUP.Filtered := False, before calling the Locate() function and it worked. I still want an answer as to why I'm getting the 'Record not found' error in a filtered dataset. The stack trace is as below: exception class : EDBISAMEngineError exception message : DBISAM Engine Error # 8710 Record not found in the table 'MKT_QUOTE_DEFINITION'. main thread ($5b4): 007e6411 +011 ThresherClient.exe DBISAMTb DbiError 007b2ce3 +03f ThresherClient.exe dbisamen RaiseError 007c7bf6 +03a ThresherClient.exe dbisamen TDataCursor.CheckStatus 007ebbd1 +22d ThresherClient.exe DBISAMTb TDBISAMDataSet.LocateRecord 007ebd52 +022 ThresherClient.exe DBISAMTb TDBISAMDataSet.Locate 00ac571b +04f ThresherClient.exe LookupData 2701 +2 TdmLookup.GetPublishedIndFromQuote ---> DataModule contains TABLE_LOOKUP. Doing general lookup. 00c7b640 +044 ThresherClient.exe FinancialOptCapture 293 +8 TfrmFinancialOptCapture.frHeaderTermeMTMCurveCloseUp 0098b190 +134 ThresherClient.exe tpDBLookupEdit 492 +26 TtpDBLookupEdit.InternalOnCloseUp 0060c1ac +018 ThresherClient.exe dxDBEdtr TdxInplaceLookupEdit.DoCloseUp 0060c0fa +0be ThresherClient.exe dxDBEdtr TdxInplaceLookupEdit.CloseUp 0098b247 +067 ThresherClient.exe tpDBLookupEdit 503 +7 TtpDBLookupEdit.CloseUp ----> TtpDBLookupEdit is my derived component. TtpDBLookupEdit.Field.LookupLookupDataset := TABLE_LOOKUP 005f16f4 +07c ThresherClient.exe dxExEdtr TdxInplaceDropDownEdit.DoDropDownKeys 005f1145 +059 ThresherClient.exe dxExEdtr TdxInplaceDropDownEdit.WndProc 004f4e08 +02c ThresherClient.exe Controls TWinControl.MainWndProc 00479c04 +014 ThresherClient.exe Classes StdWndProc 77e27ed1 +006 user32.dll DispatchMessageA 004e194f +083 ThresherClient.exe Forms TApplication.ProcessMessage 004e1986 +00a ThresherClient.exe Forms TApplication.HandleMessage 004e1ba6 +096 ThresherClient.exe Forms TApplication.Run 01298ebc +148 ThresherClient.exe ThresherClient 1815 +8 initialization Thanks Praveen "Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote: Praveen, << I'm having a 'Record not Found' problem when trying to use the 'Locate' function. Attached is the stack trace obtained from madExcept. >> The attachment didn't make it through correctly - try just putting it in your post as text instead. << The problem now is that when I type 'efg' the TABLE_LOOKUP will get filtered to show values starting with 'efg'. When I press ESC I can get the prev value and try to do TABLE_LOOKUP.Locate and get the #8710 error. >> What version of DBISAM are you using ? Also, is this occurring in the IDE or at runtime outside of the IDE ? -- Tim Young Elevate Software www.elevatesoft.com |
Fri, Jun 2 2006 11:20 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Praveen,
<< DBISAM 3.17 and Yes, it happens in IDE and also in runtime. >> That explains it. In 4.x we trap for this condition and just return False. It is basically caused by the filter resulting in zero records in the dataset. The way Locate works is that it does the search and then tries to resync the found record with the current dataset, which in this case is filtered. If it can't resync because the located record falls out of the filtered dataset, then it can cause this exception. The exception is raised in db.pas, so we can't simply remove it. -- Tim Young Elevate Software www.elevatesoft.com |
Sat, Jun 3 2006 4:57 AM | Permanent Link |
Praveen | Thanks Tim.. Help is much appreciated.
Praveen "Tim Young [Elevate Software]" <timyoung@elevatesoft.com> wrote: Praveen, << DBISAM 3.17 and Yes, it happens in IDE and also in runtime. >> That explains it. In 4.x we trap for this condition and just return False. It is basically caused by the filter resulting in zero records in the dataset. The way Locate works is that it does the search and then tries to resync the found record with the current dataset, which in this case is filtered. If it can't resync because the located record falls out of the filtered dataset, then it can cause this exception. The exception is raised in db.pas, so we can't simply remove it. -- Tim Young Elevate Software www.elevatesoft.com |
This web page was last updated on Tuesday, September 17, 2024 at 04:19 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |