Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разъясните / 11 сообщений из 11, страница 1 из 1
26.02.2022, 22:32
    #40136549
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
Есть код, который получает данные с sql server'а написанный на ado по типу(написан по помяти, могут быть ошибки)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub Execute_PassThroughQuery()
   Dim myRecordset As ADODB.Recordset
   Dim cnt As ADOBD.Conection
   Dim strConnect As String

   strConnect = "Provider=SQLOLEDB;Data Source=yourServer\yourName;" & _
      "Initial Catalog=Northwind;User Id=sa;Password="
   cnt = CurrentProject.Connection
   Set myRecordset = cnt.Execute(strConnect)
   Set myRecordset = Nothing
   Set cnt = Nothing
End Sub


Так вот, вопрос собственно следующий - где выполняется запрос? На сервере или же акцесс тянет себе всё из таблице в запросе, и потом уже на компе обрабатывается?
И как увеличить время ожидания запроса с 30 сек, до 1-2 минуты?
...
Рейтинг: 0 / 0
26.02.2022, 22:40
    #40136550
PizzaPizza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
BlackeAngel,

А где запрос то?
Есть соединение strConnect с сервером (sa - это не надо так делать), а запрос где передается?
Запрос - это инструкция чего собственно вам надо. Если вы передаёте запрос на sql server он отвечает данными согласно вашему запросу, а не "всё из таблице в запросе". Если бы тянулось всё, то запрос то зачем вообще?
...
Рейтинг: 0 / 0
26.02.2022, 22:48
    #40136552
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
PizzaPizza,
Забыл написать)))
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Sub Execute_PassThroughQuery()
   Dim myRecordset As ADODB.Recordset
   Dim cnt As ADOBD.Connection
   Dim strConnect As String
cnt.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Baza\Base.mdb;Persist Security Info=False"
    cnt.Open
   Set myRecordset = cnt.Execute("SELECT * FROM [ODBC;Driver=SQL Server;Server=yourserver\yourName;" & _
      "Database=Northwind;UID=;PWD="].[dbo].[test_base].[table]")
   Set myRecordset = Nothing
   Set cnt = Nothing
End Sub
...
Рейтинг: 0 / 0
27.02.2022, 01:05
    #40136558
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
BlackeAngel
вопрос собственно следующий - где выполняется запрос?
Может быть и так, и эдак, зависит от ТОЧНОГО кода. Почитайте про серверные и клиентские курсоры.
...
Рейтинг: 0 / 0
27.02.2022, 03:09
    #40136563
PizzaPizza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
BlackeAngel,

Using the Execute method on a Connection Object (ADO) object executes whatever query you pass to the method in the CommandText argument on the specified connection. If the CommandText argument specifies a row-returning query, any results that the execution generates are stored in a new Recordset object. If the command is not intended to return results (for example, an SQL UPDATE query) the provider returns Nothing as long as the option adExecuteNoRecords is specified; otherwise Execute returns a closed Recordset.

The returned Recordset object is always a read-only, forward-only cursor. If you need a Recordset object with more functionality, first create a Recordset object with the desired property settings, then use the Recordset object's Open Method (ADO Recordset) method to execute the query and return the desired cursor type.

Вы вроде Execute обычный SQL, полагаю, что сервер его выполняет там, куда вы подключились и возвращает вам только результаты вашего запроса в myRecordset.

Правда в вашем случае там как будто еще одно соединение в запросе к еще одному серверу....
...
Рейтинг: 0 / 0
27.02.2022, 09:12
    #40136568
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
PizzaPizza,
Ну да, 2 подключения: 1 это подключение к mdb файлу, а второй - в запросе. Вот поэтому я и спрашиваю, кто будет выполнять запрос. Просто у меня надстройка, которая работает в таком ключе, результирующие данные иногда кладутся в mdb файл, но запрсы в большинстве своём связаны с тяганием данных с сервера. Всё это жутко долго. Читал, что надо чтобы запросы выполнялись на сервере, а возвращались лишь результаты. Вот и интересуюсь, сервер в текущей конструкции работает или же нет
...
Рейтинг: 0 / 0
27.02.2022, 10:31
    #40136575
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
BlackeAngel
PizzaPizza,
Ну да, 2 подключения: 1 это подключение к mdb файлу, а второй - в запросе. Вот поэтому я и спрашиваю, кто будет выполнять запрос. Просто у меня надстройка, которая работает в таком ключе, результирующие данные иногда кладутся в mdb файл, но запрсы в большинстве своём связаны с тяганием данных с сервера. Всё это жутко долго. Читал, что надо чтобы запросы выполнялись на сервере, а возвращались лишь результаты. Вот и интересуюсь, сервер в текущей конструкции работает или же нет


Код: sql
1.
2.
  strConnect = "Provider=SQLOLEDB;Data Source=yourServer\yourName;" & _
      "Initial Catalog=Northwind;User Id=sa;Password="


1. Прочитать данные из базы MS SQL может только MS SQL.
2. Отсель тривиальное умозаключение: запрос выполняет MS SQL.


3. НО! в вашем втором случае, запрос к JET (синоним Access) - файловая база данных. Без сервера.
Где вам тут СЕРВЕР примерещился?
Код: sql
1.
 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\Baza\Base.mdb;Persist Security Info=False"


этот запрос выполняет ядро JET- это локально.
...
Рейтинг: 0 / 0
27.02.2022, 12:07
    #40136584
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
aleks222, второй случай меня и интересует. В первом, я не тот код скопировал.
Где приглючило? А вот тут
Код: vbnet
1.
2.
"SELECT * FROM [ODBC;Driver=SQL Server;Server=yourserver\yourName;" & _
      "Database=Northwind;UID=;PWD="].[dbo].[test_base].[table]"
...
Рейтинг: 0 / 0
27.02.2022, 14:02
    #40136593
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
BlackeAngel
aleks222, второй случай меня и интересует . В первом, я не тот код скопировал.
Где приглючило? А вот тут
Код: vbnet
1.
2.
"SELECT * FROM [ODBC;Driver=SQL Server;Server=yourserver\yourName;" & _
      "Database=Northwind;UID=;PWD="].[dbo].[test_base].[table]"



Ты уж определись.
...
Рейтинг: 0 / 0
27.02.2022, 14:57
    #40136595
BlackeAngel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
aleks222,
В чём определиться то?
...
Рейтинг: 0 / 0
27.02.2022, 23:41
    #40136643
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разъясните
BlackeAngel,

Популярно:
если таблица лежит в mdb, то ее будет читать Акцесс на той машине, на которой открывают этот mdb (или лезут в этот mdb каким либо другим способом)...
Пока нет такого понятия Microsoft Access Server, можете написать свой и тогда...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разъясните / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]