Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

lgiuriollo

Recuperar arquivos pdf salvos em sql

Recommended Posts

Salve galera, tudo em ordem/

Tenho um banco sql, e neste banco uma tabela com um campo image. Neste campo image, salvei um pdf, gostaria de saber como recuperar o pdf que está neste campo via javascript.

Toda ajuda será bem vinda.

Obrigado,

Leandro Giuriollo

Compartilhar este post


Link para o post
Compartilhar em outros sites

JavaScript client-side não conecta no banco de dados.

Você vai precisar que a sua linguagem server-side devolva esse PDF para você.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian, agradeço pela resposta.

Deixa eu explicar um pouco mais do meu problema, utilizo uma ferramenta chamada mirth connect, e o mirth connect utiliza de linguagem java script.

Estou efetuando um select no banco, mas quanto tento retornar o arquivo ele me gera uma exceção.

meu código é este:

var dbConn = DatabaseConnectionFactory.createDatabaseConnection ($cfg('driverXClinic'), $cfg('urlXclinic'), $cfg('userXclinic'), $cfg('passXclinic'));
var query =
"SELECT ARQUIVO " +
"FROM INTEGRA_XC_LAUDOS_REQUISICOES " +
"WHERE REQUISICAOID = '197489' " ;
 
var result = dbConn.executeCachedQuery(query);
dbConn.close();
 
result.next();
 
try {
var pdfEncrypted = result.getBlob('ARQUIVO');
var strOut = new java.lang.StringBuffer();
var isr = pdfEncrypted.getBinaryStream();
 
var decimalRead = 0;
 
while ((decimalRead = isr.read()) >= 0) {
charOut = java.lang.Character(decimalRead);
strOut.append(charOut);
}
 
FileUtil.write("c:/test.pdf", false, strOut);
 
} catch(ex) {
// get the exception
channelMap.put('blob', ex.toString());
} 

a exceção retornada é a seguinte:

Transformer error

ERROR MESSAGE: Error evaluating transformer

com.mirth.connect.server.MirthJavascriptTransformerException:

CHANNEL: PreventSenior

CONNECTOR: sourceConnector

SCRIPT SOURCE:

SOURCE CODE:

348:

349: channelMap.put('DESCRICAO', validate( mapping , '', new Array()));

350: var mapping;

351:

352: try {

353: mapping = msg['identificacaounica'].toString();

354: } catch (e) {

355: logger.error(e);

356: mapping = '';

357: }

LINE NUMBER: 353

DETAILS: TypeError: Character reference "" is an invalid XML character.

at 3341e3aa-e5f7-4101-b5ad-6e4a425a3f84:275 (doScript)

at 3341e3aa-e5f7-4101-b5ad-6e4a425a3f84:412

at com.mirth.connect.server.transformers.JavaScriptFilterTransformer$FilterTransformerTask.call(JavaScriptFilterTransformer.java:154)

at com.mirth.connect.server.transformers.JavaScriptFilterTransformer$FilterTransformerTask.call(JavaScriptFilterTransformer.java:119)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Novamente obrigado,

Leandro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Leandro, essa excessão não é referente ao código acima.

Informe novamente o erro retornado.

Se você executar a query direto no banco:

SELECT ARQUIVO FROM INTEGRA_XC_LAUDOS_REQUISICOES WHERE REQUISICAOID = '197489';

é retornado o dado? ou dá erro direto no banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei.. coloque aqui o erro referente ao código acima.

O erro que você colocou é de outra parte da aplicação, e não do código que você postou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian, boa tarde.

Agradeço novamente a ajuda, mas consegui resolver o problema.

Fiz desta forma:

var dbConn2 = DatabaseConnectionFactory.createDatabaseConnection($cfg('driverXClinic'),$cfg('urlXclinic'),$cfg('userXclinic'),$cfg('passXclinic'));
var query = "SELECT ARQUIVO FROM INTEGRA_XC_LAUDOS_REQUISICOES WHERE REQUISICAOID = 197489 ";
var result2 = dbConn2.executeCachedQuery(query);
result2.next();
var report = result2.getObject(1)
channelMap.put('report', report);
dbConn2.close();
Obrigado,
Leandro

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.