Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Help with select statement
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Titre:
Help with select statement
Versions des environnements
Visual FoxPro:
VFP 9
Divers
Thread ID:
01335002
Message ID:
01335002
Vues:
59
I have a procedure that helps find certain events. I use a select statement to identify which events are to be searched. For example I need "Top Fuel" and it looks up anything with "Top Fuel" in the first part of the field.

Problem is now the field could have any event buried inside it. So it may have "Torco Top Fuel" now instead. I am having some difficulty finding the string properly in a select statement. Here is what works for "easy" matches. I am trying to find out if SubStr() with an At() command or other VFP command can help me find the selection.
Local yourselection, yourselectionwithlesscharacters, lcValue

lcValue = 'Top Fuel'

yourselection = '"' + Upper(Alltrim(lcValue)) +'%"'

Select Dist Session,.F. As initialck ;
	FROM icard ;
	WHERE UPPER(Session) Like &yourselection ;
	ORDER By Session Desc ;
	INTO Cursor csrListSession Readwrite

If _Tally > 0
	** Call form method that checks or unchecks the list depending on which class is run
	Thisform.check_qualifying_lists()
Else
	** WE DID NOT find any records so lets
	** lower the character count to see if we get
	** at hit on the first 11 characters
	yourselectionwithlesscharacters = Left(Upper(Alltrim(lcValue)),11)
	yourselection = '"' + yourselectionwithlesscharacters +'%"'
	Select Dist Session,.F. As initialck ;
		FROM icard ;
		WHERE Upper(Session) Like &yourselection ;
		ORDER By Session Desc ;
		INTO Cursor csrListSession Readwrite
	
	If _Tally > 0
		* Call form method that checks or unchecks the list depending on which class is run
		Thisform.check_qualifying_lists()

	Else


		** Now one last attempt at 5 characters
		** if this does not work then give up
		yourselection = LEFT(Upper(Alltrim(lcValue)),5)

                                         * this is where I need help with finding any records that Contain Top Fuel anywhere in the text.

		Select Dist Session,.F. As initialck ;
			FROM icard ;
			WHERE SUBSTR(Upper(Session),AT(yourselection,Upper(Session)),LEN(yourselection)) = yourselection ;
			ORDER By Session Desc ;
			INTO Cursor csrListSession Readwrite
		If _Tally > 0
			BROWSE
			* Call form method that checks or unchecks the list depending on which class is run
			* Thisform.check_qualifying_lists()

		Else

			** nothing found let them know
			MESSAGEBOX("Sorry, No Records Found for this Class",0,"NO Records Exist")

		Endif
	Endif
Endif
The last select is where I need the help. It returns way too many records because it is not constructed properly.
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform