Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
Есть приложение мдб и база данных мдб. Хочу выполнить процедуру в базе данных мдб.
Где-то видел, не могу найти. А-ля сохраненная процедура в мдб.
Возможно ли это?
Спасибо!
3 янв 07, 18:32    [3605243]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Alexey~
Member

Откуда: Израиль
Сообщений: 20
Игорь Цой
Есть приложение мдб и база данных мдб. Хочу выполнить процедуру в базе данных мдб.
Где-то видел, не могу найти. А-ля сохраненная процедура в мдб.
Возможно ли это?
Спасибо!

Сохранённая процедура доступна только в .mda. Т.е. с подключением к SQL Server
4 янв 07, 08:31    [3606092]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
автор
Можно ли выполнить запрос или процедуру в другом mdb-файле?

C:\Other.mdb
в ней таблица Table
и запрос Query: select * from Table
код в вашем mdb:
Sub s()
Dim dbit As DAO.Database
Dim rs As DAO.Recordset

Set dbit = OpenDatabase("C:\Other.mdb")
Set rs = dbit.OpenRecordset("select * from [Query];")
While Not (rs.EOF)
  Debug.Print rs.Fields(0)
  rs.MoveNext
Wend
End Sub
4 янв 07, 09:22    [3606124]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
ILL HEAD
автор
Можно ли выполнить запрос или процедуру в другом mdb-файле?

C:\Other.mdb
в ней таблица Table
и запрос Query: select * from Table
код в вашем mdb:
Sub s()
Dim dbit As DAO.Database
Dim rs As DAO.Recordset

Set dbit = OpenDatabase("C:\Other.mdb")
Set rs = dbit.OpenRecordset("select * from [Query];")
While Not (rs.EOF)
  Debug.Print rs.Fields(0)
  rs.MoveNext
Wend
End Sub


А разве это не на текущей базе выполнится запрос?
Мне нужно выполнить запрос на добавление/изменение и чтоб он выполнился в базе данных на другой машине, чтоб не тащить зря по сети данные и не нагружать траффик.
4 янв 07, 10:41    [3606230]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
на текущей :)
но запрос то в другой базе %) как и просил
4 янв 07, 11:05    [3606270]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
а если в той другой базе есть мозги (ну там форма запущена например)
то можно передать команду ей (форме)
и форма выполнит и запрос и процедуру
4 янв 07, 11:06    [3606276]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
ILL HEAD
на текущей :)
но запрос то в другой базе %) как и просил

:)
А жаль... значит никак?
4 янв 07, 11:07    [3606278]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
ILL HEAD
а если в той другой базе есть мозги (ну там форма запущена например)
то можно передать команду ей (форме)
и форма выполнит и запрос и процедуру

А как... можно поподробнее? Но сначала эту форму надо запустить как-то..
4 янв 07, 11:08    [3606284]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
как передать - самый простой вопрос (флажок в таблице общего доступа кпримеру)
как запустить - вариант - ту другую бд запускать при запуске той другой эвм
4 янв 07, 11:12    [3606298]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Можно обойтись и без процедуры. Запрос можно исполнить в другом мдб так:

DoCmd.RunSQL "SELECT MyTbl.* FROM MyTbl IN 'D:\Versions\MyDb2.mdb';"

Можно выполнить и исполняемый (UPDATE, INSERT) запрос
4 янв 07, 11:20    [3606324]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
Rivkin Dmitry
Можно обойтись и без процедуры. Запрос можно исполнить в другом мдб так:

DoCmd.RunSQL "SELECT MyTbl.* FROM MyTbl IN 'D:\Versions\MyDb2.mdb';"

Можно выполнить и исполняемый (UPDATE, INSERT) запрос

Это точно в другой запуститься?
Спасибо!
4 янв 07, 11:26    [3606340]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Игорь Цой
ILL HEAD
а если в той другой базе есть мозги (ну там форма запущена например)
то можно передать команду ей (форме)
и форма выполнит и запрос и процедуру

А как... можно поподробнее? Но сначала эту форму надо запустить как-то..


Кажется, это возможно сделать используя DDE channel (см DDE Function). Но на той другой мдб должны быть построены специальные механизмы - функции и процедуры, которые могут вызываться из текущей дб. Посде построение канала связи можно объмениваться информацией между двумя дб в том числе передавать команды.
4 янв 07, 11:30    [3606347]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
>Это точно в другой запуститься?
Только выполнятся будет на запустившей машине
>чтоб не тащить зря по сети данные и не нагружать траффик.
нужен клиент-сервер так используй сервер например MSSQL а не выдумывай лисапед
4 янв 07, 11:32    [3606352]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Игорь Цой
Rivkin Dmitry
Можно обойтись и без процедуры. Запрос можно исполнить в другом мдб так:

DoCmd.RunSQL "SELECT MyTbl.* FROM MyTbl IN 'D:\Versions\MyDb2.mdb';"

Можно выполнить и исполняемый (UPDATE, INSERT) запрос

Это точно в другой запуститься?
Спасибо!


Я прошу прощения, несколько неточен я в этом топике. RunSQL - работает только для исполняемых запросов, т.е. правильно
DoCmd.RunSQL "UPDATE MyTbl IN 'D:\Versions\MyDb2.mdb' SET Field1 = 10 WHERE Field2 = NULL;"

А если открыть рекордсет
Dim rs As DAO.Recordset
Set rs = CurrentDb("SELECT MyTbl.* FROM MyTbl IN 'D:\Versions\MyDb2.mdb';")
То в рекордсете получим данные из того дб. А с рекордсетом можем делать все что захотим
4 янв 07, 11:39    [3606369]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
Rivkin Dmitry

Я прошу прощения, несколько неточен я в этом топике. RunSQL - работает только для исполняемых запросов, т.е. правильно
DoCmd.RunSQL "UPDATE MyTbl IN 'D:\Versions\MyDb2.mdb' SET Field1 = 10 WHERE Field2 = NULL;"

А если открыть рекордсет
Dim rs As DAO.Recordset
Set rs = CurrentDb("SELECT MyTbl.* FROM MyTbl IN 'D:\Versions\MyDb2.mdb';")
То в рекордсете получим данные из того дб. А с рекордсетом можем делать все что захотим


Выполняться-то всеравно будет на вызвавшей машине, т.е. данные пойдут по сети...
Видать дохлое дело, неужто кроме как SQL это никак?

Rivkin Dmitry

Кажется, это возможно сделать используя DDE channel (см DDE Function). Но на той другой мдб должны быть построены специальные механизмы - функции и процедуры, которые могут вызываться из текущей дб. Посде построение канала связи можно объмениваться информацией между двумя дб в том числе передавать команды.


Хотя бы в общих чертах пожалуйста, как это сделать? Сильно муторно это?
4 янв 07, 12:19    [3606470]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Rivkin Dmitry
Member

Откуда: Israel
Сообщений: 5500
Что-то подобное я делал, но не с Аксом. Было это давно, примеров не осталось к сожалению. Копаться вновь, извини, времени нету. В целом, этот инструмент занятен, но, по-моему, сейчас не пользуется уже большой популярностью. Да и не скоростной он. Но, собственно, оно и не понятно зачем нужно. Или воспользоваться рекомендацией Латука или, еще проще, поставить програмный модуль Акса на сервер и дать всем доступ к нему. Пусть запускают и работают на сервере
4 янв 07, 12:27    [3606491]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
автор
или, еще проще, поставить програмный модуль Акса на сервер и дать всем доступ к нему. Пусть запускают и работают на сервере
А разве в этом случае данные не будут тащиться на рабочую станцию? Ведь в этом случае сервер только хранилище файлов и ничего более.
4 янв 07, 12:32    [3606511]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Есть вариант еще проще - ходить терминалом и не парится
4 янв 07, 13:19    [3606691]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
Latuk
Есть вариант еще проще - ходить терминалом и не парится

Это как? Примерчик, пожалуйста, если можно.
4 янв 07, 13:24    [3606704]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Allll
Member

Откуда:
Сообщений: 1435
Надо запустить трояна на компьютере пользователя, например, через автозагрузку. Чтобы он всегда был в памяти, и передавать ему команды на исполнение. И в этом случае, все запросы будут выполняться на компьютере пользователя и "данные не будут тащиться по сети". Это уже предлагал ILL HEAD, только он назвал трояна, "запущенной формой" :)

Роль такого трояна может выполнить написанная вами программа или готовые: Radmin или MS SQL :)

Вы пробовали выполнить запрос по-нормальному (как в обычных файл-серверных базах) и он выполняется чрезвычайно медленно? Из-за каких проблем возник у вас вопрос про удалённое выполнение?
4 янв 07, 13:26    [3606710]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
Allll
Надо запустить трояна на компьютере пользователя, например, через автозагрузку. Чтобы он всегда был в памяти, и передавать ему команды на исполнение. И в этом случае, все запросы будут выполняться на компьютере пользователя и "данные не будут тащиться по сети". Это уже предлагал ILL HEAD, только он назвал трояна, "запущенной формой" :)

Роль такого трояна может выполнить написанная вами программа или готовые: Radmin или MS SQL :)

Вы пробовали выполнить запрос по-нормальному (как в обычных файл-серверных базах) и он выполняется чрезвычайно медленно? Из-за каких проблем возник у вас вопрос про удалённое выполнение?


Запрос выполняется нормально... просто иногда приходиться что-то выполнить, но данные клиенту не нужны. Получается тащишь данные по сети, видоизменяешь, потом опять по сети назад отправляешь и зря только трафик нагружаешь.
4 янв 07, 13:34    [3606733]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
ILL HEAD
Member [заблокирован]

Откуда:
Сообщений: 8498
с таким подходом переходите на MSSQLSERVER - будете в восторге ... от сознания того что трафик близок к нулю :)
4 янв 07, 13:57    [3606792]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310
Это как? Примерчик, пожалуйста, если можно.
4 янв 07, 15:45    [3607103]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Latuk
Member

Откуда: N 54°38', E 037°35'
Сообщений: 7310


К сообщению приложен файл. Размер - 0Kb
4 янв 07, 15:49    [3607116]     Ответить | Цитировать Сообщить модератору
 Re: Можно ли выполнить запрос или процедуру в другом mdb-файле?  [new]
Игорь Цой
Member

Откуда: Москва
Сообщений: 231
Спасибо! Ща почитаем.
4 янв 07, 16:20    [3607198]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить