parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Как корректно написать обёртку для ^connect{...} ?

Andrey 03.11.2014 02:06

Задача в том, что в рамках каждого соединения, мне надо делать определенный пред-запрос или команды для mysql, а потом уже основные запросы.

Например, так:
# я в auto.p (конфига) делаю просто
^connect[$SQL.connect-string]{
    ^void:sql{SET NAMES 'cp1251'}
}
И оно конечно работает, но только потому, что последующие ^connect-ы оказываются в рамках одного соединения автоматически. Но это я так понимаю небезопасно и не гарантировно.

Т.е. если запросы распадутся все же на два соединения, то мой SET NAMES - не попадет в него.

поэтому, нужна какая-то своя обёртка
типа ^myconnect...
но что-то меня смущает как что и куда будет возвращаться...
@myconnect[sqlcode]
^connect[$SQL.connect-string]{
   ^void:sql{SET NAMES='cp1251'}
   $sqlcode
}

@main[]
^myconnect{ 
           $test[^int:sql{SELECT 2*2}]  
}

# или лучше как-то типа так

$test[^mysqloperator{^int:sql{SELECT 2*2}}]

@mysqloperator[sqlcommand][locals]
^connect[$SQL.connect-string]{
   ^void:sql{SET NAMES 'CP1251'}
   $result[$sqlcommand]
}
Или можно как-то покрасивее/удобнее сделать?