mirror of
https://github.com/pocoproject/poco.git
synced 2026-01-02 19:02:11 +01:00
fix(Data): Poco::Data::ODBC-dbEncoding property not used for insert/update #3396
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
|
||||
|
||||
#include "Poco/Data/AbstractExtractor.h"
|
||||
#include "Poco/Data/Transcoder.h"
|
||||
#include "Poco/Exception.h"
|
||||
|
||||
|
||||
@@ -22,16 +23,8 @@ namespace Data {
|
||||
|
||||
AbstractExtractor::AbstractExtractor(Poco::TextEncoding::Ptr pDBEncoding,
|
||||
Poco::TextEncoding::Ptr pToEncoding):
|
||||
_pDBEncoding(pDBEncoding),
|
||||
_pToEncoding(pToEncoding ?
|
||||
pToEncoding : _pDBEncoding ?
|
||||
Poco::TextEncoding::find("UTF-8") : nullptr),
|
||||
_pConverter(_pDBEncoding ?
|
||||
new Poco::TextConverter(*pDBEncoding, *_pToEncoding) :
|
||||
nullptr)
|
||||
_pTranscoder(Transcoder::create(pDBEncoding, pToEncoding))
|
||||
{
|
||||
poco_assert_dbg((!_pDBEncoding && !_pToEncoding) ||
|
||||
(_pDBEncoding && _pToEncoding));
|
||||
}
|
||||
|
||||
|
||||
@@ -40,6 +33,20 @@ AbstractExtractor::~AbstractExtractor()
|
||||
}
|
||||
|
||||
|
||||
void AbstractExtractor::transcode(const std::string& from, std::string& to)
|
||||
{
|
||||
if (_pTranscoder)
|
||||
_pTranscoder->transcode(from, to);
|
||||
}
|
||||
|
||||
|
||||
void AbstractExtractor::reverseTranscode(const std::string& from, std::string& to)
|
||||
{
|
||||
if (_pTranscoder)
|
||||
_pTranscoder->reverseTranscode(from, to);
|
||||
}
|
||||
|
||||
|
||||
bool AbstractExtractor::extract(std::size_t pos, std::vector<Poco::Int8>& val)
|
||||
{
|
||||
throw NotImplementedException("std::vector extractor must be implemented.");
|
||||
|
||||
Reference in New Issue
Block a user