Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 8 of 8 total
Thread AV with Generated Field
Wed, Dec 5 2007 2:18 AMPermanent Link

Richard Harding
Hi Tim,

I have a table of stock items defined as:

CREATE TABLE "Stock"
(
    "Category" VARCHAR(3) COLLATE "ANSI" NOT NULL,
    "Number" INTEGER,
    "Berco" VARCHAR(20) COLLATE "ANSI",
    "OEM" VARCHAR(20) COLLATE "ANSI",
    "Identity" CHAR(20) COLLATE "ANSI" GENERATED ALWAYS AS
          IF(Berco Is Null OR Berco = '', IF(OEM Is Null OR OEM = '', Category || '/' ||
CAST(Number AS VARCHAR), OEM), LEFT(Berco,6)),
     . . . . . . . . . . .

This has been working OK for several months.

Now, using EDBManager, the above expression works if Berco and OEN are both NULL.  If
either are present then the error "Access violation at address 004DEBF6 in module
'edbmgr.exe'. Read of address 00000088" occurs.

I have deleted the column Identity from the table and re-entered the column and all is
working again.

I have a copy of a EDB backup file with the error if you think it is worthwhile looking at it.

--
Richard Harding
Windella Computer Knowhow
28 Freeman Drive
Lochinvar NSW 2321
Phone:   61 2 4930 7336
Mobile:   0419 016 032
email:   rharding@wck.com.au
Wed, Dec 5 2007 4:55 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Richard,

<< Now, using EDBManager, the above expression works if Berco and OEN are
both NULL.  If either are present then the error "Access violation at
address 004DEBF6 in module 'edbmgr.exe'. Read of address 00000088" occurs.

I have deleted the column Identity from the table and re-entered the column
and all is working again. >>

So, the problem is completely gone with a re-enter of the exact same
expression ?

<< I have a copy of a EDB backup file with the error if you think it is
worthwhile looking at it. >>

Yes, please send it over via email.

--
Tim Young
Elevate Software
www.elevatesoft.com

Thu, Dec 6 2007 4:24 PMPermanent Link

Richard Harding
>>So, the problem is completely gone with a re-enter of the exact same
expression ?

That is what I thought.  There is an index stIndentityIND(Category, Identity).  It is this
index that is causing the problem.  Deleting this index fixes the problem, it was not the
deletion of the Identity column that fixed it.

Identity is defined as:

   "Identity" CHAR(20) COLLATE "ANSI" GENERATED ALWAYS AS
         IF(Berco Is Null OR Berco = '', IF(OEM Is Null OR OEM = '', Category || '/' ||
CAST(Number AS VARCHAR), OEM), LEFT(Berco,6)),

The error started occurring on entry of a new stock record after working at a customer
site for several months. The entry of any of the 2 fields in the computation of the
Identity (that is, Berco or OEM) caused the error.

I am not sure if it is valid to create an index with a computed field but it did work for
sometime.  This is with version 1.06.  Previously they were using 1.05b.

I have already emailed the backup file.

--
Richard Harding
Windella Computer Knowhow
28 Freeman Drive
Lochinvar NSW 2321
Phone:   61 2 4930 7336
Mobile:   0419 016 032
email:   rharding@wck.com.au


Thu, Dec 6 2007 4:37 PMPermanent Link

Richard Harding
The bit where i said that it use to work previously with the index stIndenityIND(Category,
Identity).

Nah, not true.  It was the introduction of this index that caused the problem.

--
Richard Harding
Windella Computer Knowhow
28 Freeman Drive
Lochinvar NSW 2321
Phone:   61 2 4930 7336
Mobile:   0419 016 032
email:   rharding@wck.com.au


Fri, Dec 7 2007 3:28 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Richard,

<< The bit where i said that it use to work previously with the index
stIndenityIND(Category, Identity).

Nah, not true.  It was the introduction of this index that caused the
problem. >>

Okay, I will see what the issue is and get a fix in for the next build.

--
Tim Young
Elevate Software
www.elevatesoft.com

Fri, Dec 7 2007 4:05 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Richard,

When do you see the AV ?  When adding a new row, updating an existing row,
etc. ?

Thanks,

--
Tim Young
Elevate Software
www.elevatesoft.com

Sat, Dec 8 2007 1:47 AMPermanent Link

Richard Harding
>>When do you see the AV ?  When adding a new row, updating an existing row,
etc. ?

It happens when either the Berco number or OEM number is entered which are the 2 columns
used in the calculation of the Identity column.  It happens when inserting a new row or
updating an existing row.

Richard . . . . .

Mon, Dec 10 2007 12:16 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Richard,

<< It happens when either the Berco number or OEM number is entered which
are the 2 columns used in the calculation of the Identity column.  It
happens when inserting a new row or updating an existing row. >>

Okay, I've got it now.  It was due to a change that was made with respect to
when the table column expressions are compiled.  A fix will be available
soon in 1.07.

--
Tim Young
Elevate Software
www.elevatesoft.com

Image