Visual C++ .NET/Database ADO.net/Blob

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Deal with Blob

<source lang="csharp">

  1. include "stdafx.h"

using namespace System; using namespace System::Data; using namespace System::IO; using namespace System::Data::OleDb; void main() {

   OleDbConnection^ myConnection = nullptr;
   myConnection = gcnew OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Music.mdb");
   myConnection->Open();
   OleDbCommand^ myCommand = gcnew OleDbCommand("SELECT FileName, MP3 FROM MP3Storage", myConnection);
   OleDbDataReader^ myReader = myCommand->ExecuteReader(CommandBehavior::SequentialAccess);
   array<unsigned char>^ buffer = gcnew array<unsigned char>(65536);
   while ( myReader->Read() ){
      String^ fileName = safe_cast<String^>(myReader->GetValue(0));
      FileStream^ fileStream = gcnew FileStream(fileName, FileMode::Create);
      long long bytesRead, position = 0;
      while ( bytesRead = myReader->GetBytes(1, position, buffer,0, buffer->Length) ){
         fileStream->Write(buffer, 0, (int)bytesRead);
         position += bytesRead;
      }
      Console::WriteLine("{0} bytes writte to {1} file",position, fileName);
      fileStream->Close();
   }
   myConnection->Close();

}

 </source>