powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Разъясните
11 сообщений из 11, страница 1 из 1
Разъясните
    #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
Разъясните
    #40136550
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel,

А где запрос то?
Есть соединение strConnect с сервером (sa - это не надо так делать), а запрос где передается?
Запрос - это инструкция чего собственно вам надо. Если вы передаёте запрос на sql server он отвечает данными согласно вашему запросу, а не "всё из таблице в запросе". Если бы тянулось всё, то запрос то зачем вообще?
...
Рейтинг: 0 / 0
Разъясните
    #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
Разъясните
    #40136558
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel
вопрос собственно следующий - где выполняется запрос?
Может быть и так, и эдак, зависит от ТОЧНОГО кода. Почитайте про серверные и клиентские курсоры.
...
Рейтинг: 0 / 0
Разъясните
    #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
Разъясните
    #40136568
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PizzaPizza,
Ну да, 2 подключения: 1 это подключение к mdb файлу, а второй - в запросе. Вот поэтому я и спрашиваю, кто будет выполнять запрос. Просто у меня надстройка, которая работает в таком ключе, результирующие данные иногда кладутся в mdb файл, но запрсы в большинстве своём связаны с тяганием данных с сервера. Всё это жутко долго. Читал, что надо чтобы запросы выполнялись на сервере, а возвращались лишь результаты. Вот и интересуюсь, сервер в текущей конструкции работает или же нет
...
Рейтинг: 0 / 0
Разъясните
    #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
Разъясните
    #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
Разъясните
    #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
Разъясните
    #40136595
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,
В чём определиться то?
...
Рейтинг: 0 / 0
Разъясните
    #40136643
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel,

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


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