Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / INSERT во временную таблицу MS SQL / 3 сообщений из 3, страница 1 из 1
10.12.2008, 15:22
    #35705713
blest
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT во временную таблицу MS SQL
Есть два модуля в Excel - е
1)
Sub test()

Dim Con As Object
Dim rst As Object
Dim ConStr As String

Set Con = CreateObject("ADODB.connection")
Set rst = CreateObject("ADODB.connection")

Con.Open "Provider=SQLOLEDB;Data Source=@;User Id=@;Initial Catalog=@;Password=@"

ConStr = "CREATE TABLE #t1 (t1 varchar(100), t2 varchar(100))"
ConStr = ConStr + " insert into #t1 values ('a', 'b')"
ConStr = ConStr + " insert into #t1 values ('c', 'd')"
ConStr = ConStr + " SELECT * FROM #t1"

Set rst = Con.Execute(ConStr)

MsgBox (rst.fields(0).Name)

End Sub
'-------------------конец

2)
Sub test()

Dim Con As Object
Dim rst As Object
Dim ConStr As String

Set Con = CreateObject("ADODB.connection")
Set rst = CreateObject("ADODB.connection")

Con.Open "Provider=SQLOLEDB;Data Source=@;User Id=@;Initial Catalog=@;Password=@"

ConStr = "CREATE TABLE #t1 (t1 varchar(100), t2 varchar(100))"
Set rst = Con.Execute(ConStr)
ConStr = " insert into #t1 values ('a', 'b')"
Set rst = Con.Execute(ConStr)
ConStr = " insert into #t1 values ('c', 'd')"
Set rst = Con.Execute(ConStr)
ConStr = " SELECT * FROM #t1"
Set rst = Con.Execute(ConStr)

MsgBox (rst.fields(0).Name)

End Sub
'--------------------конец

Первый программа не работает, но если подвать insert-и последовательнО, как во 2-й, то работает.
Почему в первой программе после 1-ого insert-а временная таблица #t1 перестает быть видна?
...
Рейтинг: 0 / 0
15.12.2008, 11:55
    #35714186
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT во временную таблицу MS SQL
Подозреваю (но не проверял), что работа из EXCEL с SQL Server происходит через sp_executesql, что приводит к удалению временной таблицы при выходе из sp_executesql.

С уважением, Алексей
...
Рейтинг: 0 / 0
15.12.2008, 16:12
    #35715059
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INSERT во временную таблицу MS SQL
Aleksey-K,

подозрения безосновательны, чистый VBA-код , что написано, то и выполняется.

Автору: добавьте в начало батча
Код: plaintext
SET NOCOUNT ON
Что и зачем - на профильном форуме спрашивайте,
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / INSERT во временную таблицу MS SQL / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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