⇨ MENU ⇨ BIBLIOTHEQUE ⇨ mysqllib.bbc
FN_sqlConnect()
⇨ MENU ⇨ BIBLIOTHEQUE ⇨ mysqllib.bbc
FN_sqlConnect()
DESCRIPTION.
La fonction FN_sqlConnect() établie une connexion à une base de données.
SYNTAXE.
ketat = FN_sqlConnect( port , utilisateur , code , base , RETURN version )
REMARQUES.
port doit être un nombre entier, correspondant à l'identifiant d'un port de communication, ouvert avec le module socklib.bbc.
utilisateur doit être une chaine de caractères identifiant l'utilisateur.
code doit être une chaine de caractères correspondant au mot de passe pour ouvrir la base de données.
base doit être une chaine de caractères correspondant à l'identifiant de la base de données.
version doit être l'identifiant de la variable de type chaine de caractères ($) existante qui recevra la valeur correspondant à la version de la base de données.
L'appel de la fonction FN_sqlConnect() va retourné un nombre entier signifiant :
- 0, connexion établie ;
- 1, échec de la lecture de l'en-tête ;
- 2, délai d'attente dépassé pour la lecture de l'en-tête ;
- 3, ID de séquence inattendu ;
- 4, charge utile trop volumineuse ;
- 5, échec de la lecture de la charge utile ;
- 6, délai d'attente dépassé pour la lecture de la charge utile ;
- 7, version du protocole non prise en charge ;
- 8, méthode d'authentification non prise en charge ;
- 9, longueur de chaîne auth1 inattendue ;
- 10, longueur de chaîne auth2 inattendue ;
- 11, échec d'écriture sur le socket ;
- 12, nouvelle tentative de connexion
- 13, erreur MySQL ;
- 14, méthode d'autorisation non prise en charge ;
- 15, type de paquet inattendu.
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"
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.