Показать сообщение отдельно
Старый 13.07.2017, 17:16   #10  
AfterEarth is offline
AfterEarth
Участник
 
12 / 10 (1) +
Регистрация: 13.07.2017
Адрес: Санкт-Петербург
Цитата:
Сообщение от raz Посмотреть сообщение
Кажется понял, что нужно...
X++:
class myClass
{
    var Var1;
    var Var2;


    void myInsert()
    {
         :
        str statement = strfmt('insert into tablename (FIELD1, FIELD2,etc..... VALUES (%1,%2,etc....)',
EvalBuf('var1'),EvalBuf('var2'),);
    }
}
Замените var Var1 ... var VarN на таблицу myVarsTable или map.

Ну и в конструкции strfmt('insert into tablename (FIELD1, FIELD2,etc..... VALUES (%1,%2,etc....)',
EvalBuf('var1'),EvalBuf('var2'),); можно просто заменить EvalBuf('var1') на var1 - strfmt('insert into tablename (FIELD1, FIELD2,etc..... VALUES (%1,%2,etc....)',
var1,var2,...);
Описание класса правильное, но вместо var1 и var2 могут быть другие переменные. EvalBuf написан для примера - он бы подошёл, если-бы умел не только вычислять (2+3)*5, а возвращать значение переменной по имени.
Имена полей и переменных хранятся в таблице и идея составлять из них запросы в одной строке динамически. Какая именно переменная там будет неизвестно.
Прошу прощения, если непонятно написал....