01.03.2005, 08:54 | #1 |
Участник
|
Не даёт сделать 2 вставки подряд
Здраствуйте!
PHP код:
|
|
01.03.2005, 10:13 | #2 |
Модератор
|
Хм. Если это одна и таже запись, то тогда позволю себе напомнить о чудесном операторе "update".
Если же разные, то рекомендую почитать BP. Переменную надо очистить перед повторным использованием: t2.insert(); .......... t2.clear(); t2.initValue(); t2.Что-то там = t1.Что то тут; t2.insert(); И, кстати, не помешает все это делать в рамках транзакции, Вы не находите? С Уважением, Георгий. |
|
01.03.2005, 11:45 | #3 |
Участник
|
George Nordic:
Транзакция - это само собой разумеещееся. Предложенный Вами вариант не изменил результат, то же сообщение на второй вставке. Но если я убираю цикл, то обе вставки проходят на ура. |
|
01.03.2005, 11:53 | #4 |
Модератор
|
Выложи полный код. Да, и делай clear и перед ПЕРВОЙ вставкой тоже!
С Уважением, Георгий. |
|
01.03.2005, 12:38 | #5 |
Участник
|
PHP код:
|
|
01.03.2005, 12:52 | #6 |
Модератор
|
Ничего удивительного - возможно, у Вас возникает 2 одинаковых записи. Есть Primary Index?
Есть ли уникальность по полю Deport? С Уважением, Георгий. |
|
01.03.2005, 12:58 | #7 |
Участник
|
Есть сложный index: Calc_Month, Deport, Id_Production, Id_Stuff. Но дубликаты разрешены.
Сейчас попробовал убрать вторую вставку, результат тот же, но уже на предыдущей вставке. |
|
01.03.2005, 13:07 | #8 |
Участник
|
Нда, дело ещё непонятнее... Выдаёт ту же ошибку вообще без вставок
|
|
01.03.2005, 13:09 | #9 |
Модератор
|
Почисти таблицу.
|
|
01.03.2005, 13:26 | #10 |
Участник
|
Вообще ничего не понимаю...
Перенёс всё в отдельный метод, начиная с "// создание приходной части", и всё нормально заработало. |
|
01.03.2005, 13:40 | #11 |
Модератор
|
Бывает, когда строишь/меняешь индексы, при этом у тебя уже есть данные в таблицах...
Ну, в бубен не забывай бить. С Уважением, Георгий. |
|
01.03.2005, 14:37 | #12 |
Участник
|
Вставил перед "// создание приходной части" :
PHP код:
Похоже курсор из первого "while" ещё жив оставался. Без бубна никак. |
|