1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
sNomFichierMdb est un chaîne = "H:\Data\testPba.mdb" //nom du fichier mdb
sNomTable est une chaîne = "Table1" //nom de la table
bConnec est un booléen //booleen pour l'ouverture de la connection
sdSqlqry est une Source de Données //pour le resultat de la requete sql
sCmdSql est une chaîne="" //chaine pour la requete sql
nResultat est un entier //pour le hdecritconnexion
all_fields est une chaîne //pour la liste des champs de la table
all_keys est une chaîne //pour la liste des champs clef
one_field est une chaîne //pour traiter un champ
Countof_fields est une chaîne //nombre de champs
sFieldName est une chaîne //nom du champ
sFieldType est une chaîne //type du champ numerique/texte
sFieldSubType est une chaîne //type du champ (correspondance windev)
sFieldLength est une chaîne //longeur du champ
nResultat=HDécritConnexion("Connexion","","",sNomFichierMdb,"",hOledbAccess2000,hOLectureEcriture)
SI nResultat=Vrai ALORS
bConnec=HOuvreConnexion("Connexion")
SI bConnec=Vrai ALORS
SI PAS HChangeConnexion("*","Connexion") ALORS
Info("Can't Change Connexion")
RETOUR
SINON
sCmdSql="SELECT TOP 1 * FROM ["+sNomTable+"] " // un select pour recupérer les champs
SI HExécuteRequêteSQL(sdSqlqry,"Connexion",hRequêteSansCorrection,sCmdSql)
all_fields = HListeRubrique(sdSqlqry,hLstDétailPlus)
Countof_fields=ChaîneOccurrence(all_fields,RC)+1
POUR I = 1 A Countof_fields
one_field = ExtraitChaîne(all_fields,I,RC)
Trace(""+one_field+"")
sFieldName= ExtraitChaîne(one_field,1,TAB)
sFieldType= ExtraitChaîne(one_field,2,TAB)
sFieldSubType= ExtraitChaîne(one_field,3,TAB)
sFieldLength= ExtraitChaîne(one_field,4,TAB)
//suivant le type windev on peux inserer un traitement particulier
SELON sFieldSubType
CAS hRubBinaire : //hRubBinaire
CAS hRubBooléen : //hRubBooléen
CAS hRubCaractère : //hRubCaractère
CAS hRubDate6 : //hRubDate6
CAS hRubDate8 : //hRubDate8
CAS hRubDateHeure : //hRubDateHeure
CAS hRubDurée : //hRubDurée
CAS hRubEntier1 : //hRubEntier1
CAS hRubEntier2 : //hRubEntier2
CAS hRubEntier4 : //hRubEntier4
CAS hRubEntier8 : //hRubEntier8
CAS hRubEntierNonSigné1 : //hRubEntierNonSigné1
CAS hRubEntierNonSigné2 : //hRubEntierNonSigné2
CAS hRubEntierNonSigné4 : //hRubEntierNonSigné4
CAS hRubEntierNonSigné8 : //hRubEntierNonSigné8
CAS hRubHeure : //hRubHeure
CAS hRubIdAuto : //hRubIdAuto
CAS hRubIdAuto4 : //hRubIdAuto4
CAS hRubImage : //hRubImage
CAS hRubInvalide : //hRubInvalide
CAS hRubMémoBinaire : //hRubMémoBinaire
CAS hRubMémoBinaire4 : //hRubMémoBinaire4
CAS hRubMémoTexte : //hRubMémoTexte
CAS hRubMémoUnicode : //hRubMémoUnicode
CAS hRubMonétaire : //hRubMonétaire
CAS hRubNumEnr : //hRubNumEnr
CAS hRubNumérique : //hRubNumérique
CAS hRubRéel4 : //hRubRéel4
CAS hRubRéel8 : //hRubRéel8
CAS hRubRéelTurbo : //hRubRéelTurbo
CAS hRubTexte : //hRubTexte
CAS hRubTexteUnicode : //hRubTexteUnicode
AUTRE CAS :
Info("Field WindevType Unknow")
RETOUR
FIN
//affichage des resultats ici un simple trace
Trace("Champ n°:"+I)
Trace(" nom:"+sFieldName)
Trace(" Type:"+sFieldType)
Trace(" TypeWindev:"+sFieldSubType)
Trace(" longeur:"+sFieldLength)
Trace("----");
FIN
SINON
Info("Can't Load Fields List")
RETOUR
FIN
FIN
SINON
Info("Can't Open Connexion")
FIN
SINON
Info("Can't Connect to mdb file")
RETOUR
FIN |
Partager