Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
SQL LOGIN
|
SQL LOGIN {( source ; nomUtilisateur ; motDePasse ; * )} | ||||||||
Paramètre | Type | Description | ||||||
source | Chaîne |
![]() |
Nom de publication de base 4D ou Adresse IP de base distante ou Nom de source de données dans le gestionnaire ODBC ou "" pour afficher le dialogue de sélection |
|||||
nomUtilisateur | Chaîne |
![]() |
Nom d’utilisateur enregistré dans la source de données | |||||
motDePasse | Chaîne |
![]() |
Mot de passe de l’utilisateur | |||||
* | Opérateur |
![]() |
Appliquer à Debut SQL/Fin SQL Si omis : ne pas appliquer (base locale), si passé : appliquer | |||||
La commande SQL LOGIN vous permet d’ouvrir une connexion avec une source de données SQL, définie dans le paramètre source. Elle désigne la cible des requêtes SQL exécutées ultérieurement dans le process courant :
La source de données SQL peut être soit :
Vous pouvez passer dans source l’une des valeurs suivantes : une adresse IP, un nom de publication de base 4D, un nom de source de données ODBC, une chaîne vide ou la constante SQL_INTERNAL.
Si la connexion est établie, la variable système OK prend la valeur 1. Sinon, elle prend la valeur 0 et une erreur est générée. Cette erreur peut être interceptée via une méthode de gestion d’erreurs installée par la commande APPELER SUR ERREUR.
Attention : Les préfixes utilisés dans le paramètre source (IP, ODBC, 4D) doivent être écrits en majuscules.
Le paramètre utilisateur contient le nom de l’utilisateur autorisé à se connecter à la source de données externe. Par exemple, avec Oracle®, ce nom d’utilisateur peut être “Scott”.
Le paramètre motDePasse contient le mot de passe de l’utilisateur autorisé à se connecter. Par exemple, avec Oracle®, ce mot de passe peut être “tiger”.
Note : Dans le cas d’une connexion directe, si vous passez des chaînes vides dans les paramètres utilisateur et motDePasse, la connexion ne sera acceptée que si les mots de passe 4D ne sont pas activés dans la base cible. Sinon, la connexion est refusée.
Le paramètre facultatif * permet de changer la cible du code SQL exécuté au sein des balises Debut SQL/Fin SQL. Si vous ne passez pas ce paramètre, le code placé dans les balises Debut SQL/Fin SQL sera toujours adressé au moteur SQL interne de 4D, sans tenir compte du paramétrage défini par la commande SQL LOGIN. Si vous passez ce paramètre, le code SQL exécuté au sein des balises Debut SQL/Fin SQL sera adressé à la source définie par la commande.
Pour refermer la connexion courante et libérer la mémoire, il suffit d’exécuter la commande SQL LOGOUT. Toutes les requêtes SQL sont alors dirigées vers la base 4D SQL interne.
Si vous appelez une nouvelle fois SQL LOGIN sans avoir refermé explicitement la connexion courante, elle est automatiquement refermée.
Note : En cas d'échec d'une tentative de connexion externe via SQL LOGIN, la base 4D interne devient automatiquement la source de données courante.
Tous les paramètres sont facultatifs. Si aucun paramètre n’est passé, la commande provoquera l’affichage de la boîte de dialogue de connexion ODBC, permettant de désigner manuellement la source de données à laquelle se connecter.
La portée de cette commande est le process. Autrement dit, si vous souhaitez ouvrir deux connexions distinctes, vous devez créer deux process et ouvrir chaque connexion dans chaque process.
Attention : Il n'est pas possible d'ouvrir une connexion ODBC dans les contextes décrits ci-dessous. Ces configurations conduisent au blocage de l'application :
Cette instruction provoque l’affichage de la boîte de dialogue du gestionnaire ODBC :
SQL LOGIN
SQL LOGIN("ODBC:MonOracle";"Scott";"tiger";*)
Ouverture d'une connexion avec le moteur SQL interne de 4D :
SQL LOGIN(SQL_INTERNAL;$utilisateur;$motdepasse)
Ouverture d’une connexion directe avec l’application 4D Server exécutée sur le poste ayant l’adresse IP 192.168.45.34 et répondant sur le port TCP par défaut. Les requêtes SQL exécutées via la commande SQL EXECUTER seront redirigées vers cette connexion, les requêtes incluses dans les balises Debut SQL/Fin SQL ne seront pas redirigées.
SQL LOGIN("IP:192.168.45.34";"John";"azerty")
Ouverture d’une connexion directe avec l’application 4D Server exécutée sur le poste ayant l’adresse IP 192.168.45.34 et répondant sur le port TCP 20150. Les requêtes SQL exécutées via la commande SQL EXECUTER et les requêtes incluses dans les balises Debut SQL/Fin SQL seront redirigées vers cette connexion.
SQL LOGIN("IP:192.168.45.34:20150";"John";"azerty";*)
Ouverture d’une connexion directe en TLS avec l’application 4D Server exécutée sur le poste ayant l’adresse IP 192.168.45.34 et répondant sur le port TCP par défaut. TLS doit avoir été activé pour le serveur SQL sur l'application 4D Server :
SQL LOGIN("IP:192.168.45.34:19812:ssl";"Admin";"sd156") // Notez le ":ssl" après l'adresse IP et le port TCP
Ouverture d'une connexion directe avec l'application 4D Server exécutée sur la machine ayant l'adresse IPv6 2a01:e35:2e41:c960:dc39:3eb0:f29b:3747 et répondant sur le port TCP 20150. Les requêtes SQL exécutées via la commande SQL EXECUTER seront redirigées sur cette connexion ; les requêtes inclues dans les mots-clés Debut SQL/Fin SQL ne seront pas redirigées.
SQL LOGIN("IP:[2a01:e35:2e41:c960:dc39:3eb0:f29b:3747]:20150";"John";"qwerty")
Ouverture d’une connexion directe avec l’application 4D Server qui publie sur le réseau local une base dont le nom de publication est "DB_Compta". Le port TCP utilisé pour le serveur SQL des deux bases (défini dans la page "SQL" des Propriétés de la base) doit être identique (19812 par défaut). Les requêtes SQL exécutées via la commande SQL EXECUTER seront redirigées vers cette connexion, les requêtes incluses dans les balises Debut SQL/Fin SQL ne seront pas redirigées.
SQL LOGIN("4D:DB_Compta";"John";"azerty")
Cet exemple illustre les possibilités de connexion offertes par la commande SQL LOGIN :
TABLEAU TEXTE(aNames;0)
TABLEAU ENTIER LONG(aAges;0)
SQL LOGIN("ODBC:MonORACLE";"Marc";"azerty")
Si(OK=1)
`La requête suivante sera redirigée vers la base ORACLE externe
SQL EXECUTER("SELECT Name, Age FROM PERSONS";aNames;aAges)
`La requête suivante sera dirigée vers la base 4D locale
Debut SQL
SELECT Name, Age
FROM PERSONS
INTO :aNames, :aAges;
Fin SQL
`La commande SQL LOGIN suivante referme la connexion courante
`avec la base externe ORACLE et ouvre une nouvelle connexion avec
`une base externe MySQL
SQL LOGIN("ODBC:MySQL";"Jean";"qwerty";*)
Si(OK=1)
`La requête suivante sera redirigée vers la base MySQL externe
SQL EXECUTE("SELECT Name, Age FROM PERSONS";aNames;aAges)
`La requête suivante sera aussi redirigée vers la base MySQL externe
Debut SQL
SELECT Name, Age
FROM PERSONS
INTO :aNames, :aAges;
Fin SQL
SQL LOGOUT
`La requête suivante sera dirigée vers la base 4D locale
Debut SQL
SELECT Name, Age
FROM PERSONS
INTO :aNames, :aAges;
Fin SQL
Fin de si
Fin de si
Si la connexion est correctement établie, la variable système OK prend la valeur 1, sinon elle prend la valeur 0.
Produit : 4D
Thème : SQL
Numéro :
817
Nom intl. : SQL LOGIN
Modifié : 4D v11 SQL Release 3
Modifié : 4D v12
Modifié : 4D v16 R4
4D - Langage ( 4D v20 R7)