Hasta donde yo soy consciente, aparecerá un mensaje de error si intenta cargar archivos de gran tamaño, utilizando la función de IMemoryBlobStream.LoadFromFile().
Alguien ha encontrado alguna solución de código para cargar un archivo en una IMemoryBlobStream?
Lo que estoy tratando de hacer es insertar un archivo en formato PDF, en un BLOB en una base de datos de Oracle, pero no lo estoy, y no desea utilizar Oracle API. Sólo estoy usando ArcOjects para este.
Mi código es:
public void LoadReport(string fileName)
{
try
{
if (File.Exists(fileName))
{
IMemoryBlobStream2 memoryBlobStream = new MemoryBlobStreamClass();
memoryBlobStream.LoadFromFile(fileName);
report = memoryBlobStream;
}
}
catch (Exception ex) {
throw ex;
}
}
ACTUALIZACIÓN
Este es el código que he puesto para finalmente obtener el archivo en la base de datos, ahora sólo tiene que comprobar leyendo el archivo de la nota - es de esperar que se debe trabajar.
fs = new System.IO.FileStream(fileName, FileMode.Open, FileAccess.Read);
byte[] bytes = new byte[fs.Length];
int chunkSize = 2 << 17;
int pos = 0;
for (pos = 0; pos < (fs.Length - chunkSize); pos += chunkSize)
{
fs.Read(bytes, pos, chunkSize);
}
long modResult = (fs.Length % chunkSize);
fs.Read(bytes, pos,Convert.ToInt32(modResult));
IMemoryBlobStream2 memoryBlobStream = new MemoryBlobStreamClass();
memoryBlobStream.ImportFromMemory(ref bytes[0], (uint)bytes.Length);
fs.Close();