Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
BUG or am I missing something very obvious?
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Divers
Thread ID:
01184707
Message ID:
01184861
Vues:
17
I think it's a bug. The DELETE command should delete the same records that returned by query. BTW, UPDATE command works correctly
CREATE CURSOR crsTest (cCode char(4), cText C(20))

INSERT INTO crsTest VALUES('0001', "L 1")
INSERT INTO crsTest VALUES('0001', "L 1")
INSERT INTO crsTest VALUES('0001', "L 1")
INSERT INTO crsTest VALUES('0001', "L 1")
INSERT INTO crsTest VALUES('0002', "L 2")
INSERT INTO crsTest VALUES('0002', "L 2")
INSERT INTO crsTest VALUES('0002', "L 2")
INSERT INTO crsTest VALUES('0002', "L 2")

CREATE CURSOR crsTest1 (cCode char(4))
INSERT INTO crsTest1 VALUES('0001')

UPDATE crsTest ;
		SET cText = TRIM(cText) + " Updated" ;
	FROM crsTest ;
	LEFT JOIN crsTest1 ;
		ON crsTest.cCode = crsTest1.cCode ;
	WHERE crsTest1.cCode IS NULL

>
>CREATE CURSOR crsTest (cCode char(4))
>
>INSERT INTO crsTest VALUES('0001')
>INSERT INTO crsTest VALUES('0001')
>INSERT INTO crsTest VALUES('0001')
>INSERT INTO crsTest VALUES('0001')
>INSERT INTO crsTest VALUES('0002')
>INSERT INTO crsTest VALUES('0002')
>INSERT INTO crsTest VALUES('0002')
>INSERT INTO crsTest VALUES('0002')
>
>CREATE CURSOR crsTest1 (cCode char(4))
>INSERT INTO crsTest1 VALUES('0001')
>
>DELETE crsTest;
> FROM crsTest;
>LEFT JOIN crsTest1;
>     ON crsTest.cCode = crsTest1.cCode;
>     WHERE crsTest1.cCode IS NULL
>SELECT crsTest
>BROWSE NORMAL
>
>**** TA - DA whole crsTest cursor apears here
>**** no marked records at all.
>
>
<snip>>
>But crsTest is not a second table in the JOIN. the select:
>
>
>SELECT *;
> FROM crsTest;
>LEFT JOIN crsTest1;
>     ON crsTest.cCode = crsTest1.cCode;
>     WHERE crsTest1.cCode IS NULL
>
>
>works as expected.
--sb--
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform