insert FDB из 1С #722200


#0 by Юзер123
Доброго дня. Пытаюсь настроить insert  из 1с в FDB  базу. Вот строка запроса с данными Insert INTO STAFF_CARDS_AREAS (ID_STAFF_CARDS_AREAS,STAFF_CARDS_ID, AREAS_TREE_ID,PROHIBIT,AREAS_IS_REQUIRED) values (777, 9995, 7 433, 0,0) вот сам запрос ТекстЗапросаНаДоступ =  "Insert INTO STAFF_CARDS_AREAS (ID_STAFF_CARDS_AREAS,STAFF_CARDS_ID, AREAS_TREE_ID,PROHIBIT,AREAS_IS_REQUIRED) " + Текст ошибки Проблемы с выполнением запроса к FireBird{Форма.Форма.Форма}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [ODBC Firebird Driver][Firebird]Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 131 Таблица в FDB в чем дело подскажите кто знает)
#1 by Banned
Сообщить(ТекстЗапросаНаДоступ);
#2 by Юзер123
Вот строка запроса с данными Insert INTO STAFF_CARDS_AREAS (ID_STAFF_CARDS_AREAS,STAFF_CARDS_ID, AREAS_TREE_ID,PROHIBIT,AREAS_IS_REQUIRED) values (777, 9995, 7 433, 0,0) все уже написал же)
#3 by Banned
Сюда внимательно смотри...
#4 by Ненавижу 1С
AREAS_TREE_ID  это число, используй функцию формат, чтобы исключить в преобразовании к строке неразрывный пробел Конкретно здесь: 7 433
#5 by Юзер123
сейчас уберу пробелу и  преобразую в число) .  минутку)
#6 by Юзер123
просто убрал пробелы и все заработало. Спасибо)
#7 by Юзер123
Вопрос в  по горячим следам. Если надо сделать по 1 таблице STAFF_CARDS_AREAS  2 строчки.  Как быть? Надо что бы ID_STAFF_CARDS_AREAS было уникальным. Но если вставить запрос в цикл то после записи данные не обновляются. С SQL  запросами не особо дружу. Знаю есть некий UBDATE  но как оно работает ?
#8 by Юзер123
т.е.  надо сделать так что бы после записи в таблицу данные сразу же обновлялись..
#9 by Kurbash
так апдейт таблицу по этому ID
#10 by Юзер123
как это будет выглядеть?) ща погуглю)
#11 by Kurbash
update table ....set...where  ID_STAFF_CARDS_AREAS=...
#12 by Kurbash
update table ....set...where  ID_STAFF_CARDS_AREAS in (select ID_STAFF_CARDS_AREAS from....)
#13 by Юзер123
....  тут в  ступор вводят)
#14 by Kurbash
три точки в ступор вводят?
#15 by Юзер123
так?
#16 by Kurbash
нет,UPDATE STAFF_CARDS_AREAS set каким столбцам какие значения присваиваешь SET ID_STAFF_CARDS_AREAS='МойИд'
#17 by Kurbash
UPDATE STAFF_CARDS_AREAS set каким столбцам какие значения присваиваешь where ID_STAFF_CARDS_AREAS='МойИд'
#18 by Юзер123
ОК спс. Сейчас попробуем
#19 by Юзер123
set  повторяет то что в insert  написано?
#20 by Юзер123
через "="
#21 by Kurbash
почти
#22 by Kurbash
Update INTO STAFF_CARDS_AREAS set AREAS_TREE_ID=777,PROHIBIT=9995 и так далее where where ID_STAFF_CARDS_AREAS='МойИд'
#23 by Kurbash
Update STAFF_CARDS_AREAS set AREAS_TREE_ID=777,PROHIBIT=9995 и так далее where where ID_STAFF_CARDS_AREAS='МойИд' как то так
#24 by Юзер123
#25 by Юзер123
ТекстUpdate = "Update STAFF_CARDS_AREAS set STAFF_CARDS_ID = "+СокрЛП(ID_CARD)+", PROHIBIT = 0, AREAS_IS_REQUIRED = 0, AREAS_TREE_ID = " +AREAS_TREE_ID+" как то так?
#26 by Kurbash
похоже на правду, про пробелы не забудь
#27 by Юзер123
да проверил) все работает) спасибо.
#28 by Юзер123
а если без update  в какой момент происходит обновление таблиц?
#29 by Kurbash
после insert надо принять транзакцию. Для этого етсь команда Commit
#30 by Kurbash
т.е. инсерт и т.д тотом ставишь ";" и соммит
#31 by Юзер123
спасиб. надо почитать таки про sQl  запросы...
#32 by Kurbash
это уже не запросы это PL/SQL
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С