Sempre ammesso che non memorizzi solo il percorso come + nativo per harbour
So che Marcelo de Paula usa tecniche simili con file DOC ed è quasi come ti interessaCredo che servano LONGTEXT o LONGBLOB che occupa + spazioe ispirazioni prese
Se raggiungi un risultato , posta una demo con la base dei tuoi sorgenti che puo aiutare anche altri utenti a percorrere la strada
para Salvar:
Local cQuery
Local cLocal:='c:\Documento.DOC'
* // Inclui se ainda não existir
cQuery:="INSERT INTO tb_documento (dc_codigo, dc_anexo, dc_sequencia) VALUES ("
cQuery+=ClipValueSQL2(Limpa_Campo(FormTabelas.TextID.Value)) +" ,"
cQuery+=ClipValueSQL2(MaskBinData(MemoRead(cLocal))) +" ,"
cQuery+=ClipValueSQL2(FormTabelas.TextSQ.Value) +" )"
oQuery := oServer:Query( cQuery )
If oQuery:NetErr()
MsgInfo("SQL INSERT error:Anexo1 " + oQuery:Error(),"Procedimentos")
Return
Endif
Para Ler:
Static Function EditarDoc_Fic(QueroVer)
Local cQuery
Local oWord, oTexto, sPrint
Local cDoc:='c:\windows\temp\temp.doc'
cQuery:="SELECT * FROM tb_documento WHERE dc_codigo = "+ClipValueSQL2(Limpa_Campo(FormTabelas.TextID.Value))
cQuery+=" AND dc_sequencia = "+ClipValueSQL2(FormTabelas.TextSQ.Value)
oQuery := oServer:Query( cQuery )
If oQuery:NetErr()
MsgInfo("SQL SELECT error:Documentos " + oQuery:Error(),"Procedimentos")
Return
Endif
If oQuery:LastRec()>0
oRow := oQuery:GetRow(1)
MemoWrit( cDoc , UnMaskBinData( oRow:FieldGet(2) ) )
oQuery:Destroy()
EndIf
Return
As Funções
*===============================================================================
* // Troca Caracteres especias para gravar no Banco
Function MaskBinData( x ) && Não lembro quem fez
x := StrTran( x , chr(92) , '(92)' )
x := StrTran( x , chr(26) , '(26)' )
x := StrTran( x , chr(39) , '(39)' )
x := StrTran( x , chr(0) , '(0)' )
x := StrTran( x , chr(24) , '(24)' )
return x
*===============================================================================
* // Restaura Caracteres especiais para construir imagem
Function UnMaskBinData( x ) && Não lembro quem fez
x := StrTran( x , '(92)' , chr(92) )
x := StrTran( x , '(24)' , chr(24) )
x := StrTran( x , '(26)' , chr(26) )
x := StrTran( x , '(0)' , chr(0) )
x := StrTran( x , '(39)' , chr(39) )
return x
Il giorno lunedì 21 gennaio 2013 17:09:29 UTC+1, Mimmo Italia ha scritto:
Grazie per il consiglio. Provero' i vari metodi, volevo sapere piu' precisamente nella campi Memo si ha la possibilita di inserire allegati di vari grandezze.
Grazie.
MImmo.