KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q129468: HOWTO: Update a Remote Table from a Local Table

Article: Q129468
Product(s): Microsoft FoxPro
Version(s): 
Operating System(s): 
Keyword(s): kbcode KbClientServer kbDatabase kbServer kbvfp300 kbvfp500 kbvfp600
Last Modified: 17-AUG-1999

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

- Microsoft Visual FoxPro for Windows, versions 3.0, 5.0, 6.0 
-------------------------------------------------------------------------------

SUMMARY
=======

You can update a remote table from a local table by using SQL Pass Through
commands. This article shows by example how to do it.

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

Code Sample
-----------

Use the SQLExec() command with the SQL-UPDATE command to update the remote data
with the local data as demonstrated in this code:

     * SQL Pass Through Example Showing How to Update a remote table from a
     * local FoxPro table.

     * multdata - local data table containing two fields (ckey and cfield).
     * cfield   - local char 10 field in multdata.
     * ckey     - local char 10 field used as the updating key value.
     *
     * zmultaoc - remote(on SQL Server) database that contains ztest2 table.
     * ztest2   - remote table that is going to be updated and has fields
     *            chardata and key that correspond the the local fields
     *            ckey and cfield.

     * Define datasource, user,and password values
     datasrc="test"
     user="sa"
     passwd=""

     handle=SQLCONNECT(datasrc,user,passwd)
     IF handle < 0
        WAIT WINDOW "Error: "+str(ERROR())+MESSAGE()
     ELSE
        WAIT WINDOW "Opening Test Data zmultaoc..ztest2" NOWAIT
        =SQLEXEC(handle,"use ztest2")

        WAIT WINDOW "Change data in BROWSE and Press CTRL+W" NOWAIT
        USE multdata
        BROWSE FIELDS cfield

        * Upload the data
        GO TOP
        SCAN
           SCATTER MEMVAR
           WAIT WINDOW "Updating:"+" "+ALLTRIM(m.ckey) + ;
              " "+ALLTRIM(m.cfield)NOWAIT
           retval=SQLEXEC(handle,"update zmultaoc..ztest2 set;
              chardata=?m.cfield where key=?m.ckey")

           IF retval < 0
              WAIT WINDOW "Error: Update failed"
           ENDIF
        ENDSCAN

        * Check changes
        WAIT WINDOW "BRINGING BACK CHANGES TO BE VIEWED" NOWAIT
        retval=SQLEXEC(handle,"select * from zmultaoc..ztest2")
        IF retval >= 0
           BROWSE
        ENDIF

        =SQLDISCONN(handle)
     ENDIF

Additional query words: passthrough

======================================================================
Keywords          : kbcode KbClientServer kbDatabase kbServer kbvfp300 kbvfp500 kbvfp600 
Technology        : kbVFPsearch kbAudDeveloper kbVFP300 kbVFP500 kbVFP600
Issue type        : kbhowto

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

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 1986-2002.