⇨ MENU ⇨ BIBLIOTHEQUE ⇨ mysqllib.bbc
FN_sqlColumns()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ mysqllib.bbc
FN_sqlColumns()
DESCRIPTION.
La fonction FN_sqlColumns() retourne le nombre de colonnes issue de la base de données.
SYNTAXE.
kcolonnes = FN_sqlColumns( port , entetes , tailles )
REMARQUES.
port doit être un nombre entier, correspondant à l'identifiant d'un port de communication, ouvert avec le module socklib.bbc.
entetes doit être l'identifiant d'un tableau de données, de type chaine de caractères ($), déclaré avec l'instruction DIM.
tailles doit être l'identifiant d'un tableau de données, numérique, déclaré avec l'instruction DIM.
entetes et tailles doivent être déclarés avec un nombre d'éléments égal à la valeur retournée par la fonction FN_sqlQuery(). Leurs éléments recevront les valeurs retournées par l'appel de la fonction FN_sqlColumns() et provenant de la base de données associée à port.
L'appel de la fonction FN_sqlColumns() va retourner un nombre entier donnant le nombre de colonnes correspondantes aux données qui vérifient requete. Si la valeur retournée est négative (<0) cela signifie qu'une erreur est survenue lors de la consultation de la base de données associées à port.
Rappel : pour le bon fonctionnement du module mysqllib.bbc, le module socklib.bbc doit être chargé au préalable.
Important : Il convient de toujours fermer le canal de communication, avec la proédure PROC_closesocket() du module socklib.bbc, correspondant à la connexion avec la base de données MySQL afin de prévenir toute dégradation de celle-ci.
La fonction FN_sqlConnect() est importée depuis le module mysqllib.bbc.
EXEMPLE.
REM --- INITIALISATON GENERALE ---
REM --- Importation des modules utiles ---
REM --- les valeurs en italique sont à personnaliser pour un bon fonctionnement ---
INSTALL @lib$ + "socklib.bbc"
INSTALL @lib$ + "mysqllib.bbc"
REM --- Ouverture d'une port de communication ---
kouvert = FN_opensocket( "votre adresse" , votreport )
IF kouvert < 0 THEN
PRINT "Erreur socket"
END
ENDIF
REM --- Connexion à la base de données ---
kversion$ = ""
ketat = FN_sqlConnect( kouvert , "utilisateur" , "code" , "testdb" , kversion$ )
IF ketat <> 0 THEN
PRINT "Erreur de connexion : " ; ketat
PRINT FN_sqlError
END
ENDIF
REM --- Envoi d'une requete à la base de données ---
krequete$ = "SELECT id, name FROM personne"
kcolonnes = FN_sqlQuery( kouvert , krequete$ )
IF kcolonnes < 0 THEN
PRINT "Erreur de requete : " ; kcolonnes
PRINT FN_sqlError
END
ELSE
PRINT "Nombre de colonnes : " ; kcolonnes
PROC_Lecture( kouvert , kcolonnes )
ENDIF
REM --- Fin du programme ---
PROC_closesocket( kouvert ) : PRINT "Connexion fermee !"
END
REM --- DEFINITIONS DES PROCEDURES PERSONNALISEES ---
REM --- Lecture des donnees ---
DEF PROC_Lecture( Qouvert , Qcolonnes )
REM --- Initialisation des tableaux de données ---
LOCAL LST_Noms$ , LST_Largeurs , LST_Donnees$
DIM LST_Noms$( Qcolonnes )
DIM LST_Largeurs( Qcolonnes )
DIM LST_Donnees$( 100 , 50 )
REM --- Lecture des colonnes ---
kcolonnes = FN_sqlColumns( Qouvert , LST_Noms$() , LST_Largeurs() )
IF kcolonnes < 0 THEN
PRINT "Erreur lecture colonnes"
END
ELSE
PRINT "Colonnes :"
FOR kindex = 1 TO kcolonnes
PRINT "- " ; LST_Noms$( kindex ) ; " (largeur " ; LST_Largeurs( kindex ) ; ")"
NEXT kindex
ENDIF
REM --- Lecture des donnees des enregistrements ---
klignes = FN_sqlFetch( Qouvert , LST_Donnees$() )
IF klignes < 0 THEN
PRINT "Erreur lors de la lecture des donnees !"
END
ELSE
PRINT "Résultats :"
FOR kligne = 1 TO klignes
FOR kcolonne = 1 TO kcolonnes
PRINT LST_Donnees$( kligne , kcolonne ) ; " " ;
NEXT kcolonne
NEXT kligne
ENDIF
ENDPROC
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la RETROGICIEL vous trouvez des suggestions simples et classiques pour
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
avec un exemple de résolution à télécharger pour vous inspirer.