⇨ MENU ⇨ BIBLIOTHEQUE ⇨ mysqllib.bbc
FN_sqlFetch()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ mysqllib.bbc
FN_sqlFetch()
DESCRIPTION.
La fonction FN_sqlFetch() retourne les enregistrements correspondant à une requête faite à une base de données.
SYNTAXE.
klignes = FN_sqlFetch( port , enregistrements )
REMARQUES.
port doit être un nombre entier, correspondant à l'identifiant d'un port de communication, ouvert avec le module socklib.bbc.
enregistrements doit être l'identifiant d'un tableau de données, de type chaine de caractères ($), déclaré avec l'instruction DIM. enregistrements doit avoir 2 dimensions, la première recevra les données de la ligne et la seconde les données de la colonne de l'enregistrement.
L'appel de la fonction FN_sqlFetch() va retourner un nombre entier donnant le nombre d'enregistrements retournés par 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_sqlFetch() 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"
kcolonne = FN_sqlQuery( kouvert , krequete$ )
IF kcolonne < 0 THEN
PRINT "Erreur de requete : " ; kcolonne
PRINT FN_sqlError
END
ELSE
PRINT "Nombre de colonnes : " ; kcolonne
PROC_Lecture( kouvert , kcolonne )
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.