[SQL] 메모리 2005 / SQL C #에서 BLOB 데이터를 읽을 수있는 효과적인 방법
SQL메모리 2005 / SQL C #에서 BLOB 데이터를 읽을 수있는 효과적인 방법
C # 3.5 사용하여 SQL 2005 이미지 필드를 읽을 수있는 메모리를 가장 효과적인 방법은 무엇입니까?
지금 나는이 (바이트 []) cm.ExecuteScalar ( "...").
내가 메모리에 모든 필드 내용을 읽을 수 있다면 좋을 것이라고.
해결법
-
==============================
1.여기에이 우수한 기사 또는 그것을 수행하는 방법 긴 설명이 블로그 게시물을 참조하십시오.
여기에이 우수한 기사 또는 그것을 수행하는 방법 긴 설명이 블로그 게시물을 참조하십시오.
기본적으로, 당신은 당신이 그것을 만들 때에 SequentialAccess를 SqlDataReader 개체를 사용하여 지정해야합니다 - 당신은 읽기 (또는 쓰기) 할 수 있습니다 어떤 크기의 청크로 데이터베이스에서 BLOB 당신에 가장 적합합니다.
기본적으로 뭔가 같은 :
SqlDataReader myReader = getEmp.ExecuteReader(CommandBehavior.SequentialAccess); while (myReader.Read()) { int startIndex = 0; // Read the bytes into outbyte[] and retain the number of bytes returned. retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize); // Continue reading and writing while there are bytes beyond the size of the buffer. while (retval == bufferSize) { // write the buffer to the output, e.g. a file .... // Reposition the start index to the end of the last buffer and fill the buffer. startIndex += bufferSize; retval = myReader.GetBytes(1, startIndex, outbyte, 0, bufferSize); } // write the last buffer to the output, e.g. a file .... } // Close the reader and the connection. myReader.Close();
즙을 짜고 난 찌꺼기
-
==============================
2.여기에 트릭은 IDataReader에의 데이터를 순차적 모드가 ExecuteReader를 사용하여 읽는 것입니다. 여기 CLOB에 대한 버전의 - BLOB를 거의 동일하지만, 바이트 []와 함께 GetBytes (...).
여기에 트릭은 IDataReader에의 데이터를 순차적 모드가 ExecuteReader를 사용하여 읽는 것입니다. 여기 CLOB에 대한 버전의 - BLOB를 거의 동일하지만, 바이트 []와 함께 GetBytes (...).
뭔가 같은 :
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)) { byte[] buffer = new byte[8040]; // or some multiple (sql server page size) while (reader.Read()) // each row { long dataOffset = 0, read; while ((read = reader.GetBytes( colIndex, dataOffset, buffer, 0, buffer.Length)) > 0) { // TODO: process "read"-many bytes from "buffer" dataOffset += read; } } }
from https://stackoverflow.com/questions/1487808/memory-effective-way-to-read-blob-data-in-c-sql-2005 by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] ORA-00933은 : SQL이 제대로 종료되지] 명령 (0) | 2020.06.16 |
---|---|
[SQL] 조건에 따라 두 번째 테이블에서 레코드의 개수와 함께 두 개의 테이블을 조인 (0) | 2020.06.16 |
[SQL] PHP / MySQL을 매김 (0) | 2020.06.16 |
[SQL] 나는 하나 개의 SQL 쿼리의 SQL 서버 수 () 행을받을 수 있나요? (0) | 2020.06.16 |
[SQL] 행 집합은 뒤로 스크롤을 지원하지 않습니다 (0) | 2020.06.16 |