прямой sql (sql query)

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

прямой sql (sql query)

Сообщение 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);
Время ведет!
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

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

Сообщение n0where »

comp?
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение Masygreen »

n0where писал(а):comp?
oborot.CPLANSSCH конечно comp ...
Время ведет!
Irina_
Местный житель
Сообщения: 554
Зарегистрирован: 17 июл 2012, 11:56
Откуда: Республика Беларусь, г.Могилев

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

Сообщение Irina_ »

Здравствуйте. А не проще было бы удалить проводки по указанному Вами плану счетов непосредственно из Галактики? Перейти в книгу бухпроводок, перейти на план счетов, по которому надо удалить все проводки, пометить все проводки, F8.
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

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

Сообщение n0where »

Masygreen писал(а):
n0where писал(а):comp?
oborot.CPLANSSCH конечно comp ...
Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение Masygreen »

n0where писал(а):Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);
ок попробую ... просто не пойму еще как таким функционалом пользоватся
Последний раз редактировалось Masygreen 01 авг 2012, 12:35, всего редактировалось 1 раз.
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение Masygreen »

Irina_ писал(а):Здравствуйте. А не проще было бы удалить проводки по указанному Вами плану счетов непосредственно из Галактики? Перейти в книгу бухпроводок, перейти на план счетов, по которому надо удалить все проводки, пометить все проводки, F8.
ирина это ветка Программирование
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение Masygreen »

n0where писал(а):Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);
нет не работает
Время ведет!
RAJAH
Местный житель
Сообщения: 932
Зарегистрирован: 18 фев 2008, 12:49

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

Сообщение RAJAH »

Masygreen писал(а):
n0where писал(а):Я имел ввиду это
delete from oborot where oborot.CPLANSSCH = comp(:_cPLANSSCHCopy);
нет не работает
А, может быть, #comp?
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение Masygreen »

RAJAH писал(а):delete from oborot where oborot.CPLANSSCH = #comp(:_cPLANSSCHCopy);
А, может быть, #comp?
так тоже нет
Время ведет!
Den
Местный житель
Сообщения: 1844
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

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

Сообщение Den »

Принципиально через sql query ?
напишите просто в коде вип :


Interface inMInterface;
create view
_cPLANSSCHCopy : comp ;
;
cmInit:{
_cPLANSSCHCopy :=281474976710661;
sql delete from oborot
where oborot.CPLANSSCH= :(_cPLANSSCHCopy)
;
}
end.
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение Masygreen »

Den писал(а):Принципиально через sql query ?
напишите просто в коде вип :


Interface inMInterface;
create view
_cPLANSSCHCopy : comp ;
;
cmInit:{
_cPLANSSCHCopy :=281474976710661;
sql delete from oborot
where oborot.CPLANSSCH= :(_cPLANSSCHCopy)
;
}
end.
это в плане изучения нового функционала .. функции есть надо научится пользоваться ..
Время ведет!
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение 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;
Время ведет!
n0where
Местный житель
Сообщения: 499
Зарегистрирован: 30 дек 2010, 08:16

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

Сообщение n0where »

sSQL_stmt := sqlAllocStmt;
sqlExecStmt(sSQL_stmt, 'delete from oborot where oborot.CPLANSSCH = #comp('+_cPLANSSCHCopy+')');
sqlFreeStmt(sSQL_stmt);

Я обычно так делал
хороший программист — это человек, который переходя улицу с односторонним движением смотрит в обе стороны
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

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

Сообщение Masygreen »

n0where писал(а):sSQL_stmt := sqlAllocStmt;
sqlExecStmt(sSQL_stmt, 'delete from oborot where oborot.CPLANSSCH = #comp('+_cPLANSSCHCopy+')');
sqlFreeStmt(sSQL_stmt);

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