DOCUMENT:Q163029  24-MAR-2000  [foxpro]
TITLE   :FIX: Default Value Does Not Update Table in Local/Remote View
PRODUCT :Microsoft FoxPro
PROD/VER:3.0b
OPER/SYS:
KEYWORDS:kbvfp kbvfp300bBUG kbvfp500fix

======================================================================
-------------------------------------------------------------------------------
The information in this article applies to:

 - Microsoft Visual FoxPro for Windows, version 3.0b 
 - Microsoft Visual FoxPro for Macintosh, version 3.0b 
-------------------------------------------------------------------------------

SYMPTOMS
========

In Visual FoxPro 3.0b, when a view is created and default value is set using
DBSETPROP, the newly-appended records contain the default value in a
Browse/Append window; but the default values disappear after TABLEUPDATE() and
REQUERY().

RESOLUTION
==========

Instead of using default value in a view, manually code some ON KEY LABEL that
inserts the default values when appending a new record. Since this bug is fixed
in Visual FoxPro 5.0, the best way to avoid it is upgrading to Visual FoxPro
5.0.

STATUS
======

Microsoft has confirmed this to be a bug in the Microsoft products listed at the
beginning of this article. This bug has been corrected in Visual FoxPro 5.0.

MORE INFORMATION
================

Steps to Reproduce Behavior
---------------------------

1. Copy and Paste the following code, and save this file as Prog1.prg under
   C:\KBTEST

         CLOSE DATABASES
         SET DEFAULT TO C:\KBTEST

         * Create a database and open it

         IF NOT FILE('Table1.dbf')
            CREATE DATA Data1
            CREATE TABLE Table1 (ID C (8) Primary Key, State C (2))
            SET MULTILOCKS ON
            =CURSORSETPROP('Buffering', 5, 'Table1' )
         ELSE
            OPEN DATABASE Data1 EXCLUSIVE
         ENDIF

         * Create a view based on Table1

         CREATE SQL VIEW View1 AS SELECT * FROM Table1

         = DBSETPROP('View1.ID', 'Field', 'KeyField', .T.)
         = DBSETPROP('View1.ID', 'Field', 'UpdateName','Table1.ID')
         = DBSETPROP('View1.ID', 'Field', 'Updatable', .T.)
         = DBSETPROP('View1.State', 'Field', 'Updatable', .T.)
         = DBSETPROP('View1', 'View', 'SendUpdates', .T.)

         * Set the view DefaultValue property
         = DBSETPROP('View1.State', 'Field', 'DefaultValue', "'WA'")

         SELECT 0
         USE View1
         BROWSE

2. Run Prog1.prg.

3. With the View1 Browse window open, append a records by pressing CTRL+Y, and
   then enter a unique ID value. Add several records this way. The default value
   of field STATE is automatically inserted as "WA."

4. Close the View1 Browse window.

5. In the Command window, issue the following commands to refresh the update to
   Table1, and refresh View1 by retrieving data from Table1:

         = TABLEUPDATE(.T.)
         = REQUERY()

6. Open the Table1 and View1 Browse windows. The STATE field value, "WA," of the
   newly appended records turns into blank.

Additional query words:

======================================================================
Keywords          : kbvfp kbvfp300bBUG kbvfp500fix 
Technology        : kbHWMAC kbOSMAC kbVFPsearch kbAudDeveloper kbVFP300bMac kbVFP300b
Version           : 3.0b
Issue type        : kbbug
Solution Type     : kbfix

=============================================================================

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS
PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.  MICROSOFT DISCLAIMS
ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  IN NO
EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR
ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL,
CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF
MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.  SOME STATES DO NOT ALLOW THE EXCLUSION
OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES
SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 2000.