Saltar para o conteúdo principal
Versão: 21 R4 BETA

Open datastore

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

ParâmetroTipoDescrição
connectionInfoObject→Propriedades de conexão utilizadas para alcançar o armazém de datos remoto
localIDText→Id para assignar ao armazém de dados aberto na aplicação local (obrigatorio)
Resultado4D.DataStoreImplementation←Objeto do armazém de dados
História
ReleaseMudanças
21Qodly cloud discontinued
20 R6Support access to Qodly cloud instances
20 R4Nova propriedade passwordAlgorithm
18Adicionado

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 saber mais informação, consulte Fechamento de sessões.
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 safesim
Modifica as variáveiserror