Ver Mensaje Individual
  #7  
Antiguo 06-03-2008
keyboy keyboy is offline
Miembro
 
Registrado: oct 2004
Posts: 367
Reputación: 20
keyboy Va por buen camino
Debes utilizar campos BLOB. Aunque no conozco SQL Server, casi cualquier base de datos tendrá soporte para este tipo de campos que, básicamente, sirven para guardar cualquier cosa; un ejecutable, un mp3, un pdf, etc.

Dependiendo del tipo de componentes que uses para conectarte a la base, puede haber alguna diferencia, pero normalmente un campo BLOB se traducirá en un objeto TBlobField. Este objeto tiene métodos LoadFromFile y SaveToFile, muy cómodos para colocar datos en un campo BLOB desde un archivo en disco y viceversa.

Por ejemplo, con ADO:

Código Delphi [-]
// De archivo en disco a campo BLOB
TBlobField(ADOTable1.FieldByName('pdf')).LoadFromFile('archivo.pdf');

// De campo BLOB a archivo en disco
TBlobField(ADOTable1.FieldByName('pdf')).SaveToFile('archivo.pdf');

donde pdf sería el campo BLOB en tu base y archivo.pdf el nombre de archivo en disco.

Una vez que guardas el archivo en un campo BLOB, ya no necesitas el archivo original.

Bye
Responder Con Cita