powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Работа с временными таблицами на SQL Server из VBA
25 сообщений из 26, страница 1 из 2
Работа с временными таблицами на SQL Server из VBA
    #32497750
ollka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть форма. При ее вызове создается 2 временные локальные таблицы на SQL Server. Одна из них заполняется. При открытии формы в VB стоит вызов хранимой процедуры на вставку в другую временную таблицу.
Dim q As QueryDef
Set q = CurrentDb.QueryDefs("KV_")
q.Sql = "Execute Pr_GroupKontra " & num & ", 1 "
q.Connect= "ODBC;DSN=SQLDSN;SERVER=SPRUTMASTER;UID=Elena;PWD=511pea;APP=Microsoft® Access;WSID=SPRUTMASTER;DATABASE=omarBase;"
q.Execute
Программа слетает на месте где стоит Execute: "ODBC ошибка"
KV_ - запрос к серверу. Если зайти в него и запустить запрос, то он нормально выполнится оттуда. А если не запустить, а просто открыть, а потом продолжить выполнение программы, она тоже выполнится. что делать?
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32497769
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локальная временная таблица существует только для коннекшена, в котором она создана. Наверное, у тебя коннекшены получаются разные. Один из вариантов- прямо в запросе дропать временную таблицу, если она есть, и создавать заново.
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32497832
Alenkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
для Shark :
А если в этой временной т/б есть данные, которые нужны?
И может есть какие-то тонкости в использовании временных таблиц?
А то вот они как-то не всегда верно работают. Например, временная таблица
создана, можно получить данные из нее, на ее основе открывается форма,
и когда форма открыта, то на все обращения к т/б - ошибка, т/б не видно, ее как будто нет,хотя на самом деле она есть, и после закрытия формы видна. И есть такие же формы и в них все работает.
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32497867
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
во первых как сказал шарк - если временная таблица создается в другом конекшене - что у тебя и есть то она не будет у тебя видна

во вторых если у тебя временную таблицу создает хранимая процедура то после завершения хранимой процедуры она прибъет эту таблицу


лучше использовать для работы с временными таблицами библиотеку ADO


если у тебя MDB то создай объект ADODB.CONNECTION
и выполняй в нем свои последовательности команд

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
dim conn as new adodb.connection

conn.open <Строка подключения>

With Conn
On Error Resume Next
.Execute  "drop TABLE #TempTable" 
On Error GoTo  0 
.Execute  "SELECT  ....   INTO #TempTable FROM     ... " 
.Execute  "ALTER TABLE dbo.#TempTable ADD CONSTRAINT PK_#TempTable PRIMARY KEY CLUSTERED ( id) ON [PRIMARY]" 



Код: plaintext
1.
2.
<Строки подключения>
  "Provider=SQLOLEDB;Data Source=<SERVER_NAME>;database=<DB_NAME>;uid=<UID>;pwd=<PWD>;"  ' MS SQL Server 6.x/7.x/2000 (OLEDB connection)   
"driver={SQL Server};server=<SERVER_NAME>;uid=<UID>;pwd=<PWD>;database=<DATABASE_NAME>" ' MS SQL Server  6 .x/ 7 .x/ 2000  (ODBC connection)
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32497945
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Может, есть тонкости в использовании временных таблиц
Есть. И она(тонкость) уже озвучена. Локальная временная таблица живет только для своего коннекшена.
На мой взгляд нелепо размещать временные таблицы на сервере, загружать его и создавать лишний трафик. Я в ADP то держу рядом с файлом проекта MDB для таких целей. А при ODBC то и подавно.
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32497957
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>как то не совсем верно работают
Есть в Access косяк- он использует два коннекшена. Я это в профайлере видел. ADP- проект. CurrentProject.Connection- один, а форма использует другой. Зачем ему два понадобилось- на совести разработчиков. Что-то поди с транзакциями в ихнем коде.
Но этот косяк к вопросу отношения не имеет, так как ты явно создаешь для своего запроса отдельный коннекшн с отдельной строкой подключения
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498075
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>2Shark
Интересно, а каким образом ты к ADP MDB прислюнил ?
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498081
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 SergeyKa
Скорее всего просто через ADO.Connection подрубился (ИМХО)
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498098
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>2paprome
а я то думал через Связь с таблицами ((
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498126
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я то думал через Связь с таблицами ((

И так частенько делаю. А в чем проблема?
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498160
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Shark
Есть в Access косяк- он использует два коннекшена. Я это в профайлере видел. ADP- проект. CurrentProject.Connection- один, а форма использует другой.
Вообще-то это изначально в аксесе было, даже в mdb. Для форм существовал свой собственный DAO.Workspace, отличный от DBEngine(0). И доступа к этому Workspace'у никак нельзя было получить (поэтому, например, в 97-м транзакции по форме и нельзя было устроить)
Это так, к слову пришлось.
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498167
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в том, что в ADP нельзя привязать таблицу из MDB (((
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498179
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таблицу прилинковать к серверу можно, но не нужно

делают рекодсет подключенный к мдб и назначают его форме
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498234
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сергейка
естли не можешь
привязать к adp таблицы из
mdb, то и нефиг
писать "ADP нельзя привязать таблицу из MDB"
остальные могут, причем несколькими способами.
прежде чем писать об этом,
прожуй сначала.
блин, неумники пошли.
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498252
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2ищ
Я конечно извиняюсь (
а можно хоть про один способ то узнать ?
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498264
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно хоть про один способ то узнать ?
paparomeСкорее всего просто через ADO.Connection подрубился (ИМХО)
АлексейКделают рекодсет подключенный к мдб и назначают его форме

Вот один из способов
Чем плох?
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498275
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А я могу этот самый рекордсет использовать в запросе ?
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498295
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я могу этот самый рекордсет использовать в запросе

Конечно! Почему нет.

3-й способ
- Файл - Внешние данные - Связь с таблицами - Связанный сервер - выбираешь или создаешь источник данных и вперед!
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498296
ищ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Set cnn = New ADODB.Connection
cnn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & CurrentProject.Path & "\манечка.mdb"
cnn.Open
Set rst = New ADODB.Recordset
rst.Open "SELECT Пользователь, ИмяОбъекта, LeftObject, TopObject, WidthObject, HeightObject " _
& "FROM tblКоордРазмерОбъектов " _
& "WHERE Пользователь='" & current_user & "' AND ИмяОбъекта='" & frm.Name & "'", cnn, adOpenKeyset, adLockOptimistic, adCmdText
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498316
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я могу этот самый рекордсет использовать в запросе ?
Вопрос (ИМХО) состоял в том, как в одном запосе соединить таблицы из mdb и MSSQL
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498328
SergeyKa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2paparome
Да да хоть один правильно понял )
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498435
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Как к ADP mdb
Только не через ADO, а через DAO. Он ему родной, и с обновляемостью рекордсетов проблем нет
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498447
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автори с обновляемостью рекордсетов проблем нет

и не только с обновляемостью но и суммовыми полями, рефрешем
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498927
Odess
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос (ИМХО) состоял в том, как в одном запосе соединить таблицы из mdb и MSSQL

ДА КАКЯ НАФИГ РАЗНИЦА!

Объединяй себе наздоровье.

Присоединеннуя таблицу из MDB файла SQL Server понимает как представление, и работает с ней абсолютно нормально! Повторяю - я довольно часто пользуюсь этим приемом!
...
Рейтинг: 0 / 0
Работа с временными таблицами на SQL Server из VBA
    #32498993
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Вопрос (ИМХО) состоял в том, как в одном запосе соединить таблицы из mdb и MSSQL
Это, по моему, не надо. Я по рекордсетам бегаю и копирую. Присоединение MDB к SQL не имеет ни малейшего смысла. На сервере своих таблиц хватает. Речь идет о том, что если нужна какая-то временная информация на клиенте, то и работать с ней удобно на клиенте и не мучить ею сервер. Забрав ее(информацию) предварительно с сервера через рекордсеты.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Работа с временными таблицами на SQL Server из VBA
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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