What means Err_DB_FrontLenTooLong DB_Err(1204)

Peter_Kuiper
Member Posts: 19
Our customer is getting error 1204 "in the database structure" (module 19 (database), Err_DB_FrontLenTooLong DB_Err) while backing up the database.
Does anyone know what the cause is of this error and how we can prevent it?
(Navision 3.01A)
Does anyone know what the cause is of this error and how we can prevent it?
(Navision 3.01A)
0
Comments
-
Internal Error 1204 in module 19:
#Err_DB_FrontLenTooLong
This error is only valid for CODE fields.
When a Code field is saved in the database then it is saved with an information byte.
If the Code field only contains numbers (123..) then the information byte contains the length of the numbers, if there is saved 5 numbers in a field then the information byte will be 5.
If alphanumerically signs are in the field then the information byte will always be 255.
The error occurs when the information byte for alphanumerically fields not is 255.
The error can be due to harddisk error or other program that have changed in the database.
LOCATE THE FIELDS WITH THE ERROR:
A DBTEST will tell you in which table the error is.
To localize in which field the error is, you must make a report with the following code for ALL Code fields in table with the error.
1. Make a report with the variable NEWCODE (type Code, length 132)
2. For all Code fields in table with the error, the following lines must be run.
EVALUATE(NEWCODE,FORMAT(Code field))
IF NEWCODE <> CodeField then (print 'here is an error') use for an example genSELECTLINES.
HOW TO CORRECT THE ERROR:
When knowing the fields with the error, then just retype the information in the fields.
If there is a lot of fields the make a report that will modify the field with NEWCODE, but remeber to print out what will be modified in the field, because the new contents might not be understandable.
I think, my solution in this topic (http://www.mibuso.com/forum/viewtopic.php?p=13312#13312) could fix the error:RecRef.OPEN(DATABASE::"YourCorruptTable"); IF RecRef.FIND('-') THEN REPEAT FOR I := 1 TO RecRef.FIELDCOUNT DO BEGIN FldRef := RecRef.FIELDINDEX(I); IF (UPPERCASE(FORMAT(FldRef.TYPE)) = 'CODE') AND (UPPERCASE(FORMAT(FldRef.CLASS)) = 'NORMAL') THEN FldRef.VALUE := DELCHR(UPPERCASE(FldRef.VALUE),'<>'); END; RecRef.MODIFY; UNTIL RecRef.NEXT = 0;
Timo Lässer
Microsoft Dynamics NAV Developer since 1997
MSDynamics.de - German Microsoft Dynamics Community - member of [clip]0 -
EVALUATE method didn't detect any field with bad data in my case, however above code (from a frame) did work. Thanks0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions