Ответ
G_Z 29.09.2008 15:16
/ 29.09.2008 15:26
По конкретной ошибке я вам пояснил что происходит.
Вы написали конструкцию не
по синтаксису, отчего получили ошибку.
Она не зависит от того, верно вы используете класс «опросника» или нет.
Если решили использовать SQL-классы делайте обращения к базе через созданный объект, например ^oSQL.void{..} вместо ^void:sql{...}.
Будет проще.
Что до класса poll, в этой ветке его лучше не обсуждать.
Создайте новую, где по порядку распишите вопросы.
Что именно вы сделали, что не получилось.
Придёт Юджин, и как автор этого класса, возможно, вам что-то подскажет.
Вдогонку.
Пошёл поглядел этот «опросник» и увидел там тот самый кусок
^void:sql{
UPDATE $pi_table SET status = 0
WHERE status = 1
AND dt_finish IS NOT NULL
AND dt_finish < ^MAIN:pSQL.now[]
}
.
Я считал, что это вы его написали, а это изначально в классе.
Это ошибка.
Там по всему коду вперемешку вызовы через oSQL-объект и напрямую.
Поправить это, думаю, можно, опять же, двумя путями.
Заключить инициализацию и работу класса «опросника» в ^oSQL.server{}, чтобы sql-операторы находились внутри установленного соединения.
Или исправить все прямые вызовы (void:sql, int:sql и т.п.) на аналогичные методы oSQL-объекта (^oSQL.void{}, ^oSQL.int{} и т.д.).