Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v18.4
Open datastore
|
Open datastore ( infoConnexion ; localID ) -> Résultat | ||||||||
Paramètre | Type | Description | ||||||
infoConnexion | Objet |
![]() |
Propriétés de connexion utilisées pour atteindre le datastore distant | |||||
localID | Texte |
![]() |
Identifiant à affecter au datastore ouvert sur l'application locale (obligatoire) | |||||
Résultat | Objet |
![]() |
Objet datastore | |||||
La commande Open 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 :
Si aucune base de données correspondante n'est trouvée, Open 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:=Open 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é | Type | Description |
hostname | Texte | Nom ou adresse IP du datastore distant + ":" + numéro de port (le numéro de port est obligatoire) |
user | Texte | Nom d'utilisateur |
password | Texte | Mot de passe utilisateur |
idleTimeout | Entier long | Dé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. |
tls | Booléen | Utiliser 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. |
type | Texte | Doit être "4D Server" |
(*)Si tls est vrai, le protocole HTTPS est utilisé si :
Connexion à un datastore distant sans utilisateur/mot de passe :
C_OBJECT($connectTo;$remoteDS)
$connectTo:=New object("type";"4D Server";"hostname";"192.168.18.11:8044")
$remoteDS:=Open datastore($connectTo;"students")
ALERT("Ce datastore distant contient "+String($remoteDS.Students.all().length)+" étudiants")
Connexion à un datastore distant avec utilisateur/mot de passe/timeout/tls :
C_OBJECT($connectTo;$remoteDS)
$connectTo:=New object("type";"4D Server";"hostname";"192.168.18.11:4443";"user";"marie";"password";$pwd;"idleTimeout";70;"tls";True)
$remoteDS:=Open datastore($connectTo;"students")
ALERT("Ce datastore distant contient "+String($remoteDS.Students.all().length)+" étudiants")
Travailler avec plusieurs datastores distants :
C_OBJECT($connectTo;$frenchStudents;$foreignStudents)
$connectTo:=New object("hostname";"192.168.18.11:8044")
$frenchStudents:=Open datastore($connectTo;"french")
$connectTo.hostname:="192.168.18.11:8050"
$foreignStudents:=Open datastore($connectTo;"foreign")
ALERT("Il y a "+String($frenchStudents.Students.all().length)+" étudiants français")
ALERT("Il y a "+String($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 ON ERR CALL.
Produit : 4D
Thème : ORDA - DataStore
Numéro :
1452
Créé : 4D v18
4D - Langage ( 4D v18)
4D - Langage ( 4D v18.4)
4D - Langage ( 4D v18.6)