|
|
|
| Помогите разобраться.
Делаю следующий запрос:
CurrentDb.Execute "SELECT Table1.* INTO temp1 FROM Table1; SELECT Table2.* INTO temp2 FROM Table2;"
Выдает ошибку: Онаружены символы за пределами инструкции SQL
Как можно реализовать данную процедуру и возможно ли ее вообще реализовать?
Заранее, очень благодарен! | |
|
| |
|
|
|
| CurrentDb.Execute "SELECT Table1.* INTO temp1 FROM Table1", DB_FAILONERROR
CurrentDb.Execute "SELECT Table2.* INTO temp2 FROM Table2", DB_FAILONERROR | |
|
| |
|
|
|
| Т.е. в одном Execute нельзя задать два запроса? Надо разбивать их на два Execute? | |
|
| |
|
|
|
| а что вас так в этом напрягает? | |
|
| |
|
|
|
| Да вообщем задача стоит следующая:
Необходимо подключаться к SQL Server-у через инет и из таблиц забирать все данные (таблиц около 10, информации много).
Если писать 10 Execut-ов, то при каждом Execute система выполняет подключение и отключение, а это лишний простой и лишние действия (сколько времени занимает не знаю, но занимает). В ADO.NET видел что можно подать в одной команде несколько запросов. Вот и подумал, а Access может делать так или нет? | |
|
| |
|
|
|
| А что мешает на самом SQL-сервере сделать хранимку с любым количеством запросов? | |
|
| |
|
|
|
| +100 | |
|
| |
|
|
|
| Не представляю как это можно сделать и как оно будет взаимодействовать с моим Access.
Если можно ссылочки дайте пожалуйста, как это делать и с чем его едят! | |
|
| |
|
|
|
| http://www.eduhmao.ru/var/db/files/4460.100482.htm
Да и вообще в гугле можно найти кучу примеров
погуглите на StoredProcedure и Access | |
|
| |
|
|
|
| А что мешает сделать одно подключение? | |
|
| |
|
|
|
| Подключение то одно. Но все равно незнаю или специфика Access или в чем то другом дело. Но система простаивает немного перед выполнением следующего запроса, в этот момент соединение физически не закрывается, но такое впечатление, что закрывается (почему он простаивает немного).
Может подскажите или дадите ссылочку как можно сделать это подругому и с максимальной скоростью выполнения. | |
|
| |
|
|
|
| начнем с того что execute в DAO выполняет только запросы на изменение даных...
для select нужно создавать Recordset | |
|
| |
|
|
|
| Несогласен с Вами. Execute может выполнить любой запрос, только результат он не возвращает. А в моем случае результат надо вставить в дуругую таблицу, поэтому Recordset мне уж точно не нужен. | |
|
| |
|
|
|
|
А это и не обязательно. Надеюсь с MS вы согласны ? вот цитата из help
The Execute method is valid only for action queries. If you use Execute with another type of query, an error occurs. Because an action query doesn't return any records, Execute doesn't return a Recordset
|
а это ссылка
http://msdn.microsoft.com/en-us/library/bb243015.aspx
Вы видимо путаете DAO и ADODB в ADO действительно можно с помощью execute выполнять select'ы
В приведенном вами коде используется DAO (CurrentDb)
А в моем случае результат надо вставить в дуругую таблицу, поэтому Recordset мне уж точно не нужен |
Вот как раз доя этого и нужно использовать запрос на добавление который можно выполнить методом EXECUTE | |
|
| |
|
|
|
| упс. Только что заметил что у вас запрос "Select.... INTO ...." т.е. action и может быть выполнен с помощью execute | |
|
| |
|
|
|
| Я так и понял. Что мы друг друга не много не поняли . За объяснение спасибо | |
|
| |