delete from poisktovara удаляетя и табл.sklad

longfast
Дата: 17.12.2012 23:01:47
у меня есть 2 таблицы, sklad и poisktivara. Мне нужно,чтоб очистилась таблица poisktovara и в нее же занеслись данные из таблицы склад sklad.Вот код.

SET DELETED ON
DELETE FROM poisktovara
insert into poisktovara (pole1,pole2,texxarakter,opisanie,part1,stoimz,stoimp,klv,nal) select nazvanie_tovara.kodtovara,nazvanie_tovara.naimtovara,nazvanie_tovara.texxarakter,nazvanie_tovara.opisanie,sklad.partiya,sklad.stoimzak,sklad.stoimpokup,sklad.kolvo,sklad.nalichie FROM nazvanie_tovara,sklad WHERE nazvanie_tovara.kodtovara=sklad.kodtovara and sklad.kodtovara=thisform.text1.Value
USE IN poisktovara
DO FORM poisk
thisform.Release

в итоге удаляет все данные из таблицы sklad и poisktovara. Почему удаляются данные из таблицы sklad???
tanglir
Дата: 18.12.2012 05:25:24
longfast
Почему удаляются данные из таблицы sklad???
В приведённом фрагменте кода удаления из таблицы "склад" впрямую не прописано; ищите в другом месте, например, в форме "поиск".
tanglir
Дата: 18.12.2012 05:26:20
longfast, ну вот зачем кросспостить-то?
IgorNG
Дата: 18.12.2012 09:42:35
longfast,

Наверное, текущая таблица склад.
А команды DELETE FROM не существует.
Есть
DELETE [Scope] [FOR lExpression1] [WHILE lExpression2]
[IN nWorkArea | cTableAlias] [NOOPTIMIZE]
Jonny540
Дата: 18.12.2012 10:11:51
IgorNG
А команды DELETE FROM не существует.

Да неужто? А это тогда что такое:

DELETE SQL Command
DELETE [Target] FROM [FORCE] Table_List [[, Table_List ...] | [JOIN [ Table_List]]] ;
          [WHERE FilterCondition1 [AND | OR FilterCondition2 ...]]

Другое дело, что ТС'у она на фиг не нужна, т.к. Select существующую таблицу перепишет и не подавится
Т.е. вместо delete+insert использовать select. Подробности в хэлпе.
longfast
Дата: 18.12.2012 16:18:34
я разобрался где не работает. У меня получается,что если даные есть в таблице sklad, то всё работает. Если таких данных нет, то и sklad и poisk удаляются.почему так?
AndreTM
Дата: 18.12.2012 16:47:52
В смысле -"почему"? У вас таблицы удаляются, что ли?

В sklad и так данных нет. В poisk данные отбираются из sklad - если в sklad нет данных, то отбирается пустое множество и замещает предыдущие данные в poisk - в poisk данных нет...
makar12
Дата: 18.12.2012 16:48:19
2 longfast,
Поставь в дебагере току останова на RecCount("sklad") или poisk.