Autor Tópico: [RESOLVIDO] - Tipo do Dado: Documento (Banco de Dados)  (Lida 238 vezes)

julioalbuquerque

  • Iniciante
  • **
  • Mensagens: 89
    • Email
[RESOLVIDO] - Tipo do Dado: Documento (Banco de Dados)
« Online: Julho 14, 2016, 11:45:22 am »
Olá!
Estou utilizando o SC 8.1.043 com MSSQL Server.
Criei uma aplicação do tipo formulário único registro na qual possui uma tabela do SQL Server com a seguinte finalidade:
- Preciso armazenar no banco de dados arquivos do tipo XML.Na tabela existem o que recebe o nome do arquivo e o que recebe o tamanho do arquivo.
Também existe o que armazena o próprio documento, criei como NVARCHAR(MAX).
Pesquisando, muitos mencionam que devem ser armazenado em campos do tipo BLOB, mas no SQL Server, qual tipo do campo devo setar?

Está salvando "normalmente", ao olhar no banco de dados parece ter sido "criptografado" o conteúdo do XML.
Portanto, após salvar o arquivo XML no banco de dados, preciso recuperar e ler o conteúdo do arquivo XML através de um botão PHP. Como faço?

Resumindo:
1) que tipo de campo precisa ser criado no SQL Server para armazenar o aquivo?
2) como ler esse arquivo via botão do tipo PHP? Qual função faz isso?

Ficou confuso, mas quinta-feira é assim...
« Última modificação: Julho 14, 2016, 02:09:41 pm por Ronyan Alves »

Ronyan Alves

  • Administrator
  • Avançado
  • *****
  • Mensagens: 353
Re:Tipo do Dado: Documento (Banco de Dados)
« Responder #1 Online: Julho 14, 2016, 11:51:45 am »

1) que tipo de campo precisa ser criado no SQL Server para armazenar o aquivo?


VARBINARY(MAX)



2) como ler esse arquivo via botão do tipo PHP? Qual função faz isso?

Para ler esse arquivo com PHP:
http://php.net/manual/pt_BR/function.simplexml-load-file.php

1- Só vai ter que baixar ele do servidor e grava em diretório
2- Utilizar o campo Documento ( Nome do Arquivo ) que o arquivo fica em um diretório e o tipo de campo da coluna da tabela deve ser varchar(225).

Acho a 2 mais viável para o caso.
--

Ronyan Alves
Equipe Scriptcase

julioalbuquerque

  • Iniciante
  • **
  • Mensagens: 89
    • Email
Re:Tipo do Dado: Documento (Banco de Dados)
« Responder #2 Online: Julho 14, 2016, 12:37:51 pm »
Consegui resolver para minha necessidade e gostaria de compartilhar com vocês.

-Na minha tabela SQL Server o campo que armazena o arquivo XML, criei com o tipo VARBINARY(MAX) conforme o Ronyan informou;
-O tipo de campo no formulário permaneceu do tipo: Documento (Banco de dados);
- Para recuperar o documento XML no código do botão do tipo PHP coloquei o código:
Código: [Selecionar]
sc_lookup(arq,"select convert(varchar(max),dsxml) from transdata where idtransdata=". {IDTRANSDATA});
$xml = simplexml_load_string({arq[0][0]});
foreach ($xml->Viagens_qtd as $viagem) {
       echo strval($viagem->ProdutoID) . ' ' . strval($viagem->Produto) . ' ' . strval($viagem->Quantidade) . '<BR>';
}

Funcionou perfeito!
E "fujo" das questões de estar lendo o arquivo em estrutura de diretórios, permissões, fazer download e ler localmente,etc...
Desse jeito resolvi tudo no lado Server.
Vlw!