Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Loop through record's fields
Message
 
À
19/09/2007 12:51:22
Jay Johengen
Altamahaw-Ossipee, Caroline du Nord, États-Unis
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 8 SP1
Divers
Thread ID:
01255535
Message ID:
01255537
Vues:
14
>How can I loop through all the fields (assuming only one record to start, but there could be more eventually) and concatenate all the resulting values into one string?
>
>
>SELECT ;
>	TRANSFORM('', '@T') + '|'              AS PID_01_00_Empty, ;
>	TRANSFORM(Patient.PtPn, '@T') + '|'    AS PID_02_00_PatientID, ;
>	TRANSFORM(Patient.PtPn, '@T') + '|'    AS PID_03_00_PatientIdentifierList, ;
>	TRANSFORM(Patient.PtPn, '@T') + '|'    AS PID_04_00_AlternatePatientID, ;
>	TRANSFORM(Patient.PtLName, '@T') + '|' AS PID_05_00_LastName, ;
>	TRANSFORM(Patient.PtFName, '@T') + '|' AS PID_05_01_FirstName, ;
>	TRANSFORM(Patient.PtMI, '@T') + '|'    AS PID_05_02_MiddleName, ;
>	TRANSFORM('', '@T') + '|'              AS PID_06_00_Empty, ;
>	TRANSFORM(Patient.PtDOB, '@T') + '|'   AS PID_07_00_DateOfBirth, ;
>	TRANSFORM(Patient.PtSex, '@T') + '|'   AS PID_08_00_Sex, ;
>	TRANSFORM('', '@T') + '|'              AS PID_09_00_Empty, ;
>	TRANSFORM(Patient.PtRn, '@T') + '|'    AS PID_10_00_Race, ;
>	TRANSFORM(Patient.PtAdd1, '@T') + '|'  AS PID_11_00_Addr, ;
>	TRANSFORM(Patient.PtAdd2, '@T') + '|'  AS PID_11_01_Addr2, ;
>	TRANSFORM(Patient.PtCity, '@T') + '|'  AS PID_11_02_City, ;
>	TRANSFORM(Patient.PtZip, '@T') + '|'   AS PID_11_03_St, ;
>	TRANSFORM(Patient.PtPhone, '@T') + '|' AS PID_11_04_Zip, ;
>	TRANSFORM('', '@T') + '|'              AS PID_12_00_Empty, ;
>	TRANSFORM(Patient.PtPhone, '@T') + '|' AS PID_13_00_HomePhone, ;
>	TRANSFORM('PH', '@T') + '|'            AS PID_13_01_HomePhoneType, ;
>	TRANSFORM(Patient.EMail, '@T') + '|'   AS PID_13_02_HomeEmail, ;
>	TRANSFORM(Patient.PtEmpPh, '@T') + '|' AS PID_14_00_WorkPhone, ;
>	TRANSFORM(Patient.PtEmpPh, '@T') + '|' AS PID_14_01_WorkEmail, ;
>	TRANSFORM('', '@T') + '|'              AS PID_15_00_Empty, ;
>	TRANSFORM('', '@T') + '|'              AS PID_16_00_Empty, ;
>	TRANSFORM('', '@T') + '|'              AS PID_17_00_Empty, ;
>	TRANSFORM(Patient.PtPn, '@T') + '|'    AS PID_18_00_TempChartNumber, ;
>	TRANSFORM(Patient.PtSSN, '@T') + '|'   AS PID_19_00_SSN ;
>	FROM Patient ;
>	WHERE Patient.PtPn == m.PtPn ;
>	INTO CURSOR (ADT_PID)
>
CURSORTOXML() will be the most easier way :-), but if you want this in a loop:
lcResultString
SELECT MyTable
SCAN
   FOR lnFor = 1 TO FCOUNT([MyTable])
       lcString = lcString + EVALUATE(FIELDS(lnFor,[MyTable])) + [,]
   NEXT
ENDSCAN
lcString = LEFT(lcString, LEN(lcString)-1)
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform