Пакетный запрос или что-то в этом роде.

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Пакетный запрос или что-то в этом роде.

Сообщение Andrev » 20.04.2006 (Чт) 10:34

Люди, есть ли в акцессе способ, чтобы одним запросом выполнить и удаление записей из таблицы, и вставить новые? Иными словами, можно ли как-нить объединить запросы "delete * from table" и "insert into table"?
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 20.04.2006 (Чт) 11:03

можно, выполняй их одним скриптом с разделителем
";" + перевод строки

Код: Выделить всё
SQL ="delete * from table;" & _
         "insert into table1 select * from table2;"
cn.Execute SQL

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 20.04.2006 (Чт) 11:45

Не, не так. В акцессе. Реально сделать именно ЗАПРОС, который выполнял бы несколько инструкций SQL? Если да - то как, если нет - то прошу модераторов закрыть тему. Но хотелось бы получить однозначный ответ.
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 20.04.2006 (Чт) 11:50

управляющий запрос к серверу, кажется так это называется в Акцессе

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 20.04.2006 (Чт) 12:13

Угу. Яндекс выдал кучу ссылок, побродив по которым я могу сказать одно: да, есть такие запросы. Но что они из себя представляют и как с ними работать?... И что-то мне подсказывает, что это больше относится к SQL-серверу, нет?
Я к чему все это веду... В акцессе можно выбрать тип запроса: на добавление/удаление/выборку и т.д. так вот... Не привязываясь ни к чему - можно ли именно В АКЦЕССЕ сделать запрос (один запрос во вкладке "запросы"), который бы:
1. удалял записи из таблицы.
2. Вставлял данные в очищенную таблицу.
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.04.2006 (Чт) 12:20

Очень хочется сказать "Нет, нельзя".
Но ввиду того, что в более новых версиях access, как было показано, можно задавать параметры при вызовах запросов из других запросов (о чём я не знал), скажу лишь "Мне об этом неизвестно".
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 20.04.2006 (Чт) 12:57

Не будем заморачиваться с новыми версиями - интересует акцесс 97-2000. Это не "более новые версии". Там это можно? Как?
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 20.04.2006 (Чт) 13:02

Странные оценки.
В 97 вызов переметризированных запросов не поддерживается, в 2000 - поддерживается.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 20.04.2006 (Чт) 13:05

Ладно. Забудем об этом. Получается, проще всего сделать средствами ВБА или макросами. Но все-таки интересно... Очень интересно...
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 20.04.2006 (Чт) 16:25

все очень просто - открываешь новый конструктор запроса, затем не выьирая никаких таблиц идешь в меню Запрос\Запрос SQL\Управление , а дальше ручками пишешь свой SQL-код сюда и нижамаешь кнопочку Сохранить Запрос. :wink:

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 20.04.2006 (Чт) 20:55

Konst_One, а ты ничего не путаешь?
Если таким образом попытаться создать, например, запрос:
Код: Выделить всё
delete * from table1;
insert into  table1 select * from table2

то при попытке его сохранения ругается:
Обнаружены символы за пределами инструкции SQL
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 21.04.2006 (Пт) 8:31

Во-во. Я ж о том и говорю...
В этой жизни нет ничего невозможного. Если у вас что-то не получается, значит, вы что-то делаете не так.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 21.04.2006 (Пт) 11:32

да, похоже, что только средствами ADO можно, а как объект в базе это не сохранить

VVitafresh
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1641
Зарегистрирован: 12.05.2005 (Чт) 14:44
Откуда: Херсон, UA

Сообщение VVitafresh » 21.04.2006 (Пт) 14:56

Konst_One писал(а):да, похоже, что только средствами ADO можно, а как объект в базе это не сохранить

"Так отож". Очень удобно было бы хранить готовые большие запросы в базе и лишь вызывать их из программы по имени. Мне кажется мелкософт искусственно убрали эту возможность исходя из направленности Access преимущественно как настольной БД.
Никакую проблему невозможно решить на том же уровне, на каком она возникла. Нужно стать выше этой проблемы, поднявшись на следующий уровень.

Andrev
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 19.01.2005 (Ср) 9:22
Откуда: Kursk

Сообщение Andrev » 22.04.2006 (Сб) 11:11

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


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList  
cron