Access:FileLabel.Open() Error with SV Memory Driver

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.

Am I overlooking something?

Regards,

Edward

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.

I have forgotten about the 8-character name thing. This app has only one memory table.

Thank you for the suggestions.

Hi Bruce,

I tried using open() and it returned “Access Denied” which makes more sense. I assume this meant the table was opened exclusively elsewhere.

Thanks for the reminder. It is sad that I am forgetting more than I can remember.

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.

Thanks you all for the help you have given me.