Corrupted object table? Subtype error V4 SP1.

Hi, Has anyone encountered similar problem… [V4SP1 client only connection to native db.] I am trying to declare a global variable in a codeunit: Name=StatusLog DataType=rec Subtype=Status Log The problem is that c/side does not seem to know that the Status Log table exists, well not completely anyway! Status log DOES EXIST in my database allthough it is a table i have created myself, so you won’t find it in a cronus db. If i paste the words “Status Log” into the subtype field- no problem. If i use the table ID value no problem c/side converts in to the name Status Log. HOWEVER if i just type part of the name e.g. “Statu” and tab out of field or press enter I receive the standard error that u get when you have entered the name of a table incorrectly. i.e. “You cannot enter ‘Statu’ in Table No. The cursor in in front on the invalid character”. The problem goes even further… If i get thing thing defined using the first two methods described, the codeunit compiles no problem. However when the codeunit runs, as soon as the code attempts to modify the StatusLog record the system returns an error, stating that “The table does not exist any longer”! Clearly the object table has a serious error. I have tried exporting the related objects as text and re-importing them then recompile. I have tried restarting client. All to no avial. Anyone know how to remedy? I should also add that the objects have been renumbered which was undoubtedly the original cuase, but this should definately not result in corruption of this type! Cheers. Jon

Similar problem: Try to create a field in any table and call it TimeStamp (in Native DB). Then create a backup or export a fob and restore at a SQL database. Hehe. There seem to be some reserved words. For these words there is no validity check in the system when used as variables or fieldnames or tablenames. try to use something starting with PUBLIC. Exactly the same (I have a table with the names “Publication”, “Publication DataItem” and so on. Navision just accepts this when using the ID or the exact name (it is even case sensitive). Maybe Robert can enlighten us.

Hi Thomas, Thanks for the reply, i see what u mean about certian words screwing up object designer, (however another developer here can’t replicate sames issue on his p.c. with example of Public). However I have changed my table name to “Uninstall Status Log”, which sorted out the object designer subtype error, i.e. i can type Unin… and C/side does the rest, but this does not cure my problem when running the object. I now get the error “The Uninstall Status Log” table does not exist any longer. Finally sussed out why… a process further down was deleting the Tabledata object from the database as a way of deleting the records. I suspect message would have been different if we had just deleted the records using recref.deleteall. The message was a bit misleading cos it refers to the table rather than the tabledata being missing. Thanks anyway!

The Timestamp field is not checked. c/side wants to reserve that field for the rowversion field on the table (you could say the check is the error you get when you create the table:-) I guess the Public problem is down to AL reserving the keyword.

a good one: When will we get that rowversion field ? I would really need it.