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