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.
|
- [sqlwin] Arquivo PDF salvo no Oracle com o Centura. icbcunha
- Re: [sqlwin] Arquivo PDF salvo no Oracle com o Centu... Anderson Martins
- Re: [sqlwin] Arquivo PDF salvo no Oracle com o Centu... Ricardo Oliveira
- Re: [sqlwin] Arquivo PDF salvo no Oracle com o Centu... Ricardo Gomes