Skip to content

Instantly share code, notes, and snippets.

View barkady's full-sized avatar

Arkady barkady

View GitHub Profile
template<typename T>
Poco::Data::Statement& pocoSessionParameterBinder(Poco::Data::Statement& stmt, T& t);
template<>
Poco::Data::Statement& pocoSessionParameterBinder<Poco::Data::AbstractExtraction::Ptr>(Poco::Data::Statement& stmt, Poco::Data::AbstractExtraction::Ptr& t)
{
return stmt.addExtract(t);
}
template<>
Poco::Data::Statement& pocoSessionParameterBinder<Poco::Data::AbstractBinding::Ptr>(Poco::Data::Statement& stmt, Poco::Data::AbstractBinding::Ptr& t)
@barkady
barkady / 20170506_3.cpp
Last active June 6, 2017 10:35
20170506_3.cpp
template<typename...Ts>
void variadicExecutor(Ts&&...) {}
template<typename T>
Poco::Data::Statement& pocoSessionParameterBinder(Poco::Data::Statement& stmt, T&& t);
template<>
Poco::Data::Statement& pocoSessionParameterBinder(Poco::Data::Statement& stmt, Poco::Data::AbstractExtraction::Ptr&& t)
{
return stmt.addExtract(t);
template<typename... Ts>
void variadicExecutor(Ts&&...) {}
template<typename... TS>
bool execute(Poco::Data::Session& session, std::string sql, TS... Fargs)
{
Poco::Data::Statement stmt = session << sql;
//because for `AbstractExtractors` `comma-operator` is covering this
//function. And behind the scene of `into` is exactly `AbstractExtractors`.
variadicExecutor(stmt.addExtract(Fargs)...);
typedef Tuple Person;
Person pHomer, pLisa;
int aHomer(42), aLisa(10), aBart(0);
session << "SELECT * FROM Person WHERE Age = ?; "
"SELECT Age FROM Person WHERE FirstName = 'Bart'; "
"SELECT * FROM Person WHERE Age = ?",
into(pHomer, 0), use(aHomer),
into(aBart, 1),
into(pLisa, 2), use(aLisa);
<xsl:for-each select="$valArray">
<xsl:if test="string-length(normalize-space(text())) = 0">
<ОШИБКА>
<НомерВпротоколе/>
<КодОшибки>30</КодОшибки>
<ТипОшибки>Критичная</ТипОшибки>
<xsl:variable name="temppos" select="position()"></xsl:variable>
<ТекстОшибки><xsl:value-of select="$resArray[$temppos]"></xsl:value-of></ТекстОшибки>
<МестоВозникновения>
<xsl:copy-of select="."/>
@barkady
barkady / gist:bbab964adcf036db95a5
Created July 11, 2014 14:42
xslt_iterable_array
<xsl:variable name="sumArray">
<sum><xsl:value-of select="//НачисленоСначалаРасчетногоПериода2012/ВсегоСначалаРасчетногоПериода2012/ОПСстраховаяЧасть"/></sum>
</xsl:variable>
<xsl:variable name="psumArray" select="document('')//xsl:variable[@name= 'sumArray']/*"></xsl:variable>
@barkady
barkady / gist:e6b748a38e58458a551f
Last active August 29, 2015 14:03
get SOAP with suds
def GetWithFile(self, client, servicename, modelthings):
func = client.service.__getattr__('Retrieve' + servicename)
clientclass = func.clientclass({})
SoapClient = clientclass(func.client, func.method)
binding = func.method.binding.input
soap_xml = binding.get_message(func.method, [modelthings], {})
#changing SOAP request to receive attachments. May be used different way in other SOAP
soap_xml.children[0].children[1].children[0].attributes.append(u'attachmentInfo="true"')
soap_xml.children[0].children[1].children[0].attributes.append(u'attachmentData="true"')
import string
from random import randint
def IncreaseDefine(define, lines):
for idx, item in enumerate(lines):
if define in item:
tmp_str = item.split()
tmp_str[2] = str(int(tmp_str[2])+1)+"\n"
item = ' '.join(tmp_str)
line[idx] = item
@barkady
barkady / zmq_forbids_win.cpp
Created May 26, 2014 11:38
Zmq firbids Windows
// IPC transport is not available on Windows and OpenVMS.
#if defined ZMQ_HAVE_WINDOWS || defined ZMQ_HAVE_OPENVMS
if (protocol_ == "ipc") {
// Unknown protocol.
errno = EPROTONOSUPPORT;
return -1;
}
#endif
@barkady
barkady / zmq_test.cpp
Created May 26, 2014 11:36
ZMQ testing
// ZMQ_test.cpp : Defines the entry point for the console application.
//
#include "zmq.hpp"
#include <iostream>
#include <boost\thread.hpp>
#include "Poco\Process.h"
#include <sstream>
#ifndef _WIN32