Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Access + Временные таблицы / 9 сообщений из 9, страница 1 из 1
04.09.2002, 16:32:45
    #32048155
iMorsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
Задача
создать форму в проекте access (.adp)
на основании данных из временой таблицы (#temp_table)

Что сделал.
Часть первая. удачная.
1. Создал форму
2. в событии Form_load

Dim stSQL As String
stSQL = " " _
+ " if object_id('tempdb..#temp_table') is not null " _
+ " drop table #temp_table " _
+ " create table #temp_table (name varchar(50) primary key, x smallint)" _
+ " insert into #temp_table (name, x) " _
+ " select name,-1 x from someView "

DoCmd.RunSQL stSQL
Form.Requery

3. открыл форму ВСЕ ОК!
4. задал свойство формы RecordSource - #temp_table
5. ВСЕ ОК !!!!
6. Удивился что вот так все просто и работает..

Часть вторая. Непонятная.
1. на следующий день решил запустить свою форму
2. Ошибка типа invalid object name #temp_table
3. Удивляюсь ведь сам видел как работает
4. Запускаю Profiler вижу что запрос по Select * from #temp_table отрабатывает раньше чем событие открытия формы (логично вообщето)
5. Изменяю свойство формы RecordSource на что то постоянное типа select * from table where 1 = 2 (что б потом подменить)
6. запускаю форму - тоже сообщение об ошибке. теперь уже при DoCmd.RunSQL stSQL.
Profiler показывает что все выполняется в одном коннекте

7. Перепробовал N вариантов
7.1 Вставил go между выражениями. Не помогло.
7.2 выполнял DoCmd.RunSQL stSQL не все сразу а по выражениям. Почемуто на каждое выражение Acceess решил выполнить в специально открытом для этого дела коннекте.????
7.3 переписал через ADODB.Command
причем указал текущее соединение (полученное через CurrentProject.Connection) то же не получилось.....
...
Рейтинг: 0 / 0
04.09.2002, 16:34:37
    #32048158
iMorsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
Забыл собственно вопрос написать :-)

Вопрос.
Кто нибудь пользовался временными таблицами при работе в проекте Access???
Если да и успешно, то что я сделал не так?
...
Рейтинг: 0 / 0
04.09.2002, 17:24:12
    #32048191
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
Я делал практически как и вы с небольшой разницей.
Во-первых, создание ВТ и ее загрузка в событии Open (оно происходит раньше), в конструкторе свойство RecordSource не писал, а делал это в проце Open - Me.RecordSource = #tbl. А по Unload писал Me.RecordSource = "" и Drop #tbl.
...
Рейтинг: 0 / 0
04.09.2002, 17:54:14
    #32048207
iMorsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
Сделал так...
все равно проблема осталась.
При выполнении docmd.runsql stSQL
а до динамического подсовывания этой таблице форме дело не доходит
ошибка об отсутствии #temptable
если взять эту строку и выполнитьв QA она выполнится....
...
Рейтинг: 0 / 0
04.09.2002, 19:09:45
    #32048239
MichaelGK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Private Sub Form_Open(Cancel As Integer)
Me.RecordSource =  "" ' для уверенности


DoCmd.RunSQL ("IF EXISTS (SELECT * FROM tempdb..sysobjects " & _
" WHERE id = object_id('tempdb..#temp_table'))  BEGIN " & _
" DROP TABLE #temp_table  END" & _
" CREATE TABLE #temp_table (myname varchar(50)CONSTRAINT PrimaryKey PRIMARY KEY, x smallint)")

DoCmd.RunSQL (" insert into #temp_table (myname, x) Values('vvv',10 ) ")


Me.RecordSource =  "#temp_table " 

End Sub
__________________________________________

Private Sub Form_Unload(Cancel As Integer)

Me.RecordSource =  ""
DoCmd.RunSQL (" Drop Table #temp_table ")

End Sub

Протестировал, работает. Посмотрите, может остались хвосты от ваших многочисленных проб, ну и код я слегка подрихтовал.
...
Рейтинг: 0 / 0
04.09.2002, 19:24:53
    #32048242
iMorsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
Спасибо, заработало (пока на новой форме)
...
Рейтинг: 0 / 0
05.09.2002, 10:25:06
    #32048311
AlexJuice
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
А я вот сделал форму на основе ХП, которая создает временную таблицу. И никаких глюков. Хотя, мобыть, я чего-то не замечаю? ;-)))
...
Рейтинг: 0 / 0
05.09.2002, 16:37:53
    #32048510
_ChaiNik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
2 iMorsh
А какой сервер пользуете?
У меня на SQL7 все работает без проблем, а на 2К отказывается, говорит нет такого объекта..
...
Рейтинг: 0 / 0
06.09.2002, 11:47:49
    #32048721
iMorsh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Access + Временные таблицы
2_ChaiNik
SQL 2000
У меня все заработало.
По примеру MichaelGK, за что ему спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Access + Временные таблицы / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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