My code just stopped working and I found an unusual error from opening a memory table using ABC.
I have a memory table in a NetTalk WebMethod procedure. It was working for months before I started making changes to it a few weeks ago.
Yesterday, this method stopped working altogether. During testing I found that the memory table I used could not be opened. When Access.FileLabel.Open() is called. The Error() returns “Entry Not Found.”
This is not one of the standard errors for opening a file. Has anyone seen this before? I am using C11.1 with both Memory and MS SQL Drivers.
No idea about “Entry Not Found”, but if it’s an error opening the table, is it possible that you have more than one memory table with a similar name? If the first 8 characters are the same, you can get name clashes.
The way to work around that is to use the NAME() attribute.
You cannot inspect ErrorCode after calling Access method. There are properties you can inspect, but by the time you see it Errorcode is already overwritten.
For testing, just call OPEN directly and the n check errorcode.
A common misunderstanding of ABC programmers where Access… Open() uses a DCT defined access mode which almost always is Shared.
The Clarion language OPEN() command defaults to Exclusive open always that is Deny ALL, read the Help.
You need to use SHARE(File) or OPEN(File, DenyNone + ReadWrite). The DenyNone and ReadWrite are equates. See the Help for the hex values as one Nibble is for Other’s Access and one is for Your Access.
Thank you Carl. That was the issues with Open(). I forgot to specify 42H (DenyNone+ReadWrite) as you mentioned. It came back to me after I poke around a bit more.
The silly thing is that after scratching my head for a couple of days, I dawn on me that my DLL may be corrupted. All is well again after I replaced all the Clarion DLL files on the test computer.