Програмисту часто приходиться писать достаточно тривиальные куски кода, на которые и время жалко тратить(а там могут быть последовательные вызовы к редко используемому/слабознакомому API ) и в отдельные библиотечки выделять не хочеться. Повторное использование такого кода возможно на основе code snippets.
Code snippet - кусок повторно используемого кода, функция, или несколько взаимосвязаных ф-ций. Он относительно небольшого размера, самодостаточен, выполняет одну задачу и легко интегрируется в проект с помощью минимальный работы напильником. Основное преимущество подхода - код очень просто интегрировать в проект, нету лишнего кода и зависимостей, можно быстро подправить форматирование и code convention. В визул студии есть даже поддержка для библиотек таких Code snippets
Под тегом "code snippets" буде выкладывать такой код.
Как не странно, учитывая что с++ основной язык програмирования, первый сниппет будет на c# и описывает работу с базой данных и BLOB полями в ней. Этот код был написан пару недель назад для автоматизации рутины, шарп и языка типа питона тут более применимы.
Получить BLOB поле (небольшой файл) из базы данных (MSSQL) и сохранить его в файл.
для использования заменить параметры в connection string, SQL и путь к файлу с результатом. Данный код предпологает, что sql вернет только один файл за раз, но переделать на обработку нескольких файлов его очень просто.
Code snippet - кусок повторно используемого кода, функция, или несколько взаимосвязаных ф-ций. Он относительно небольшого размера, самодостаточен, выполняет одну задачу и легко интегрируется в проект с помощью минимальный работы напильником. Основное преимущество подхода - код очень просто интегрировать в проект, нету лишнего кода и зависимостей, можно быстро подправить форматирование и code convention. В визул студии есть даже поддержка для библиотек таких Code snippets
Под тегом "code snippets" буде выкладывать такой код.
Как не странно, учитывая что с++ основной язык програмирования, первый сниппет будет на c# и описывает работу с базой данных и BLOB полями в ней. Этот код был написан пару недель назад для автоматизации рутины, шарп и языка типа питона тут более применимы.
Получить BLOB поле (небольшой файл) из базы данных (MSSQL) и сохранить его в файл.
для использования заменить параметры в connection string, SQL и путь к файлу с результатом. Данный код предпологает, что sql вернет только один файл за раз, но переделать на обработку нескольких файлов его очень просто.
1: public void BLOB2File()
2: {
3: SqlConnection Conn = new SqlConnection("server=SERVERNAME;uid=USERNAME;pwd=PWD;database=DB_NAME");
4: SqlCommand Cmd = new SqlCommand("SELECT FileName, FileImage FROM TARGET_TABLE WHERE (FILE_ID = NUMBER", Conn);
5: Cmd.CommandType = CommandType.Text;
6: Conn.Open();
7: SqlDataReader Reader = Cmd.ExecuteReader(CommandBehavior.CloseConnection);
8:
9: bool rdSatte = Reader.Read();
10:
11: FileStream FStream = null;
12: string str = Reader["FileName"].ToString();
13: FStream = new FileStream(@"c:\temp\" + str, FileMode.OpenOrCreate, FileAccess.Write);
14: byte[] Binary = null;
15:
16: Binary = (Reader["FileImage"]) as byte[];
17:
18: MemoryStream MStream = new MemoryStream(Binary);
19: BinaryWriter BWriter = new BinaryWriter(FStream);
20: const int ChunkSize = 100;
21: int SizeToWrite = ChunkSize;
22: for (int i = 0; i < Binary.GetUpperBound(0) - 1; i = i + ChunkSize)
23: {
24: if (i + ChunkSize >= Binary.Length)
25: SizeToWrite = Binary.Length - i;
26: byte[] Chunk = new byte[SizeToWrite];
27: MStream.Read(Chunk, 0, SizeToWrite);
28: BWriter.Write(Chunk);
29: BWriter.Flush();
30: }
31: BWriter.Close();
32: FStream.Close();
33: FStream.Dispose();
34: }
Комментариев нет:
Отправить комментарий