Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM General » View Thread |
Messages 1 to 10 of 11 total |
DBISAM Engine Error #8965 = Index page buffers corrupt in the table "myTable" |
Fri, Jun 15 2007 12:40 PM | Permanent Link |
Dave Harrison | For some reason, when I update a memo field using a TDBISAMTable, I get
"DBISAM Engine Erorr # 8965 Index page buffers corrupt in the table 'MyTable'". I repair the table using SysUtils and try again, and I get the same error. I am using 4.25 latest release (re-installed it today). This memo has a full text index in it and the very first time I try and post the changes, it gives me this error. I will try removing the full text index and try again. Dave |
Fri, Jun 15 2007 2:04 PM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Dave
I'd bet the full text index is involved. If you have written a custom one then you can't use dbsys for anything apart from looking at the table, and even then not if you use the FTI. If you do a search you'll see a lot of posts about this topic. Roy Lambert |
Fri, Jun 15 2007 2:45 PM | Permanent Link |
Dave Harrison | Roy Lambert wrote:
> Dave > > > I'd bet the full text index is involved. If you have written a custom one then you can't use dbsys for anything apart from looking at the table, and even then not if you use the FTI. > > If you do a search you'll see a lot of posts about this topic. > > Roy Lambert > Roy, My app does work (saves the record) if the fulltext index is removed. What do you mean "a custom one"? The full text index was defined in dbSys. The only thing I have added to my app re: full text index, was I added an exclude word list event that gets triggered when the fulltext index is added when a record is saved. So I guess when I rebuild the index in dbSys, it adds more words to the index than necessary, correct? Is this what's causing the problem? Dave |
Sat, Jun 16 2007 6:19 AM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Dave
>What do you mean "a custom one"? The full text index was defined in >dbSys. The only thing I have added to my app re: full text index, was I >added an exclude word list event that gets triggered when the fulltext >index is added when a record is saved. So I guess when I rebuild the >index in dbSys, it adds more words to the index than necessary, correct? >Is this what's causing the problem? That sounds like the sort of thing. If all you're doing is adding stop words, and the list doesn't change then I'd restructure the table to add these into the stop word list for the full text index then it will be fine in both DBSys and your app. Roy Lambert |
Sat, Jun 16 2007 7:53 AM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Dave,
<< What do you mean "a custom one"? The full text index was defined in dbSys. The only thing I have added to my app re: full text index, was I added an exclude word list event that gets triggered when the fulltext index is added when a record is saved. So I guess when I rebuild the index in dbSys, it adds more words to the index than necessary, correct? Is this what's causing the problem? >> Yep. If you use any customization of the full-text indexing, then you need to propogate that customization to anything that updates the table(s) using the full-text indexes. Otherwise you'll corrupt the indexes. -- Tim Young Elevate Software www.elevatesoft.com |
Sat, Jun 16 2007 3:44 PM | Permanent Link |
Dave Harrison | Tim Young [Elevate Software] wrote:
> Dave, > > << What do you mean "a custom one"? The full text index was defined in > dbSys. The only thing I have added to my app re: full text index, was I > added an exclude word list event that gets triggered when the fulltext index > is added when a record is saved. So I guess when I rebuild the index in > dbSys, it adds more words to the index than necessary, correct? Is this > what's causing the problem? >> > > Yep. If you use any customization of the full-text indexing, then you need > to propogate that customization to anything that updates the table(s) using > the full-text indexes. Otherwise you'll corrupt the indexes. > So if my program has an DBISAMEngine1.OnTextIndexFilter event that removes text from the paragraph when the record is saved (I'm removing tags from the text), and then I use DbSys to modify the table structure, it's going to cause my program to give me a corrupted index error? If so I'll either modify dbSys or leave the tags in the index. Dave |
Mon, Jun 18 2007 12:10 PM | Permanent Link |
Dave Harrison | Dave Harrison wrote:
> Tim Young [Elevate Software] wrote: > >> Dave, >> >> << What do you mean "a custom one"? The full text index was defined in >> dbSys. The only thing I have added to my app re: full text index, was >> I added an exclude word list event that gets triggered when the >> fulltext index is added when a record is saved. So I guess when I >> rebuild the index in dbSys, it adds more words to the index than >> necessary, correct? Is this what's causing the problem? >> >> >> Yep. If you use any customization of the full-text indexing, then you >> need to propogate that customization to anything that updates the >> table(s) using the full-text indexes. Otherwise you'll corrupt the >> indexes. >> > > So if my program has an DBISAMEngine1.OnTextIndexFilter event that > removes text from the paragraph when the record is saved (I'm removing > tags from the text), and then I use DbSys to modify the table structure, > it's going to cause my program to give me a corrupted index error? > > If so I'll either modify dbSys or leave the tags in the index. > > Dave Well, I've decided to pursue this some more and I'm looking at the source code for DbSys. I need to add an OnTextIndexFilter event to remove the tags in the full text index for one of the fields. Where do I do this in DbSys? This needs to be done whenever the index is rebuilt, as is the case when the table is re-indexed, altered, repaired or optimized. (This seems to be a heck of a lot of work just to allow my app to strip out tags in the text for a full text index-but it's going to have to get done.) Dave |
Mon, Jun 18 2007 12:22 PM | Permanent Link |
"Jose Eduardo Helminsky" | Dave
I just upload DBM (Database Manager for DBISAM 4) to Binaries group and it will do this task so easy. Eduardo |
Mon, Jun 18 2007 1:46 PM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Dave
You add it in the same way as in your app just add the text index event to the engine. Having a quick shuftie procedure TMainForm.FormCreate(Sender: TObject); begin >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I'd add the pointer to the proc just here eg Engine.OnTextIndexFilter := ftiMassage; Engine.FilterRecordCounts:=False; and this procedure ftiMassage(Sender: TObject; const TableName, FieldName: string; var TextToIndex: string); goes in the type declaration at the top of the form. Roy Lambert |
Mon, Jun 18 2007 11:45 PM | Permanent Link |
Dave Harrison | Roy Lambert wrote:
> Dave > > > You add it in the same way as in your app just add the text index event to the engine. > > Having a quick shuftie > > procedure TMainForm.FormCreate(Sender: TObject); > begin > >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> I'd add the pointer to the proc just here eg > > Engine.OnTextIndexFilter := ftiMassage; > Engine.FilterRecordCounts:=False; > > and this > > procedure ftiMassage(Sender: TObject; const TableName, FieldName: string; var TextToIndex: string); > > goes in the type declaration at the top of the form. > > Roy Lambert > Roy, Yes, that worked, thanks. Dave |
Page 1 of 2 | Next Page » | |
Jump to Page: 1 2 |
This web page was last updated on Sunday, May 19, 2024 at 08:46 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |