From f046bd8361574f0823001bc06ad00032d7192ba8 Mon Sep 17 00:00:00 2001
From: znone <glyc@sina.com.cn>
Date: Tue, 14 May 2019 13:35:14 +0000
Subject: [PATCH] 提供以标准流的方式直接操纵MySQL的BLOB字段 修正一些错误

---
 include/qtl_sqlite.hpp |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/include/qtl_sqlite.hpp b/include/qtl_sqlite.hpp
index ded2e57..157c82f 100644
--- a/include/qtl_sqlite.hpp
+++ b/include/qtl_sqlite.hpp
@@ -686,7 +686,7 @@
 			overflow();
 
 		off_type count=egptr()-eback();
-		pos_type next_pos;
+		pos_type next_pos=0;
 		if(count==0 && eback()==m_inbuf.data())
 		{
 			setg(m_inbuf.data(), m_inbuf.data(), m_inbuf.data()+m_inbuf.size());
@@ -700,9 +700,9 @@
 			return traits_type::eof();
 
 		count=std::min(count, m_size-next_pos);
-		if(sqlite3_blob_read(m_blob, eback(), count, next_pos)!=SQLITE_OK)
+		m_inpos = next_pos;
+		if(sqlite3_blob_read(m_blob, eback(), count, m_inpos)!=SQLITE_OK)
 			return traits_type::eof();
-		m_inpos=next_pos;
 		setg(eback(), eback(), eback()+count);
 		return traits_type::to_int_type(*gptr());
 	}
@@ -796,10 +796,13 @@
 		{
 		case std::ios_base::beg:
 			result=off;
+			break;
 		case std::ios_base::cur:
 			result=position+off;
+			break;
 		case std::ios_base::end:
 			result=m_size-off;
+			break;
 		}
 		if(result>m_size)
 			result=m_size;

--
Gitblit v1.9.3