Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Чем отлич-ся Query от SQL запроса.

2.1K
06 декабря 2002 года
Best
11 / / 06.12.2002
Всем здравствуйте!!!
Подскажите пожалуйста, в чем у меня проблема?
В SQL-е создаю такой запрос
"DELETE Li
FROM
list_inform1 Li, Medicines M
Where
(Li.Medicines=M.ID_medicines)and(M.Category=9)"

Т. е. в пример возьмем, когда удаляю запись под номером 9-ть из таблицы Medicines то он из подчиненной таблицы list_inform1 удаляет все записи связанный с 9-ой записью. Здесь все работает нормально, но теперь этот же запрос запускаю в Билдере в таком виде:

Query1->ParamByName("Category")->AsInteger=9;
Query1->ExecSQL();

Когда скрипт в Query1 выглядит так:
DELETE Li
FROM
list_inform1 Li, Medicines M
Where
(Li.Medicines=M.ID_medicines)and(M.Category=:Category)

он у меня выдает такую ошибку “[Microsoft][Др. ODBC Microsoft Access] Необходимо указать таблицу, содержащую удаляемые записи”

ВОПРОС ПЕРВЫЙ: Почему тот же запрос который в SQL-е работает в Query не работает, они чем то отличаются?

А если в Query скрипт изменю на
DELETE Li.*
FROM
list_inform1 Li, Medicines M
Where
(Li.Medicines=M.ID_medicines)and(M.Category=:Category)
Он мне не выдает никакую ошибку, но и ничего не удаляет.

ВОПРОС ВТОРОЙ: Почему он у меня не удаляет?

Последний вопрос: Кто-нибудь подскажет, может быть это дел-ся по другому?
Чтобы удалить все связанные записи, из подчиненной таблицы, когда удаляю запись из главной таблицы. Если считать, что эти поля не ключевые.
Неужели отлич-ся Query-запрос в Билдере от SQL-запроса в Query Analyzer?
Заранее спасибо.
1.7K
06 декабря 2002 года
Mark
114 / / 21.11.2002
Как вариант - воспользуйся триггером БД. К стати, какая у тебя СУБД?
2.1K
06 декабря 2002 года
Best
11 / / 06.12.2002
Цитата:
Originally posted by Mark
Как вариант - воспользуйся триггером БД. К стати, какая у тебя СУБД?



Это же не имеет смысла, какая у меня база. Пока на Access-е, а так будет в SQL-е. Я все равно обра-юсь к базе через DSN-ку. Чтобы использовать триггеры, я же говорил что у меня эти поля не ключевые. И к тому же я хочу работать через SQL-запрос. Неужели Query в Билдере отлич-ся от SQL в Query Analyzer? Если не трудно можете выставить код программы, с запросами или отправить мне по почте [email]asirim@mail.ru[/email]?

1.7K
06 декабря 2002 года
Mark
114 / / 21.11.2002
Цитата:
Originally posted by Best


DELETE Li
FROM
list_inform1 Li, Medicines M
Where
(Li.Medicines=M.ID_medicines)and(M.Category=:Category)


Стоп! Неверна сама конструкция (во всяком случае для Oracle). Попробуй написать так:
DELETE
FROM
list_inform1 Li
Where
Li.Medicines IN
(SELECT M.ID_medicines FROM Medicines M WHERE(M.Category=:Category))

2.1K
11 декабря 2002 года
Best
11 / / 06.12.2002
Цитата:
Originally posted by Mark

Стоп! Неверна сама конструкция (во всяком случае для Oracle). Попробуй написать так:
DELETE
FROM
list_inform1 Li
Where
Li.Medicines IN
(SELECT M.ID_medicines FROM Medicines M WHERE(M.Category=:Category))



Привет Mark!
Точно, у меня кострукция была неправильна. Теперь все нормально удаляет. Спасибо тебе, а то вроде бы так просто, но застрял на ровном месте. Так, что.....? выходит в Билдере не все SQL-запросы проходят??? :???:
Ммм, да-а...

1.7K
11 декабря 2002 года
Mark
114 / / 21.11.2002
Цитата:
Originally posted by Best


Привет Mark!
Точно, у меня кострукция была неправильна. Теперь все нормально удаляет. Спасибо тебе, а то вроде бы так просто, но застрял на ровном месте. Так, что.....? выходит в Билдере не все SQL-запросы проходят??? :???:
Ммм, да-а...


Ну Билдеру вообще параллельно sql-предложение ты передаешь на сервер БД или слова матерные... Дело видимо в конкретной реализации SQL на конкретной СУБД. А Query Analyzer - это чей продукт?

2.1K
11 декабря 2002 года
Best
11 / / 06.12.2002
Цитата:
Originally posted by Mark

Ну Билдеру вообще параллельно sql-предложение ты передаешь на сервер БД или слова матерные... Дело видимо в конкретной реализации SQL на конкретной СУБД. А Query Analyzer - это чей продукт?



Query Analyzer - это обыкновенный запросник Microsoft SQL Server-а. (стандартный)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог