DOCUMENT:Q139183 11-FEB-2000 [foxpro] TITLE :BUG: View Not Accurate with One-to-Many Grandchild Relation PRODUCT :Microsoft FoxPro PROD/VER:WINDOWS:3.0,3.0b,5.0,5.0a,6.0 OPER/SYS: KEYWORDS:kbprogramming kbvfp kbvfp300bBUG kbvfp500aBUG kbvfp500bugkbbuglist ====================================================================== ------------------------------------------------------------------------------- The information in this article applies to: - Microsoft Visual FoxPro for Windows, versions 3.0, 3.0b, 5.0, 5.0a, 6.0 ------------------------------------------------------------------------------- SYMPTOMS ======== When you use the SET RELATION TO and SET SKIP TO commands to relate a parent table into many records in a child table that relates to many records in a grandchild table, the view window may actually indicate that a one-to-one relationship exists from the child table into the grandchild table. CAUSE ===== The display of the relation between the child and grandchild table in the view window is incorrect. WORKAROUND ========== To determine if the relation is constructed properly, use the BROWSE FIELDS or LIST FIELDS command with fields from the parent, child, and grandchild tables to verify that the relation is correct. STATUS ====== Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available. MORE INFORMATION ================ Sample Code to Demonstrate Problem *beginning of code WAIT WINDOW "For the following to work," + ; CHR(13) + "Please take your hand off the mouse" ; TIMEOUT 2 CLOSE DATA * create the testing tables SET SAFETY OFF CREATE TABLE customer (cno c(5), company c(20)) INSERT INTO customer (cno, company) VALUES ("B9278","1st record") CREATE TABLE invoices (cno c(5), ino N(4,0)) INSERT INTO invoices (cno, ino) VALUES ("B9278",1106) INSERT INTO invoices (cno, ino) VALUES ("B9278",1107) CREATE TABLE detail (ino N(4,0), pno c(5)) INSERT INTO detail (ino, pno) VALUES (1107,"AAAAA") INSERT INTO detail (ino, pno) VALUES (1107,"BBBBB") INSERT INTO detail (ino, pno) VALUES (1107,"CCCCC") INSERT INTO detail (ino, pno) VALUES (1106,"AAAAA") INSERT INTO detail (ino, pno) VALUES (1106,"BBBBB") SET SAFETY ON CLOSE ALL USE detail.DBF EXCLUSIVE IN 0 SELECT detail DELETE TAG ALL INDEX ON ino TAG ino SET ORDER TO ino USE invoices.DBF EXCLUSIVE IN 0 SELECT invoices DELETE TAG ALL INDEX ON cno TAG cno SET ORDER TO cno SET RELATION TO ino INTO detail SET SKIP TO detail USE customer.DBF IN 0 SELECT customer SET RELATION TO cno INTO invoices SET SKIP TO invoices WAIT WINDOW "Notice how the relation looks in the view"+ ; CHR(13)+"Press ESC to continue" NOWAIT SET VIEW ON BROWSE FIELDS customer.cno, invoices.ino, detail.pno CLOSE ALL CLOSE DATA USE detail.DBF EXCLUSIVE IN 0 SELECT detail DELETE TAG ALL INDEX ON ino TAG ino SET ORDER TO ino USE invoices.DBF EXCLUSIVE IN 0 SELECT invoices DELETE TAG ALL INDEX ON cno TAG cno SET ORDER TO cno SET RELATION TO ino INTO detail *set skip to detail USE customer.DBF IN 0 SELECT customer SET RELATION TO cno INTO invoices SET SKIP TO invoices, detail WAIT WINDOW "NOW notice how the relation looks in the view"+ ; CHR(13)+"Press ESC to continue" NOWAIT ACTIVATE WINDOW VIEW BROWSE FIELDS customer.cno, invoices.ino, detail.pno CLOSE ALL KEYBOARD("{ESC}") && to remove view window *end of code Additional query words: kbvfp600 ====================================================================== Keywords : kbprogramming kbvfp kbvfp300bBUG kbvfp500aBUG kbvfp500bug kbbuglist Technology : kbVFPsearch kbAudDeveloper kbVFP300 kbVFP300b kbVFP500 kbVFP600 kbVFP500a Version : WINDOWS:3.0,3.0b,5.0,5.0a,6.0 Issue type : kbbug ============================================================================= 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.