Search this site
Embedded Files
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
Mon BBC SDL pas à pas
  • Accueil
  • BBC BASIC
  • BBC OS
  • BBC MODULES
  • RUBRIQUES
  • LIENS
  • More
    • Accueil
    • BBC BASIC
    • BBC OS
    • BBC MODULES
    • RUBRIQUES
    • LIENS

⇨ 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

PRINT

NEXT kligne

ENDIF

PRINT

ENDPROC

Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de

vos remarques, vos commentaires et de vos suggestions.

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.

Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse