Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com

Accueil

 
4D v19.8
Ouvrir datastore

Ouvrir datastore 


 

Ouvrir datastore ( infoConnexion ; localID ) -> Résultat 
Paramètre Type   Description
infoConnexion  Objet in Propriétés de connexion utilisées pour atteindre le datastore distant
localID  Texte in Identifiant à affecter au datastore ouvert sur l'application locale (obligatoire)
Résultat  Objet in Objet datastore

La commande Ouvrir datastore connecte l'application à la base de données 4D identifiée par le paramètre infoConnexion et retourne un objet datastore correspondant associé à l'alias local localID.

Les échanges avec le datastore distant sont automatiquement gérés via les requêtes REST.

La base de données infoConnexion 4D doit être disponible en tant que datastore distant, c'est-à-dire :

  • son serveur Web doit être lancé avec http et/ou https activé,
  • son option Activer le service REST doit être sélectionnée (voir Page Web/Ressource REST),
  • au moins une licence client est disponible.

Si aucune base de données correspondante n'est trouvée, Ouvrir datastore renvoie la valeur Null.

localID est un alias local de la session ouverte sur le datastore distant. Si localID existe déjà dans l'application, il est utilisé. Sinon, une nouvelle session localID est créée lors de l’utilisation de l’objet datastore. 

Une fois la session ouverte, les instructions suivantes deviennent équivalentes et renvoient une référence sur le même objet datastore :

 $myds:=Ouvrir datastore(connectionInfo;"myLocalId")
 $myds2:=ds("myLocalId")
  //$myds et $myds2 sont équivalents

Passez dans connectionInfo un objet décrivant le datastore distant auquel vous souhaitez vous connecter. Il peut contenir les propriétés suivantes (toutes les propriétés sont optionnelles, à l'exception de hostname) :

PropriétéTypeDescription
hostnameTexteNom ou adresse IP du datastore distant + ":" + numéro de port (le numéro de port est obligatoire)
userTexteNom d'utilisateur
passwordTexteMot de passe utilisateur
idleTimeoutEntier longDélai (timeout) d'inactivité de la session (en minutes), à l'issue duquel la session est automatiquement fermée par 4D. Si omis, la valeur par défaut est de 60 (1h). La valeur ne peut pas être inférieure à 60 (si une valeur inférieure est transmise, le timeout est défini sur 60). Pour plus d'informations, reportez-vous à Fermeture des sessions.
tlsBooléenUtiliser une connexion sécurisée(*). Si omis, faux par défaut. L'utilisation d'une connexion sécurisée est recommandée autant que possible.
typeTexteDoit être "4D Server"

(*)Si tls est vrai, le protocole HTTPS est utilisé si :

  • HTTPS est activé sur le datastore distant
  • Le port donné correspond au port HTTPS configuré dans les propriétés de la base
  • Un certificat valide et une clé de chiffrement privée sont installés dans la base (voir ).
    Sinon, erreur "1610 - Une requête vers l’hôte: "{xxx}" a échoué" est générée

Connexion à un datastore distant sans utilisateur/mot de passe :

 C_OBJET($connectTo;$remoteDS)
 $connectTo:=Creer objet("type";"4D Server";"hostname";"192.168.18.11:8044")
 $remoteDS:=Ouvrir datastore($connectTo;"students")
 ALERTE("Ce datastore distant contient "+Chaine($remoteDS.Students.all().length)+" étudiants")

Connexion à un datastore distant avec utilisateur/mot de passe/timeout/tls :

 C_OBJET($connectTo;$remoteDS)
 $connectTo:=Creer objet("type";"4D Server";"hostname";"192.168.18.11:4443";"user";"marie";"password";$pwd;"idleTimeout";70;"tls";Vrai)
 $remoteDS:=Ouvrir datastore($connectTo;"students")
 ALERTE("Ce datastore distant contient "+Chaine($remoteDS.Students.all().length)+" étudiants")

Travailler avec plusieurs datastores distants :

 C_OBJET($connectTo;$frenchStudents;$foreignStudents)
 $connectTo:=Creer objet("hostname";"192.168.18.11:8044")
 $frenchStudents:=Ouvrir datastore($connectTo;"french")
 $connectTo.hostname:="192.168.18.11:8050"
 $foreignStudents:=Ouvrir datastore($connectTo;"foreign")
 ALERTE("Il y a "+Chaine($frenchStudents.Students.all().length)+" étudiants français")
 ALERTE("Il y a "+Chaine($foreignStudents.Students.all().length)+" étudiants étrangers")

En cas d'erreur, la commande retourne Null. Si le datastore distant ne peut pas être atteint (adresse incorrecte, wb serveur non lancé, http et https non activés, etc.)  l'erreur 1610 "Une requête vers l’hôte: "{xxx}" a échoué. Vous pouvez intercepter cette erreur avec une méthode installée par APPELER SUR ERREUR



Voir aussi  

ds
Environnement 4D

 
PROPRIÉTÉS 

Produit : 4D
Thème : ORDA - DataStore
Numéro : 1452
Nom intl. : Open datastore

Cette commande modifie la variable système ErrorCommande(s) éligible(s) à l'exécution dans un process préemptif

 
PAGE CONTENTS 
 
HISTORIQUE 

Créé : 4D v18

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v19)
4D - Langage ( 4D v19.1)
4D - Langage ( 4D v19.4)
4D - Langage ( 4D v19.5)
4D - Langage ( 4D v19.6)
4D - Langage ( 4D v19.7)
4D - Langage ( 4D v19.8)