Страница 1 из 2

прямой sql (sql query)

Добавлено: 01 авг 2012, 11:09
Masygreen
что делаю не так ?

Код: Выделить всё

const
_cPLANSSCHCopy = 281474976710661;
end;

sql query _SQL_ClearAll =  delete from oborot where :_cPLANSSCHCopy = oborot.CPLANSSCH;

Interface inMInterface;
create view
from oborot;
...
cmInit:
 sqlExecDirect(_SQL_ClearAll);

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 11:57
n0where
comp?

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 12:00
Masygreen
n0where писал(а):comp?
oborot.CPLANSSCH конечно comp ...

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 12:04
Irina_
Здравствуйте. А не проще было бы удалить проводки по указанному Вами плану счетов непосредственно из Галактики? Перейти в книгу бухпроводок, перейти на план счетов, по которому надо удалить все проводки, пометить все проводки, F8.

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 12:18
n0where
Masygreen писал(а):
n0where писал(а):comp?
oborot.CPLANSSCH конечно comp ...
Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 12:30
Masygreen
n0where писал(а):Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);
ок попробую ... просто не пойму еще как таким функционалом пользоватся

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 12:31
Masygreen
Irina_ писал(а):Здравствуйте. А не проще было бы удалить проводки по указанному Вами плану счетов непосредственно из Галактики? Перейти в книгу бухпроводок, перейти на план счетов, по которому надо удалить все проводки, пометить все проводки, F8.
ирина это ветка Программирование

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 12:35
Masygreen
n0where писал(а):Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);
нет не работает

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 12:50
RAJAH
Masygreen писал(а):
n0where писал(а):Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);
нет не работает
А, может быть, #comp?

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 13:38
Masygreen
RAJAH писал(а):delete from oborot where oborot.CPLANSSCH = #comp(:_cPLANSSCHCopy);
А, может быть, #comp?
так тоже нет

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 13:45
Den
Принципиально через sql query ?
напишите просто в коде вип :


Interface inMInterface;
create view
_cPLANSSCHCopy : comp ;
;
cmInit:{
_cPLANSSCHCopy :=281474976710661;
sql delete from oborot
where oborot.CPLANSSCH= :(_cPLANSSCHCopy)
;
}
end.

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 16:29
Masygreen
Den писал(а):Принципиально через sql query ?
напишите просто в коде вип :


Interface inMInterface;
create view
_cPLANSSCHCopy : comp ;
;
cmInit:{
_cPLANSSCHCopy :=281474976710661;
sql delete from oborot
where oborot.CPLANSSCH= :(_cPLANSSCHCopy)
;
}
end.
это в плане изучения нового функционала .. функции есть надо научится пользоваться ..

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 17:00
Masygreen
с одним параметром сработало ...

Код: Выделить всё

sql delete from oborot where oborot.CPLANSSCH = :_cPLANSSCHCopy;
пытаюсь добавить второй .. ошибка компиляции
Ошибка: Ожидалась константа, поле, функция, "IF" или "CASE" (стр. 1044, поз. 92)

Код: Выделить всё

sql delete from oborot where oborot.CPLANSSCH = :_cPLANSSCHCopy and Oborot.SchetO = :_sSCH;

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 17:53
n0where
sSQL_stmt := sqlAllocStmt;
sqlExecStmt(sSQL_stmt, 'delete from oborot where oborot.CPLANSSCH = #comp('+_cPLANSSCHCopy+')');
sqlFreeStmt(sSQL_stmt);

Я обычно так делал

Re: прямой sql (sql query)

Добавлено: 01 авг 2012, 19:38
Masygreen
n0where писал(а):sSQL_stmt := sqlAllocStmt;
sqlExecStmt(sSQL_stmt, 'delete from oborot where oborot.CPLANSSCH = #comp('+_cPLANSSCHCopy+')');
sqlFreeStmt(sSQL_stmt);

Я обычно так делал
как готовить запросы для прямого sql я знаю, как передавать параметры и т.д. и т.п. но посмотри на пример у тебя 3 строчки и определенные переменные, а через sql можно по идее, как в документации реализовать одной строчкой .. это разница существенная, вот я и хочу так научится