1

Re: Recorder 2002 to Recorder 6 transfer errors

After reinstalling Recorder 6 I transfered the records over. Last time there weren't too many errors and I hadn't invesigated them - this was very much a trial run. Since then we've added quite a number of records to our Oxfordshire database although not vast amounts. This time the process managed to transfer about 600 records and gave errors for about 2200 (our Oxon database is mainly still on Recorder 3). The errors are nearly all in the Taxon_Determination table. It looks like these are records added more recently. Anything after December 12th 2005 failed. Anything before that was fine.

Graham Hawker
Thames Valley Environmental Records Centre

2

Re: Recorder 2002 to Recorder 6 transfer errors

Did you install the patched versions supplied by Steve Wilkinson before doing the transfer? You can download them here. Various dictionary items were removed from the original release versions, but they've since been reinstated. This would cause determination errors, if you've got determinations against items in the dictionary that had been removed.

Charles

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

3

Re: Recorder 2002 to Recorder 6 transfer errors

The version we have is 6.6.8. I didn't do the upgrade to 6.7.2 because, as mentioned elsewhere that was a complete failure which left Recorder 6 unusable.

Graham Hawker
Thames Valley Environmental Records Centre

4

Re: Recorder 2002 to Recorder 6 transfer errors

Graham

if you could list a handful of the Taxon_List_Item_Key values for the failed Taxon_Determination records on this forum, then perhaps someone with 6.7.2 installed could check if those keys are present in the Taxon_List_Item table.  You could also check them against your own Taxon_List_Item table in 6.6.8.  I suspect that your Recorder 2002 database still has a later dictionary version than your Recorder 6 instance, hence the errors.

Regards,

John van Breda
Biodiverse IT

5 (edited by Graham Hawker 01-06-2006 14:47:50)

Re: Recorder 2002 to Recorder 6 transfer errors

As far as I can see the first line in the upgrade errors looks very dodgy - the taxon_determination_key has "p" in it and the taxon_list_item_key has the number NHMSYS0000527965.

After that the records include some species that have been transfered fine in record prior to the date mentioned above.
NBNSYS0000064724
NBNSYS0000061047
NBNSYS0000063281
NBNSYS0000064071

are examples.

Further research shows that it is the problem record. The record is almost impossible to select from the observation heiracy - Recorder 2002 tends to close when tried or if I manage to select it and try to delete it or edit it it freezes.

More strangely its a pipistrelle record imported with other bat records but while the other pipistrelles ended up as pipiistrelle records in Recorder this one ended up a pygmy pipistrelle.

Graham Hawker
Thames Valley Environmental Records Centre

6

Re: Recorder 2002 to Recorder 6 transfer errors

Those TLIs listed are all present in 672. They are:

Common Mouse-ear
Rosebay Willowherb
Wild Basil
Greater Knapweed

The TLI with the dodgy determination key of 'p' is also present; it's a Soprano Pipistrelle.

Charles

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

7

Re: Recorder 2002 to Recorder 6 transfer errors

Charles

Thanks - see my edit. Looking again I see your right. Pygmy pisistrelle and soprano pipistrelle are the same thing and there was both a common pipistrelle and soprano pistrelle record for the same place imported at the same time.

Graham Hawker
Thames Valley Environmental Records Centre

8

Re: Recorder 2002 to Recorder 6 transfer errors

Are those records present in 6.6.8?  If not then an upgrade to 6.7.2 should fix the problem.

John van Breda
Biodiverse IT

9

Re: Recorder 2002 to Recorder 6 transfer errors

The real problem though lies in Recorder 2002. The transfer process indentified the problem within Recorder 2002.

Graham Hawker
Thames Valley Environmental Records Centre

10

Re: Recorder 2002 to Recorder 6 transfer errors

Can you correct or remove the bad record manually from R2002? Anything with a key of 'p' is obviously invalid and shouldn't be there, so it needs to be fixed as a priority.

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

11

Re: Recorder 2002 to Recorder 6 transfer errors

No I can't. Trying to select it causes Recorder to quit or freeze.

However I've been experimenting. I opened the database in Open Office. I had no idea if this would help and I was just experimenting. I managed to delete the offending line in the Taxon_Determination table. I didn't even know whether this would effect the database or just a copy being used by Open Office. Anyway on reopening Recorder the ofending record has gone. I don't know if you can get away with just deleting a line in one table without causing other problems. I think I might trying repeating the process with another copy of the database.

Graham Hawker
Thames Valley Environmental Records Centre

12

Re: Recorder 2002 to Recorder 6 transfer errors

If you do this, then you should also take a note of the Taxon_Occurrence_Key for the taxon determination record, and then delete the Taxon_Occurrence record with that key (after you have deleted the Taxon_Determination record).  Assuming there are no other determinations for the occurrence this will clean it up properly.

John van Breda
Biodiverse IT

13 (edited by Graham Hawker 02-06-2006 09:13:33)

Re: Recorder 2002 to Recorder 6 transfer errors

Thanks John I'll give it a go.

Graham Hawker
Thames Valley Environmental Records Centre

14

Re: Recorder 2002 to Recorder 6 transfer errors

Sorry, I wasn't clear; I meant to delete the determination and taxon occurrence from the underlying database tables when I mentioned deleting 'manually', which is what you ended up doing anyway. Interesting that you used OpenOffice. It never occurred to me that this could be used as an alternative to Access. Seems like a great idea, though, as I'm a big fan of OOo.

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

15

Re: Recorder 2002 to Recorder 6 transfer errors

It certainly seems to have worked though I'm still getting transfer problems which may be more to do with needing to upgarde Recorder 6.

I removed the record in 3 tables - Taxon determination, Taxon occurance and taxon occurance data. It is interesting that Open Office can apprently deal quite happily with editing the Access database while Access 2000 can't.

Graham Hawker
Thames Valley Environmental Records Centre

16

Re: Recorder 2002 to Recorder 6 transfer errors

Hi

I took the plunge and have installed R6. I have now tried to migrate my data from R2002 without success. as I have had a host of errors - 56,000+ at the first attempt, but after some advice from Nigel Hymas of Dorset Software, the second attempt at migrating the data produced 53,849+ errors (when only 62491 records were transferred). The errors are put in the UpgradeError database, but I have no idea why the errors have been logged or how to correct them. I have only the remainder of this one life left and do not wish to spend all my days working on Recorder!

So far I have been sent a CD with R6 v6.7.2 and then sent v6.6.8 to use for the second attempt at moving the data. I see, above, that upgrading to v6.9.2 is advised, but is that likely to prevent the thousands of errors? The errors occur with nearly every record in Taxon Occurrence Data and Taxon Determination with some in Location name. How can R2002 allow so many errors to occur? Can I really have made such a hash of importing data using the Import Wizard? (Polite answers only!).

Any ideas out there as to what I should be looking for? Any ideas about changes I need to make, and is there a way to do those changes other than individually?

In some despair... I would welcome your advice.

Cheers, Ian

17

Re: Recorder 2002 to Recorder 6 transfer errors

Judging by the number of errors you're getting, this sounds like it could be caused by a zeroed date/time (it looks like 00:00) being present in the CHANGED_DATE and/or similar date/time fields. Have a look at this thread:

http://forums.nbn.org.uk/viewtopic.php?id=63

The current beta version - 6.9.2 - still has this problem although it has been reopened and should be fixed in the final release of 6.9.3 hopefully. It's actually not really a bug in Recorder 6, but rather a bug in Recorder 2002 that appeared at some point in the past and has been quietly populating these fields with what Recorder 6 considers to be invalid data. You might want to have a look in some of the tables in your R2K2 database - have a look in TAXON_OCCURRENCE to start with. If you have 00:00 values in CHANGED_DATE or ENTRY_DATE fields then they're going to get rejected.

Mike Weideli, one of the authorised Recorder experts, sent me some code that fixed the dodgy data in R2K2, so it's probably worth contacting him if this is indeed what the problem is.

Charles

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

18 (edited by Stuart 11-10-2006 11:04:49)

Re: Recorder 2002 to Recorder 6 transfer errors

I apologise in advance that this is a very long post, but I hope it will prove helpful!

There are five issues I am aware of that cause problems in Rec2002 to Rec6 transfer:

1. Corrupt memo fields in nbndata.mdb

This seems to be an occasional bug in versions of the Jet engine before v3.51 that screws up memo fields. It plagued us in the early days of Rec2K, but hopefully it is now rare. Memo fields are used widely in Recorder for comments and descriptions.

You usually find out that you have this problem because compressing the database gives an error like this:

The Microsoft Jet database engine stopped the process because you and another user are attempting to change the same data at the same time

The transfer process will fail if this problem is present in the nbndata.mdb you are trying to copy across!

So, try compressing your database (Tools - Database Tools - Compact). If it works you are OK, if you get this error then there are various things you can try to fix it. Check the discussions on the old Recorder group and/or do a Google search on the problem.

2. RECORD_TYPE entries markes as "System supplied"

This is my fault and due to a bug in the Import Wizard I wrote for Rec2002 :(. When it creates RECORD_TYPE entries in the database it marks them as "System supplied". Consequently, they are not copied to Rec6 by the transfer process (anything marked as "System supplied" is assumed to be present already in Rec6). As a consequence, any TAXON_OCCURRENCE rows that rely on these RECORD_TYPEs fail to transfer and therefore any TAXON_DETERMINATION, TAXON_OCCURRENCE_DATA, etc, etc that rely on the TAXON_OCCURRENCE also fail. Just one or two RECORD_TYPEs failing to transfer can cascade - resulting in thousands of other rows failing!

This is the most likley reason you saw "thousands" of errors reported.

Easy to fix. Open nbndata.mdb in Access and look at the RECORD_TYPE table. Only records with keys starting with "NBNSYS" should be marked a System supplied (-1 in the SYSTEN_SUPPLIED_DATA column). If any other records have a -1 here, change it to 0 (zero).

3. CHANGE_DATE is 00:00

Most tables in the Recorder data model have CHANGED_BY and CHANGE_DATE fields which record when the row was last edited. CHANGE_DATE is normally empty (Null) if the row has not been changed. However, if the row has been exported to Excel or text files (e.g. CSV), null gets exported as zero. If it is then re-imported, the value 00:00 ends up in the CHANGE_DATE field. This is interpreted by Access as midnight on 31 December 1899.

In the SQL Server verison of Recorder, CHANGE_DATE is a "smalldatetime" type field. SQL Server uses a different sytem for storing dates to Access and "31/12/1899" is outside the range of dates that can be stored in a smalltimedate field. Consequently, rows with a CHANGE_DATE of 00:00 fail to transfer.

This is fairly easy, although rather tedious, to fix. Open nbndata.mdb using Access and use update queries to relace 00:00 with Null in CHANGE_DATE columns. The following VBA will do this for you in one shot:

Option Compare Database
Option Explicit

Sub zerodate()
Dim db As DAO.Database
Dim t As DAO.TableDef
Dim f As DAO.Field
Dim sql As String

Set db = CurrentDb

For Each t In db.TableDefs
    If Left(t.name, 4) <> "MSys" Then
        For Each f In t.Fields
            If f.Type = dbDate Then
                sql = "UPDATE " & t.name & " SET [" & f.name & "]=Null WHERE ([" & f.name & "]=#00:00:00#);"
                db.Execute (sql)
            End If
        Next
    End If
Next

End Sub

To use this:
- Open nbndata.mdb,
- create a new module,
- go to Tools -References and make sure "Microsoft DAO 2.5/3.5 compatibility library" is ticked,
- paste this code in
- run it.

This has been fixed in later versions of the transfer process (I tested the version on 6.8.1 STANDALONE CD). This now replaces 00:00 in a smalldatetime field automatically with Null.

4. Records transferred between copies of Recorder 3 with incorrect TAXON_LIST_ITEM_KEY

This is a pretty obscure problem ultimately due to a deficiency in the record transfer process between copies of Recorder 3 which was well known at the time. When the built in Export/Import facilities in Recorder 3 were used to transfer records between copies, any SPECIES which had been added by the user at the source copy were not automatically transferred to the destination copy. There were ways of sending the necessary SPECIES records, but this could easily get forgotten. The consequence was RECORDS in the receiving copy of Recorder 3 with a species key with no corresponding entry in the SPECIES table.

When Recorder 3 data was transferred to Rec2K using the "Bulk move" facility, user added SPECIES were handled fully and were transfered to Rec2K. But if the necessary SPECIES entry didn't exist in Rec3 (because of failure to copy them accross from another copy of Rec3 from which records had been transferred), then of course there was no SPECIES record to transfer. The consequence years down the line is that the TAXON_LIST_ITEM_KEY in the TAXON_DETERMINATION derived from Rec3 will have an integer (e.g. 723) instead of a 16-character NBN key.

Note that this integer is NOT the original Recorder 3 SPECIES key, but an arbitary running integer generated by the Bulk export process when the Rec3 data was transferred to Rec2K.

Such TAXON_DETERMINATION rows will fail when transferred to Rec6 because the TAXON_LIST_ITEM doesn't exist.

You can easily check for this problem by opening nbndata.mdb in Access and looking at the TAXON_DETERMINATION table. View the table sorted by TAXON_LIST_ITEM and any rows with  such integer keys will come to the top and be obvious.

One way to fix this is to track back through your archives and establish where the original Rec3 transfer file came from. I found a few cases on trying to transfer the Hoverfly Recording Scheme to Rec6 relating to three ancient Rec3 to Rec3 transfers. I was able to go back to the originator in each case and determine what the species should be and hence fully fix the problem (by replacing the integers in TAXON_LIST_ITEM_KEY with the correct key).

Another stratergy would simply be to delete the offending records from Rec2002. Globally, nothing is being lost because the records were transferred from sombody else - who presumably still has the originals in their system.

5. Taxon and/or Biotope Dictionary items in Recorder 2002 that are not present in Rec6

This is the subject of most of the postings in this thread - so I don't need to repeat it.

NOTE: YOU WILL ALMOST CERTAINLY SEE ERRORS REPORTED BY THE TRANSFER PROCESS EVEN IF IT WORKS PERFECTLY!

There are two reasons for this:

1. Items in the dictionaries of Rec2002 that are not marked as "sytem supplied". There seem to be some TAXON_FACTS, TAXON_DESIGNATIONS, etc that are not marked a "system supplied" but should be. The transfer process attempts to copy them across but they fail because they are already present in Rec6.

2. Vice-county locations added by the Import Wizard. When you install the Rec2002 Import Wizard, it installs a set of locations representing GB and Irish vice-counties. These are used to support the import of vice-county numbers. Because the ImportWizard functionality has become part of the core of Recorder 6, these entries are now "System supplied". Consequently, the transfer process will try and copy them across, but will fail because they already exist in Rec6. This effects LOCATION, LOCATION_NAME, GRID_SQUARE and LOCATION_ADMIN_AREAS and the rows all have keys starting "JNCCIMPW".

You can safetly ignore these errors. They wont affect the transfer of your data because the necessary rows are already in Rec6.

Of course the trick is realising which you do and don't have to worry about.  Hopefully, these notes will help. This has been at least partially fixed in version 6.9 of Recorder 6 that we are currently testing. This no longer reports failures to copy a record into Rec6 as an error if the record is already present as a "System supplied" row in Rec6. But things like GRID_SQUARE and LOCATION_NAMEs belonging to the ImportWizard locations do still get reported because these tables don't have a SYSTEM_SUPPLIED_DATA flag.

19 (edited by Stuart 11-10-2006 10:55:54)

Re: Recorder 2002 to Recorder 6 transfer errors

I disagree with Charles Roper - the "CHANGFE_DATE containing zero" problem HAS been fixed in the latest transfer process (on the 6.8.1 standalone CD).

However, for completeness, I have edited my post about transfer problems to include this issue, and the fix for people using 6.7.2 transfer.

20

Re: Recorder 2002 to Recorder 6 transfer errors

Hi Stuart

I thank you for your suggestions in your long posting. I have been working through the items to see what I can do, but I have not been able to do all I would like:

1. Corrupt memo fields in nbndata.mdb

I have not seen the MS Jet engine error so hope this does not apply

2. RECORD_TYPE entries marked as "System supplied"

I checked the RECORD_TYPE table and there are just 85 records all are "NBNSYS" records with -1.

3. CHANGE_DATE is 00:00:00

I have many thousands of these, especially in TAXON_LIST_ITEM (where I thought I had deleted several hundred already). However, I cannot use your code as I have Access 2002 and it wishes to upgrade the database before letting me do anything like create a new module. I suspect that if I update the databae it will no longer be available for Recorder. If my assumption is wrong I would be grateful to hear that.

4. Records transferred between copies of R3....

I only started to import data with R2002 just over a year ago. I have not used R3 so hope that this is not an issue. In the tables TAXON_LIST_ITEM and TAXON_DETERMINATION all the records start with 'BMSSYS', 'NBNSYS' or 'NHMSYS'.

5. Taxon and/or biotope Dictionary items....

I have not previously followed this thread, but will have to look at it.

If I can use a module in Access 2002 I will try your suggestion. Will it be likely to work?

Many thanks to those who have offered suggestions!

All the best, Ian

21

Re: Recorder 2002 to Recorder 6 transfer errors

Stuart, the "CHANGED_DATE containing zero" was indeed fixed, but there was another date/time field in there that that also contained zero - I think it may be the entry date field, but I don't have Recorder here to test on - that wasn't initially picked up and thus isn't fixed. It's broken in my version of 6.9.2 at any rate; zero values in the remaining affected field causes rejects. I'll recheck this again, though, as the rejects may have been caused by something else.

Charles

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

22

Re: Recorder 2002 to Recorder 6 transfer errors

I've now been able to double check the report I sent regarding the "CHANGED_DATE containing zero" bug still existing. It is CHECKED_DATE containing zero values that is still causing problems in 6.9.2 (the CHANGED_DATE is fixed). It has, apparently, been fixed in 6.9.3, though. So in the final release, people won't experience problems with this, hopefully.

Charles

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

23

Re: Recorder 2002 to Recorder 6 transfer errors

About a month after installing R6 I can now open it. I thank Charles Roper for guidance and Mike Weideli and Nigel Hymas for assistance. Eventually, the resolution of my multitude of errors was to delete many thousands of instances of a date 00:00:00, leaving just 376 errors. The migration process did not finish properly and I had to use Cancel with an ODBC error - this was after uninstalling R6, reinstalling v6.6.8 and then upgrading via the file on the website to v6.7.2. I am now in the position of others who have written to the Forum, in that I want to check if R6 is working properly. However, the instructions with R6 do not seem to say how one can judge that it is safe to delete R2002. Are there certain tests we should do to check?

Is there a further program upgrade that I should do?  I am not keen on the idea of just a beta version.

Another posting said that the add-ins in R2002 are migrated to R6, but I can find no mention under Tools of any Import Wizard or any other option that even remotely looks like a means of importing data from an Excel spreadsheet. I hate Help screens in programs (I remain a person who prefers a paper manual) and of course R6 Help provides none for the question I am asking (unless it does but under headings other than 'import data' or 'import'). I understand that it is possible to import data from spreadsheets - but, please, how does it work? Are there any instructions? I failed to find any on the NBN website.

I also need to install the BOU checklist of 2006 but can find no upgrades using the search option on the NBN website. This Forum was told it was available by the beginning of September - please, where is it?

Is there a R6 user guide? I have only found a R2002 user guide so far, and with R6 things are not exactly the same.

Hopefully, some answers to these questions and with the cooperation of R6 I may be up and running soon! Thanks in anticipation!

Cheers, Ian

24

Re: Recorder 2002 to Recorder 6 transfer errors

Hi Ian,

I think Sarah would be best placed to answer most of your questions. While you're waiting you might want to take a look at the Recorder development plan for an idea as to what is happening and when:

http://forums.nbn.org.uk/uploads.php?file=Outline%20of%20Recorder%206%20Development%20Plan%20for%20forum%20revised%2003%20Oct%2006.rtf

To answer your query about the Import Wizard; it is no longer an add-in. Importing from spreadsheets (and other formats) can done via Tools > Import Data...

Hope that's of help.

Charles

Charles Roper
Digital Development Manager | Field Studies Council
http://www.field-studies-council.org | https://twitter.com/charlesroper | https://twitter.com/fsc_digital

25

Re: Recorder 2002 to Recorder 6 transfer errors

Hi Charles

Many thanks for the link to the development file - I look forward to 6.9.3 which is imminent - so it says!

I have tried to import my first file with only 13 records. Why am I not surprised, but the import failed with the following message:

     Failed to generate import table 'Taxon_Occurrence'. The import job was aborted.

     The error that occurred was

     Syntax error in date in query expression '#10.30.2006#'

     This is probably due to an error of the definition of the import process.



I do not use American dates, so I don't know where that has come from. As I do not have a template (and now need to create one that will suit all my import files because they all have the same format) I had to go through all the options (unfortunately one is the outdated RSPB checklist that  i used in R2002). For the date field it showed dd/mm/yyyy so I am puzzled why it failed saying that the import process was not properly defined. I did have to unhide the Determiner field and enter the observer's name in each record - that got rid of all the errors identified in the definition process. The error occurred on the second step of the importing. In R2002 this file would have imported successfully as it was 'clean', with a full set of matches in the database.

Any ideas about how to overcome this?

Having a working R6 is so close now.....!

Cheers, Ian