Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
Open datastore

Open datastore 


 

Open datastore ( infoConexion ; localID ) -> Resultado 
Parámetro Tipo   Descripción
infoConexion  Objeto in Propiedades de conexión utilizadas para llegar al datastore remoto
localID  Texto in Id para asignar al datastore abierto en la aplicación local (obligatorio)
Resultado  Objeto in Objeto datastore

El comando Open datastore conecta la aplicación a la base de datos 4D identificada por el parámetro infoConexion y devuelve un objeto datastore correspondiente asociado al alias local localID.

Los intercambios con el almacén de datos remoto se gestionan automáticamente a través de las solicitudes de REST.

La base de datos infoConexion 4D debe estar disponible como un datastore remoto, es decir:
  • su servidor web debe iniciarse con http y/o https activado,
  • su opción Exponer como servidor REST debe estar marcada (ver Página Web/Ressource REST),
  • al menos una licencia cliente está disponible.

Si no se encuentra una base de datos coincidente, Open datastore devuelve Null.

localID es un alias local para la sesión abierta en el datastore remoto. Si localID ya existe en la aplicación, se utiliza. De lo contrario, se crea una nueva sesión localID cuando se usa el objeto datastore.

Una vez que se abre la sesión, las siguientes declaraciones se vuelven equivalentes y devuelven una referencia en el mismo objeto datastore:

 $myds:=Open datastore(connectionInfo;"myLocalId")
 $myds2:=ds("myLocalId")
  //$myds y $myds2 son equivalentes

Pase en infoConexion un objeto que describa el datastore remoto al que desea conectarse. Puede contener las siguientes propiedades (todas las propiedades son opcionales, excepto el hostname):

PropiedadTipoDescripción
hostnameTextoNombre o dirección IP del datastore remoto + ":" + número de puerto (el número de puerto es obligatorio)
userTextoNombre de usuario
passwordTextoContraseña de usuario
idleTimeoutEntero largoTiempo de espera de sesión de inactividad (en minutos), después de lo cual 4D cierra automáticamente la sesión. Si se omite, el valor predeterminado es 60 (1h). El valor no puede ser <60 (si se pasa un valor inferior, el tiempo de espera se establece en 60). Para más información, consulte Cierre de sesiones.
tlsBooleanoUsar conexión segura (*). Si se omite, false por defecto. Se recomienda utilizar una conexión segura siempre que sea posible.
typeTextoDebe ser "4D Server"

(*) Si tls es true, el protocolo HTTPS se utiliza si:

  • HTTPS está activado en el datastore remoto
  • el puerto dado es el puerto HTTPS correcto configurado en las propiedades de la base
  • se instalan un certificado válido y una llave de cifrado privada en la base (ver ).
    De lo contrario, se genera el error "1610 - Ha fallado una solicitud remota al host xxx"

Conexión a un datastore remoto sin usuario/contraseña:

 C_OBJECT($connectTo;$remoteDS)
 $connectTo:=New object("type";"4D Server";"hostname";"192.168.18.11:8044")
 $remoteDS:=Open datastore($connectTo;"students")
 ALERT("Este datastore remoto contiene "+String($remoteDS.Students.all().length)+" students")

Conexión a un datastore remoto con usuario / contraseña / 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("This remote datastore contains "+String($remoteDS.Students.all().length)+" students")

Trabajar con varios datastores remotos:

 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("They are "+String($frenchStudents.Students.all().length)+" French students")
 ALERT("They are "+String($foreignStudents.Students.all().length)+" foreign students")

En caso de error, el comando devuelve Null. Si no se puede acceder al datastore remoto (dirección incorrecta, servidor web no iniciado, http y https no habilitados...), se genera el error 1610 "Ha fallado una solicitud remota al host XXX". Puede interceptar este error con un método instalado por ON ERR CALL.



Ver también 

ds
Entorno 4D

 
PROPIEDADES 

Producto: 4D
Tema: ORDA - DataStore
Número 1452

Este comando modifica la variable sistema ErrorThis command can be run in preemptive processes

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v18

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)