Saltar para o conteúdo principal
Versão: Próximo

Open datastore

História
ReleaseMudanças
21Qodly cloud discontinued
20 R6Support access to Qodly cloud instances
20 R4Nova propriedade passwordAlgorithm
18Adicionado

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

ParâmetroTipoDescrição
connectionInfoObjectPropriedades de conexão utilizadas para alcançar o armazém de datos remoto
localIDTextId para assignar ao armazém de dados aberto na aplicação local (obrigatorio)
Resultado4D.DataStoreImplementationObjeto do armazém de dados

Descrição

The Open datastore command connects the application to the remote datastore identified by the connectionInfo parameter and returns a matching 4D.DataStoreImplementation object associated with the localID local alias.

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).
nota

Open datastore requests rely on the 4D REST API and can require a 4D Client license to open the connection on a remote 4D Server. Consulte a seção user login mode para saber como configurar a autenticação dependendo do modo de login do usuário atual selecionado.

Passe em connectionInfo um objeto que desceva o armazém de dados remoto ao que quiser se conectar. Pode conter as propriedades abaixo (todas as propriedades são opcionais menos hostname):

PropriedadeTipoAplicação 4D remoto
hostnameTextNome ou endereço IP da database remota + ":" + número de porta (o numero de porta é obrigatório)API Endpoint de instância Qodly cloud
userTextNome de usuario
senhaTextsenha de usuario
idleTimeoutIntegerTempo de espera da sessão de inatividade (em minutos) depois do qual a sessão é fechada automaticamente por 4D. Se omitido, o valor por defeito é 60 (1h). O valor não pode ser < 60 (se for passado um valor menor, o tempo limite será definido como 60). Para obter mais informações, veja Sessões de encerramento.
tlsParâmetrosTrue para usar conexão segura(1). Se omitido, false por defeito. Se for omitido, o normal é falso Usar uma conexão segura é recomendado sempre que possível.
typeTextdeve ser "4D Server"

(1) Se tls for true, o protocolo HTTPS é utilizado se:

  • HTTPS for ativado no armazém de dados remoto
  • o número de porto especificado coincide com o porto HTTPS configurado nos ajustes do banco de dados
  • a valid certificate and private encryption key are installed in the 4D application. Senão é mostrado o erro "1610 - A remote request to host xxx has failed"

localID é um alias local para a sessão aberta no armazenamento de dados remoto. Se localID já existir no aplicativo, ele será usado. Caso contrário, uma nova sessão localID é criada quando o objeto de armazenamento de dados é usado.

Quando abrir a sessão, as sentenças abaixo são equivalentes e devolvem uma referência sobre o mesmo objeto datastore:

 $myds:=Open datastore(connectionInfo;"myLocalId")
$myds2:=ds("myLocalId")
//$myds e $myds2 são equivalentes

Objetos disponíveis na 4D.DataStoreImplementation são mapeados em relação às regras gerais da ORDA.

Se não for encontrado um datastore correspondente, Open datastore retornará Null.

Exemplo 1

Conexão a uma datastore remota com usuário/ senha/ timetou/ tls

 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")

Exemplo 2

Conexão a uma datastore remota sem usuário ou senha:

 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")

Exemplo 3

Trabalhando com várias datastores remotas:

 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")

Gestão de erros

Em caso de erro, o comando retorna Null. Se não for possível acessar o armazem de dados remotos (endereço incorreto, servidor web não inciiado, http e https não habilitados...), se produz o erro 1610 " Uma petição remota ao host XXX falhou". Você pode interceptar esse erro com um método instalado por ON ERR CALL.

Veja também

ds

Propriedades

Número de comando1452
Thread safe
Modifica as variáveiserror