Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Можно ли использовать INSERT и DELETE для справочн (число прочтений - 13699 )
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Можно ли использовать INSERT и DELETE для справочн
14. Июля 2006 :: 10:39
Печать  
Есть у меня справочник, хочу попробовать его заполнить командой INSERT, а перед этим почистить. Написал:

[code]

л_ODBCDatabase = СоздатьОбъект("ODBCDatabase");
л_ODBCRecordset = СоздатьОбъект("ODBCRecordset");
л_ODBCRecordset.УстБД(л_ODBCDatabase);
л_ODBCRecordset.Выполнить("DELETE FROM $Справочник.Склад_Товары");
л_ODBCRecordset.Выполнить("INSERT INTO $Справочник.Склад_Товары (Descr) VALUES (""какой-то товар"")");

[/code]

В справочнике изменений нету никаких. Почему?
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #1 - 14. Июля 2006 :: 10:45
Печать  
Нажми кнопки HOME, а потом END.
  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #2 - 14. Июля 2006 :: 10:46
Печать  
Конечно при условии, что запрос верен...
А то это как-то смущает: INSERT INTO $Справочник.Склад_Товары (Descr) VALUES ("какой-то товар")
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #3 - 14. Июля 2006 :: 12:03
Печать  
HOME+END, открытие/закрытие, не помогает, то есть справочник без изменений

А что в запросе смущает??
  
Наверх
ICQ  
IP записан
 
U_zer
Экс-Участник


Re: Можно ли использовать INSERT и DELETE для спра
Ответ #4 - 14. Июля 2006 :: 12:37
Печать  
Вообще-то есть метод специальный.
ПолучитьОписаниеОшибки()
Очень иногда помогает найти ошибки в таких запросах.
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #5 - 14. Июля 2006 :: 13:08
Печать  
Никакой ощибки не возвращает
  
Наверх
ICQ  
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #6 - 14. Июля 2006 :: 13:14
Печать  
Должно быть что-то вроде:
л_ODBCRecordset.Выполнить("INSERT INTO $Справочник.Склад_Товары (Id, Descr) VALUES (""+36_ричный_идентификатор_элемента+"",""какой-то товар"")");
  
Наверх
ICQ  
IP записан
 
vig
Junior Member
**
Отсутствует


Мой опыт показывает, что
умирают обычно другие.

Сообщений: 34
Местоположение: Киев
Зарегистрирован: 21. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #7 - 14. Июля 2006 :: 13:54
Печать  
Если в Entreprise Manager сгенерить скрипт на create таблицы справочника, видно, что почти все поля имеют описание "NOT NULL". Ты же заполняешь только поле Descr. Нужно заполнить и  остальные поля.
  
Наверх
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #8 - 17. Июля 2006 :: 08:43
Печать  
А где взять этот "идентификатор элемента"?
  
Наверх
ICQ  
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #9 - 17. Июля 2006 :: 08:48
Печать  
es3000 писал(а) 17. Июля 2006 :: 08:43:
А где взять этот "идентификатор элемента"?

Читай описание объекта SQLLock.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #10 - 18. Июля 2006 :: 15:55
Печать  
es3000 писал(а) 14. Июля 2006 :: 13:08:
Никакой ощибки не возвращает


полюбому должна была выскочить ошибка: Cannot insert the value NULL into column ......

если пытаешься вставить запись обязательно заполняй все поля (кроме identity, хотя 1С и его правит(если мне память не изменяет)). лучше insert затулить в процедуру на всякий случай.
  
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #11 - 18. Июля 2006 :: 16:22
Печать  
villy писал(а) 18. Июля 2006 :: 15:55:
полюбому должна была выскочить ошибка: Cannot insert the value NULL into column ......

Ошибка - это когда
Код
Выбрать все
л_ODBCRecordset.ВыполнитьСкалярный(...); 


или, хотя бы,
Код
Выбрать все
Если л_ODBCRecordset.Выполнить(...) = 0 Тогда 


а приведённый код - неуправляемый в принципе.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #12 - 18. Июля 2006 :: 16:40
Печать  
Код
Выбрать все
л_ODBCRecordset = СоздатьОбъект("ODBCRecordset");
Если л_ODBCRecordset.Выполнить("DELETE FROM $Справочник.Склад_Товары") = 0 Тогда
    Сообщить("Описание ошибки: " + л_ODBCRecordset.ПолучитьОписаниеОшибки());
КонецЕсли;
Если л_ODBCRecordset.Выполнить("INSERT INTO $Справочник.Склад_Товары (Descr) VALUES (""какой-то товар"")") = 0 Тогда
    Сообщить("Описание ошибки: " + л_ODBCRecordset.ПолучитьОписаниеОшибки());
КонецЕсли;
 

  
Наверх
ICQ  
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #13 - 18. Июля 2006 :: 16:43
Печать  
Вообще, не понятно к какой базе идет запрос. Если к "родной", то можно просто
Код
Выбрать все
л_ODBCRecordset = СоздатьОбъект("ODBCRecordset");
 


без "ODBCDatabase". Возможен вариант конечно и через "ODBCDatabase".
  
Наверх
ICQ  
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Можно ли использовать INSERT и DELETE для спра
Ответ #14 - 19. Июля 2006 :: 07:00
Печать  
в начальном примере:
1. можно и не использовать объект database, т.к. имхо, устанавдивается соединение к текущей базе.
2. после "л_ODBCRecordset.Выполнить("INSERT INTO $Справочник.Склад_Товары (Descr) VALUES (""какой-то товар"")")" можно получить описание ошибки, лучше сразу и сообщить и в результате будет видна ошибка приведеная мною выше. решение данной ошибки первым предложил vig.

2  berezdetsky & spock. вопрос не в том управляемый или не управляемый код. сообщить результат метода ПолучитьОписаниеОшибки можно в любом случае(даже не проверяя результат метода Выполнить), а в данном случае она будет(сам лично проверил Подмигивание ).
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать