4D v14.3

SET EXTERNAL DATA PATH

Página Inicial

 
4D v14.3
SET EXTERNAL DATA PATH

SET EXTERNAL DATA PATH 


 

SET EXTERNAL DATA PATH ( aCampo ; rota ) 
Parâmetro Tipo   Descrição
aCampo  Texto, BLOB, Imagem in Campo para definir o local de armazenamento
rota  Texto, Inteiro longo in Caminho e nome do arquivo d armazenamento externo ou
0=usar definição da estrutura
1=usar pasta padrão

O comando  SET EXTERNAL DATA PATH, define ou modifica, para o atual registro, a localização do armazenamento externo para o campo aCampo passado como parâmetro. 

Com 4D (a partir da versão 13) é possível salvar campos do tipo Texto, BOLB e Imagem fora do arquivo de dados. Para uma descrição completa desta funcionalidade, consulte o Manual de Desenho 4D.

A configuração definida por este comando somente é aplicada quando o registro atual é salvo no disco. Os parâmetros de armazenamento definidos na estrutura da aplicação não são alterados. Se o atual registro é cancelado, o comando não faz nada. Uma vez que o comando é executado, 4d automaticamente mantém a conexão entre o campo do registro e o arquivo no disco. Não é necessário executar o comando novamente (somente se você precisar mudar a rota de acesso ao documento). 

Em rota, pode passar um nome de rota padrão ou uma constante designando uma localização automática:

  • Rota padrão ao arquivo

    Neste caso, você utiliza armazenamento externo no "modo padrão." Algumas funções do banco de dados 4D não estão disponíveis automaticamente neste modo (veja o Manual de Desenho 4D).
    Você pode passar uma rota relativa ao arquivo de dados ou uma rota absoluta, incluindo o nome e a extensão do arquivo de armazenamento (para definir uma rota relativa, passe "../" ao início da cadeia).. A extensão tem que corresponder ao tipo real dos dados (não há conversão quando o arquivo é salvo). Deverá usar a sintaxe do sistema.
    Poderá designar qualquer pasta, incluindo a pasta padrão dos arquivos externos do banco de dados (nomeBanco.DadosExternos) -  Neste caso, os arquivos de backup do banco de dados estão incluídos. Se uma pasta não existir, é criada automaticamente por 4D (é retornado um erro se falhar a criação, por exemplo, se não tiver direitos de acesso).
    Se você salvar os dados externos na mesma pasta que o arquivo de dados ou uma das suas pastas internas, 4D considera que o caminho especificado é relativo ao arquivo de dados e mantêm o link mesmo quando a pasta do arquivo de dados é movida ou renomeada.

    Note que isto significa que é possível "compartir" o mesmo arquivo externo entre vários registros. Quaisquer que sejam as mudanças feitas ao arquivo externo, estão disponíveis em todos os registros. Neste caso, se muitos processos podem escrever nos mesmos campos ao mesmo tempo, deverá ter cuidado a fim de prevenir acessos simultâneos através de semáforos, para não correr o risco de danificar os arquivos externos.

  • Locais automáticos

    Você pode designar dois locais automáticos, fazendo uso das seguintes constantes, as quais podem ser verificadas no tema Manutenção do arquivo de dados:

    Constante Tipo Valor Comentário
    Use default folder Inteiro longo 1 Os dados de campo passados como um parâmetro serão armazenados na pasta padrão chamado nomBase.ExternalData e colocados ao lado do arquivo de dados. Neste modo, os dados externos são geridos por 4D como se estivessem dentro do arquivo de dados.
    Use structure definition Inteiro longo 0 4D usará os parâmetros definidos na estrutura para o armazenamento do campo (consulte o manual Modo Estrutura). Se você passar de um armazenamento externo a armazenamento interno, o arquivo externo não é excluído.

Nota: O comandoSET EXTERNAL DATA PATH só pode ser executado numa máquina 4D local ou num servidor 4D. Não faz nada quando é executado numa máquina 4D remota.

Você quer salvar o conteúdo de um arquivo de imagem fora dos dados quando o arquivo excede um determinado tamanho. No botão de validação do formulário, pode escrever o seguinte:

 If(Picture size([Photos]InputField)>1300000)
  // salva arquivos grandes de imagem fora dos dados
    SET EXTERNAL DATA PATH([Photos]InputField;
    "C:\\Storage\\LargePicts\\" + String(Record number)+ ".jpg")
 Else
  // salva arquivos pequenos como definido na estrutura
    SET EXTERNAL DATA PATH([Photos]InputField;Use structure definition)
 End if

Você deseja guardar o conteúdo de um campo imagem ao exterior dos dados e em relação com o arquivo de dados da base:

 CREATE RECORD([Photos])
 [Photos]Thumbnail:=$small_pict
 SET EXTERNAL DATA PATH([Photos]Thumbnail;"../custom"+Folder separator+$pictname)
  //storage in "/custom/" folder next to the data file
 SAVE RECORD([Photos])

 
PROPRIEDADES 

Produto: 4D
Tema: Acesso a Estrutura
Número 1134

Comportamento diferente em modo remoto

 
HISTÓRIA 

Criado por: 4D v13

 
VER TAMBÉM 

Get external data path
RELOAD EXTERNAL DATA

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v14 R3)
Manual de linguagem 4D ( 4D v14 R2)
Manual de linguagem 4D ( 4D v13.5)
Manual de linguagem 4D ( 4D v14.3)
Manual de linguagem 4D ( 4D v14 R4)