• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Почему не работает .... (access 2003)

  • Автор темы Leon
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

Leon

Доброго времени суток, кто-нибудь может объяснить, почему такой запрос с 2-мя таблицами работает :


UPDATE Firms_t, PRODUCT_LIST SET Firms_t.FirmNameEng = "<>"
WHERE (((Firms_t.FirmNamerus)=Product_list.ProdNamerus));

а с одной - выдает какую-то хрень ?? ->

UPDATE Firms_t SET Firms_t.FirmNameEng = "<>"
WHERE (((Firms_t.FirmNamerus)=Firms_t.ProdNamerus))

Может кто сталкивался с этим...


и такой маленький вопросик, можно на sql (под аксес) обновить поле с заданым интервалом, например от 10 до 27 или 50-100 или только Vba ??? (приведите пож. примеры)
 
O

ooo

Подробнее мысли изложите, а то телепатически трудно догнать.Какой интервал, значений поля?
 
B

Barmutik

Я конечно могу ошибаться но что-то мне подсказывает что ANSI стандарт языка SQL для команды UPDATE подразумевает обновление только одной таблицы за раз... условия могут быть из разных, а оновление только одной таблицы...
 
O

ooo

UPDATE Firms_t SET Firms_t.FirmNameEng = "<>"
WHERE exists (select 1 from product_list
where Product_list.ProdNamerus=firms_t.firmnamerus)
and <значение поля> between 1 and 27;
Может это имелось ввиду?
 
L

Leon

Походу вы меня не правильно поняли, первый вопрос: (Поясняю), почему не работает такой запрос (если кому не влом, проверьте)

UPDATE Firms_t SET Firms_t.FirmNameEng = "<>"
WHERE (((Firms_t.FirmNamerus)=Firms_t.ProdNamerus));

т.е. обновить 1 поле в таблице на основе равенства (то есть если 2 других поля равны, это поле обновляется, а если не равны - то нет) 2-х других <u>в одной таблице</u>. У меня почему-то выдает какую-то хрень....



и второй отдельный вопрос, как проапдейтить поле с заданным интервалом в таблице, т.е.

Update table1 Set pole = [интервал]

любой интервал, как правильно записать эту команду, а то у меня чего-то синтаксис страдает....
 
B

Barmutik

Первый в MS SQL Server работает .. только зачем двойные кавычки не понятно...

А второй ... UPDATE table1 SET pole IN (1..100)
 
L

Leon

С первым тоже разобрался, все ок (кавычки потому что без них знак "не равно" в ацесе =)), а со вторым попробую, спасибо !

На счет второго, access'03 пишет на IN - ошибка синтаксиса в инструкции Update, не работает млин !
 
B

Barmutik

Опс .. не так :blink: Приношу извинения ...

Код:
UPDATE Table1 SET Pole = value WHERE Pole IN (1, 5, 7, .., 100)
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!