Dear Sir/Madam


We are using Visual Foxpro (Version 8 Sp1) and ODBC (Visual Foxpro
Driver 6.01.8629.01).

We have a severe problem in that when a table has more than 50 fields in it
and we are doing a tableupdate()
the program crashes with a fatal error: C0000005.

I have noticed that this error occurs at the same point (record) as if you
have done a copy to array on the table.
I.e. at the point the array has reached its 64k limit. (does tableupdate()
use an array - if so can this array be cleared?)

We have managed to code around the error by saving each reacord after 30
fields have been replaced . Ie using TableUpdate more than once on the
table. The problem with this though is that performance is decreased
enormously (so much so that the software is unusable).


Could you please advise on how this issue could be resolved.



Regards

Simon Haynes

Re: TableUpdate() by Chad

Chad
Thu Jun 24 08:27:24 CDT 2004

Simon,

How do you have the Where Type set? If you have it set to 3 - Key and
Modified, the update created from TABLEUPDATE() will be really long and
can easily become to long to succeed. One option is to change the Where
Type to 1 - Key Only. This will shrink the where portion of the update
down to only one field (assuming you have a single primary key set). This
will require a unique key (which you should have anyway).

HTH,
Chad


On Thu, 24 Jun 2004 13:52:15 +0100, Simon Haynes
<simon.haynes@oxsoft.co.uk> wrote:

> Dear Sir/Madam
>
>
> We are using Visual Foxpro (Version 8 Sp1) and ODBC (Visual Foxpro
> Driver 6.01.8629.01).
>
> We have a severe problem in that when a table has more than 50 fields in
> it
> and we are doing a tableupdate()
> the program crashes with a fatal error: C0000005.
>
> I have noticed that this error occurs at the same point (record) as if
> you
> have done a copy to array on the table.
> I.e. at the point the array has reached its 64k limit. (does
> tableupdate()
> use an array - if so can this array be cleared?)
>
> We have managed to code around the error by saving each reacord after 30
> fields have been replaced . Ie using TableUpdate more than once on the
> table. The problem with this though is that performance is decreased
> enormously (so much so that the software is unusable).
>
>
> Could you please advise on how this issue could be resolved.
>
>
>
> Regards
>
> Simon Haynes
>
>



--
- Chad

Re: TableUpdate() by Leemi

Leemi
Thu Jun 24 10:21:28 CDT 2004

Hi Simon:

Along with Chad's suggestion, I would uncheck Backgroundfetching option in
the DSN. If you are using a connect string, set Backgroundfetch off like
this:

lcConnStr="DSN=Visual FoxPro Database;UID=;PWD=;"+ ;
"SourceDB="+HOME(2)+"data\Testdata.dbc;"+ ;
"SourceType=DBC;Exclusive=No;BackgroundFetch=No;Collate=Machine;"

I hope this helps.

This posting is provided "AS IS" with no warranties, and confers no rights.

Sincerely,
Microsoft FoxPro Technical Support
Lee Mitchell

*-- VFP9 Public Beta Now Available!! --*
Download the VFP9 beta here: http://msdn.microsoft.com/vfoxpro/

*-- VFP8 HAS ARRIVED!! --*
Read about all the new features of VFP8 here:
http://www.universalthread.com/VisualFoxPro/News/VFP8Release.asp
Purchase VFP8 here:
http://shop.microsoft.com/Referral/Productinfo.asp?siteID=11518

Keep an eye on the product lifecycle for Visual FoxPro here:
http://support.microsoft.com/default.aspx?id=fh;[ln];lifeprodv
- VFP5 Mainstream Support retired June 30th, 2003
- VFP6 Mainstream Support retired Sept. 30th, 2003



>Simon,

>How do you have the Where Type set? If you have it set to 3 - Key and
>Modified, the update created from TABLEUPDATE() will be really long and
>can easily become to long to succeed. One option is to change the Where
>Type to 1 - Key Only. This will shrink the where portion of the update
>down to only one field (assuming you have a single primary key set). This
>will require a unique key (which you should have anyway).

>HTH,
>Chad


On Thu, 24 Jun 2004 13:52:15 +0100, Simon Haynes
<simon.haynes@oxsoft.co.uk> wrote:

> Dear Sir/Madam
>
>
> We are using Visual Foxpro (Version 8 Sp1) and ODBC (Visual Foxpro
> Driver 6.01.8629.01).
>
> We have a severe problem in that when a table has more than 50 fields in
> it
> and we are doing a tableupdate()
> the program crashes with a fatal error: C0000005.
>
> I have noticed that this error occurs at the same point (record) as if
> you
> have done a copy to array on the table.
> I.e. at the point the array has reached its 64k limit. (does
> tableupdate()
> use an array - if so can this array be cleared?)
>
> We have managed to code around the error by saving each reacord after 30
> fields have been replaced . Ie using TableUpdate more than once on the
> table. The problem with this though is that performance is decreased
> enormously (so much so that the software is unusable).
>
>
> Could you please advise on how this issue could be resolved.
>
>
>
> Regards
>
> Simon Haynes
>
>



--
>- Chad


Re: TableUpdate() by Simon

Simon
Fri Jun 25 10:07:27 CDT 2004

Hi

Thanks for the reply .

I tried this and unfortunately I still get the c0000005 error.


Any other ideas?


Regards


Simon


"Lee Mitchell" <Leemi@online.microsoft.com> wrote in message
news:bB7Yr7fWEHA.2436@cpmsftngxa10.phx.gbl...
> Hi Simon:
>
> Along with Chad's suggestion, I would uncheck Backgroundfetching option in
> the DSN. If you are using a connect string, set Backgroundfetch off like
> this:
>
> lcConnStr="DSN=Visual FoxPro Database;UID=;PWD=;"+ ;
> "SourceDB="+HOME(2)+"data\Testdata.dbc;"+ ;
> "SourceType=DBC;Exclusive=No;BackgroundFetch=No;Collate=Machine;"
>
> I hope this helps.
>
> This posting is provided "AS IS" with no warranties, and confers no
rights.
>
> Sincerely,
> Microsoft FoxPro Technical Support
> Lee Mitchell
>
> *-- VFP9 Public Beta Now Available!! --*
> Download the VFP9 beta here: http://msdn.microsoft.com/vfoxpro/
>
> *-- VFP8 HAS ARRIVED!! --*
> Read about all the new features of VFP8 here:
> http://www.universalthread.com/VisualFoxPro/News/VFP8Release.asp
> Purchase VFP8 here:
> http://shop.microsoft.com/Referral/Productinfo.asp?siteID=11518
>
> Keep an eye on the product lifecycle for Visual FoxPro here:
> http://support.microsoft.com/default.aspx?id=fh;[ln];lifeprodv
> - VFP5 Mainstream Support retired June 30th, 2003
> - VFP6 Mainstream Support retired Sept. 30th, 2003
>
>
>
> >Simon,
>
> >How do you have the Where Type set? If you have it set to 3 - Key and
> >Modified, the update created from TABLEUPDATE() will be really long and
> >can easily become to long to succeed. One option is to change the Where
> >Type to 1 - Key Only. This will shrink the where portion of the update
> >down to only one field (assuming you have a single primary key set). This
> >will require a unique key (which you should have anyway).
>
> >HTH,
> >Chad
>
>
> On Thu, 24 Jun 2004 13:52:15 +0100, Simon Haynes
> <simon.haynes@oxsoft.co.uk> wrote:
>
> > Dear Sir/Madam
> >
> >
> > We are using Visual Foxpro (Version 8 Sp1) and ODBC (Visual Foxpro
> > Driver 6.01.8629.01).
> >
> > We have a severe problem in that when a table has more than 50 fields in
> > it
> > and we are doing a tableupdate()
> > the program crashes with a fatal error: C0000005.
> >
> > I have noticed that this error occurs at the same point (record) as if
> > you
> > have done a copy to array on the table.
> > I.e. at the point the array has reached its 64k limit. (does
> > tableupdate()
> > use an array - if so can this array be cleared?)
> >
> > We have managed to code around the error by saving each reacord after 30
> > fields have been replaced . Ie using TableUpdate more than once on the
> > table. The problem with this though is that performance is decreased
> > enormously (so much so that the software is unusable).
> >
> >
> > Could you please advise on how this issue could be resolved.
> >
> >
> >
> > Regards
> >
> > Simon Haynes
> >
> >
>
>
>
> --
> >- Chad
>