Aller au contenu principal
Version : Suivant

Open datastore

Historique
ReleaseModifications
21Qodly cloud discontinued
20 R6Support access to Qodly cloud instances
20 R4Nouvelle propriété passwordAlgorithm
18Ajout

Open datastore( connectionInfo : Object ; localID : Text ) : 4D.DataStoreImplementation

ParamètresTypeDescription
connectionInfoObjectPropriétés de connexion utilisées pour joindre le datastore distant
localIDTextIdentifiant à affecter au datastore ouvert sur l'application locale (obligatoire)
Résultat4D.DataStoreImplementationObjet datastore

Description

La commande Open datastore connecte l'application au datastore distant identifié par le paramètre connectionInfo et renvoie un objet 4D.DataStoreImplementation correspondant associé à l'alias local localID.

Exchanges with the remote datastore are automatically managed via REST requests. The connectionInfo 4D datastore must be available as a remote datastore, i.e.:

  • its Web Server must be launched with http and/or https enabled,
  • its datastore is exposed to REST (Expose as REST server option checked),
  • a client license must be available if required (see note).
note

Les requêtes Open datastore reposent sur l'API REST 4D et peuvent nécessiter une licence 4D Client pour ouvrir la connexion sur un 4D Server distant. Référez-vous à la section User login mode pour savoir comment configurer l'authentification en fonction du mode de connexion utilisateur actuel sélectionné.

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éTypeApplication 4D distante
hostnameTextNom ou adresse IP de la base de données distante + " :" + numéro de port (le numéro de port est obligatoire)API Endpoint de l'instance Qodly cloud
userTextNom d'utilisateur
passwordTextMot de passe de l'utilisateur
idleTimeoutIntegerDélai d'inactivité de la session (exprimé en minutes), au terme duquel la session est automatiquement fermée par 4D. Si cette propriété est omise, la valeur par défaut est 60 (1h). La valeur ne peut pas être < 60 (si une valeur inférieure est passée, le timeout est fixé à 60). Pour plus d'informations, voir Fermeture des sessions.
tlsBooleanVrai pour utiliser une connexion sécurisée(1). Si cette propriété est omise, "false" par défaut. L'utilisation d'une connexion sécurisée est recommandée dans la mesure du possible.
typeTextdoit être "4D Server"

(1) 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
  • un certificat valide et une clé de chiffrement privée sont installés dans l'application 4D. Sinon, l'erreur "1610 - Une requête vers l’hôte: "{xxx}" a échoué" est générée

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

Les objets disponibles dans 4D.DataStoreImplementation sont mappés conformément aux règles générales ORDA.

Si aucun datastore correspondant n'est trouvé, Open datastore retourne Null.

Exemple 1

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

 var $connectTo : Object
var $remoteDS : 4D.DataStoreImplementation
$connectTo:=New object("type";"4D Server";"hostname";"192.168.18.11:8044")
$remoteDS:=Open datastore($connectTo;"students")
ALERT("This remote datastore contains "+String($remoteDS.Students.all().length)+" students")

Exemple 2

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

 var $connectTo : Object
var $remoteDS : 4D.DataStoreImplementation
$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("This remote datastore contains "+String($remoteDS.Students.all().length)+" students")

Exemple 3

Travailler avec plusieurs datastores distants :

 var $connectTo : Object
var $frenchStudents; $foreignStudents : 4D.DataStoreImplementation
$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("They are "+String($frenchStudents.Students.all().length)+" French students")
ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign students")

Gestion des erreurs

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

Voir également

ds

Propriétés

Numéro de commande1452
Thread safe
Modifie les variableserror