IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

récupérer le type des champs dans un fichier access


Sujet :

WinDev

  1. #1
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut récupérer le type des champs dans un fichier access
    Bonjour,

    je cherche une methode pour ouvrir un fichier access .mdb
    et recupérer le type des champs dans une table précise.

    j'ai déjà réussi a récuperer le nom des champs mais aucune idée comment récupérer le type des champs de la requete.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //--- code ---
    nResultat1 est un entier
    nResultat1=SQLConnecte("nom_de_mon_fichier.mdb,"","","","OLEDB","Microsoft.Jet.OLEDB.4.0")
     
    sCmdsql est une chaîne=""
    sCmdsql="SELECT  TOP 1 * FROM [nom_de_la_table_ou_vue] "
     
    SI SQLExec(sCmdsql,"sqlqry") ALORS
    	SQLInfoGene("sqlqry")
    	POUR i = 1 A SQL.NbCol
    		trace(""+SQL.TitreCol[i]+"")
    	FIN
    SINON
    	Info("Unable to Load Fields List")	
    FIN
    //---code---
    Je cherche depuis pas mal de temps, merci de l'aide que vous pourrez m'apporter.
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

  2. #2
    Membre régulier
    Inscrit en
    Août 2010
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 93
    Points : 95
    Points
    95
    Par défaut
    si tu as construit l'analyse,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SAI_Saisie1 = HListeRubrique(TableAccess,hLstDétail)
    un petit CVSvers Tableau pour avoir un tableau à 2 dimentions
    colonne 2
    les T pour Texte
    les N pour Numérique
    colonne 3
    - 1 et 28 pour les index
    - 10 et 14 pour les dates

    et le reste dans l'aide de HListeRubrique

    c'est quoi une "rubrique de type réel turbo" ?

  3. #3
    Membre éprouvé Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Points : 1 103
    Points
    1 103
    Par défaut
    Citation Envoyé par Laurent_m_paris Voir le message
    si tu as construit l'analyse,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SAI_Saisie1 = HListeRubrique(TableAccess,hLstDétail)
    un petit CVSvers Tableau pour avoir un tableau à 2 dimentions
    colonne 2
    les T pour Texte
    les N pour Numérique
    colonne 3
    - 1 et 28 pour les index
    - 10 et 14 pour les dates

    et le reste dans l'aide de HListeRubrique

    c'est quoi une "rubrique de type réel turbo" ?
    Si j'avais construit l'analyse je saurais le type de champs , lol
    Ici le but était que l'utilisateur donne un nom de fichier mdb clic sur un bouton
    et que l'on puisque utiliser les informations de type de champs pour "importer" dans windev donc je ne sais pas "a l'avance" combien de champs et leur type.

    Enfin après de nombreuses recherches et tatonnements, j'ai réussit a faire un code qui fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    pour RéelTurbo je sais Turbo pour TurboPascal peut etre ?
    ce message vous a aidé ! Un petit click sur fait toujours plaisir

    "Nos études ont montré que la probabilité qu’un programme corrigé fonctionne comme avant la correction est seulement de cinquante pour cent." Bev Littlewood & Lorenzo Strigini

    "Le logiciel, c’est comme le sexe, c’est meilleur quand c’est libre/gratuit." Linus Torvalds

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/04/2009, 10h33
  2. [JSTL] Récupérer les valeurs des champs dans un c:forEach
    Par SaladinDev dans le forum Taglibs
    Réponses: 3
    Dernier message: 06/01/2009, 20h56
  3. Lire des champs dans une fichier texte
    Par darkman13130 dans le forum C++Builder
    Réponses: 17
    Dernier message: 06/06/2008, 16h31
  4. Enregistrer les champs et type des dataset dans un fichier
    Par Andry dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/03/2008, 14h09
  5. [phpMyAdmin] Types des champs
    Par ph_anrys dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 30/05/2007, 11h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo