Article: Q263914
Product(s): Microsoft FoxPro
Version(s): WINDOWS:5.0,5.0a,6.0
Operating System(s):
Keyword(s): KbClientServer kbDatabase kbSQL kbvfp500 kbvfp500a KbDBFDBC kbGrpDSFox kbDSupport kbCod
Last Modified: 27-JUL-2001
-------------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Visual FoxPro for Windows, versions 5.0, 5.0a, 6.0
-------------------------------------------------------------------------------
SYMPTOMS
========
After performing a CREATEOFFLINE() function on a remote view, the resulting
table (.dbf) file record count is zero (0) while its file size indicates that it
should contain data.
RESOLUTION
==========
As a workaround, use the file size to calculate the number of expected records
and modify the table header through low-level file input/output (I/O) to reflect
that number. For additional information on this workaround, see the "References"
section later in this article.
MORE INFORMATION
================
This problem occurs when the data that is pulled by the remote view is in excess
of 50 Megabytes in size and the offline view is created on a less capable
computer than is needed.
NOTE: This problem may not be immediately reproducible.
Environment Specifics for Reproduction
--------------------------------------
- Pentium processor, 120 MHz clock speed
- 64 Megabytes of RAM
Steps to Reproduce Behavior
---------------------------
1. Create a new folder to contain this reproduction. For this example, call it
C:\OFFLINE.
2. Open the customer.dbf file that ships with Visual FoxPro, and copy it to the
reproduction folder as follows:
COPY TO c:\offline\customer
3. Place the following code into a program in your reproduction folder called
c:\offline\testprog.prg:
*!* Beginning of TESTPROG.PRG
USE CUSTOMER EXCLUSIVE
ALTER TABLE customer ADD COLUMN field1 c(10) NULL ;
ADD COLUMN field2 c(10) NULL ;
ADD COLUMN field3 c(10) NULL
lcRepString = "XXXXXXXXXX"
REPLACE ALL field1 WITH lcRepString, ;
field2 WITH lcRepString, ;
field3 WITH lcRepString
SET SAFETY OFF
COPY TO tempcust
FOR iCopy = 1 TO 2288
APPEND FROM tempcust
ENDFOR
SET SAFETY ON
ERASE tempcust.dbf
*!* Based on an initial record count of 92, the
*!* resulting table will contain 210,588 records
*!* and the file size will be 65,072,501 bytes.
4. Set your Visual FoxPro default folder to your reproduction folder as follows:
CD c:\offline
5. Run the testprog.prg as follows:
DO testprog
Once the preceding test program (or similar) is established, perform the
following:
6. Place the following code into a program in your reproduction folder called
c:\offline\testconn.prg:
*!*Beginning of TESTCONN.PRG
CLEAR ALL
CLOSE ALL
RELEASE ALL
CLOSE DATA ALL
CREATE DATABASE testoffline
CREATE CONNECTION connect1 CONNSTRING ;
'DRIVER={Microsoft Visual FoxPro Driver};' + ;
'Exclusive=Yes;SourceType=DBF;SourceDB='c:\offline\'
CREATE SQL VIEW remote_customer ;
AS SELECT * ;
FROM customer
=CREATEOFFLINE('remote_customer')
CLOSE DATA ALL
DIR remote_customer.dbf
7. Run the testconn.prg by using the following code:
DO testconn
8. If this process reproduces the problem, note that a file size of 65,072,501
bytes and 0 records appears.
REFERENCES
==========
For additional information, click the article number below to view the article
in the Microsoft Knowledge Base:
Q263902 Table/dbf File Record Count Incorrect Based on File Size
Additional query words:
======================================================================
Keywords : KbClientServer kbDatabase kbSQL kbvfp500 kbvfp500a KbDBFDBC kbGrpDSFox kbDSupport kbCodeSnippet kbSQLProg
Technology : kbVFPsearch kbAudDeveloper kbVFP500 kbVFP600 kbVFP500a
Version : WINDOWS:5.0,5.0a,6.0
Issue type : kbprb
=============================================================================