Tenho um sistema que faz a mesma coisa, só muda o formado do arquivo, porém para a rotina centura e para o banco, tanto faz, pois abro o arquivo no formato binário, e gravo no Oracle em um campo LONG RAW, na época, fiz alguns testes e funcionou com qualquer arquivo e é bem rápido, tanto a ida como a volta.
Eu acho esta forma, além de genérica, mais simples.
Para gravar no banco, uso esta rotina:
 
!!CB!! 129
! !!! Gravação do Arquivo no Banco de Dados
Call SalFileOpen(hFileSaida,sCaminhoGeral || psPlaca || ".cip",OF_Binary | OF_Read)
Call SalFileSeek ( hFileSaida, 0, FILE_SeekEnd )
Set nTam= SalFileTell(hFileSaida)
Call SalFileSeek ( hFileSaida, 0, FILE_SeekBegin )
Call SalFileRead(hFileSaida,sLongData,nTam)
Call SqlPrepare(hSqlGenerico,"
  INSERT INTO T_ARQ_GERADO(CD_DADOS,NU_SEQ_HIST,CD_PARTE)
  VALUES(:sLongData,:nSeqHist,1)
  ")
Call SqlSetLongBindDatatype( 1, 23 )
Call SqlExecute(hSqlGenerico)
Call SqlCommit(hSqlGenerico)
Call SalFileClose(hFileSaida)
Set hFileSaida=hWndNULL
Onde sLongData é uma variável do tipo Long String, por isso também tenho que utilizar a função Call SqlSetLongBindDatatype( 1, 23 ).
 
Para ler, uso esta:
 
!!CB!! 70
Call SalFileOpen(hFileVolta,sCaminhoGeral || 'temp.$$$', OF_Create |  OF_Binary | OF_ReadWrite)
! ---Leitura
Set strLongBanco=STRING_Null
Call SqlPrepare(hSqlGenerico,"
  SELECT CD_DADOS
  INTO :strLongBanco
  FROM T_ARQ_GERADO
  WHERE NU_SEQ_HIST=:nNuSeqHist
   ")
Call SqlSetLongBindDatatype( 1, 23 )
Call SqlExecute(hSqlGenerico)
Call SqlFetchNext(hSqlGenerico,nRet)
If strLongBanco != STRING_Null
 Set nTamanho = SalStrGetBufferLength(strLongBanco)
 Call SalFileWrite(hFileVolta,strLongBanco,nTamanho)
 ! --- Monta
Call SalFileClose(hFileVolta)
Copio um arquivo do disco, mando para o banco e depois posso copiar do banco para o disco, sem me preocurar com o tipo.
 
 
 
 
----- Original Message -----
From: icbcunha
To: sqlwin
Sent: Wednesday, November 12, 2003 4:50 PM
Subject: [sqlwin] Arquivo PDF salvo no Oracle com o Centura.

Srs.

      Boa tarde!
     Gostaria de saber se algum de vocês já precisou gravar um arquivo .PDF no banco de dados Oracle usando o Centura?
     Deixe eu explicar o meu problema, preciso armazenar alguns relatórios no banco de dados e estes estão salvos em PDF, e depois caso o usuário precisasse ele poderia extraí-lo e imprimí-lo pelo próprio acrobat.
     Caso alguém já tenha tido essa experiência ou tenha alguma idéia eu agradeço.

Grata,
Isabel Cristina Borges da Cunha
[EMAIL PROTECTED]

Responder a