powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выполнение запроса в базе MS SQL
22 сообщений из 22, страница 1 из 1
Выполнение запроса в базе MS SQL
    #36040793
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
День добрый!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Dim server As String:   server = "s"
    Dim UserId As String:   UserId = "b"
    Dim Passwo As String:   Passwo = "1"
    
    Dim con As adodb.Connection
    Dim rst, rs As adodb.Recordset
    Dim cmd As adodb.Command
    
    Set con = New adodb.Connection
    Set rst = New adodb.Recordset
    Set rs = New adodb.Recordset
    Set cmd = New adodb.Command
     
    con.Open "Provider=SQLOLEDB;Persist Security Info=False;Password=" & Passwo & ";User ID=" & UserId & ";Data Source=" & server
    With cmd
        .ActiveConnection = con
        .CommandText = "USE stat create table #Excel (idn int IDENTITY(1,1),dn char(24) not null, um char(31) null,nam char(32) null,)"
        .CommandType = adCmdText
        .Execute
     End With
         With cmd
        .ActiveConnection = con
        .CommandText = "USE stat Insert into #Excel (prtidn,drwnum, nmpnam)select prtidn,drwnum, nmpnam from Excel_view order by dn"
        .CommandType = adCmdText
        .Execute
     End With


Вроде всё просто, но отчего-то оба cmd не отрадатываются (ошибки не вываливаются), связь с базой есть. В Query Analyzer'e под теми же параметрами подключения запросы работают.
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36040980
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит, "не отрабатываются"? Что говорит профайлер?
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041011
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FЧто значит, "не отрабатываются"? Что говорит профайлер?
Профайлер ничего не говорит, молча проскакивает без создания и заполнения таблиц.
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041047
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где вы смотрите?
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041094
f
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нович,
Пуск-Программы-SQL Server-Profiler.

Там нафильтруйте все, что нужно для вашей базы и посмотрите, какой запрос реально приходит на сервер. Это может отличаться от того, что как вам кажется, вы отсылаете на сервер.
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041164
TJK_TJK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вы просто создали временную таблицу. Может из за этого результата не видете? После INSERT попробуйте SELECT сделать с той же таблицы
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041226
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
F
Там нафильтруйте все, что нужно для вашей базы и посмотрите, какой запрос реально приходит на сервер. Это может отличаться от того, что как вам кажется, вы отсылаете на сервер.
Не являюсь членом sysadmin fixed server role на сервере, не пускает.
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041242
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пытаюсь зайти с друго входа (через выполнение процедуры):

Код: plaintext
1.
Set rs = con.Execute("exec excel_liz '1'")
    MsgBox (rs.RecordCount)
На MsgBox (rs.RecordCount) ругается: Run-time error '3704' Операция не допускается, если объект закрыт
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041401
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НовичПытаюсь зайти с друго входа (через выполнение процедуры):

Код: plaintext
1.
Set rs = con.Execute("exec excel_liz '1'")
    MsgBox (rs.RecordCount)
На MsgBox (rs.RecordCount) ругается: Run-time error '3704' Операция не допускается, если объект закрыт

тогда скорее всего в ХП не стоит SET NOCOUNT ON , либо ХП действительно ничего не возвращает

попробуйте следующий код

Код: plaintext
1.
2.
3.
4.
5.
Set rs = con.Execute("exec excel_liz '1'")
if rs is not nothing then
  MsgBox (rs.RecordCount)
else
  set rs = rs.nextrecordset
endif

ЗЫЖ проверьте что возвращается в Query Analaizer код
Код: plaintext
exec excel_liz ' 1 '
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041454
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot
ЗЫЖ проверьте что возвращается в Query Analaizer код
Код: plaintext
exec excel_liz ' 1 '


Query Analaizer'е код
Код: plaintext
exec excel_liz ' 1 '
возвращает таблицу
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36041515
Фотография kha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НовичДень добрый!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Dim server As String:   server = "s"
    Dim UserId As String:   UserId = "b"
    Dim Passwo As String:   Passwo = "1"
    
    Dim con As adodb.Connection
    Dim rst, rs As adodb.Recordset
    Dim cmd As adodb.Command
    
    Set con = New adodb.Connection
    Set rst = New adodb.Recordset
    Set rs = New adodb.Recordset
    Set cmd = New adodb.Command
     
    con.Open "Provider=SQLOLEDB;Persist Security Info=False;Password=" & Passwo & ";User ID=" & UserId & ";Data Source=" & server
    With cmd
        .ActiveConnection = con
        .CommandText = "USE stat create table #Excel (idn int IDENTITY(1,1),dn char(24) not null, um char(31) null,nam char(32) null,)"
        .CommandType = adCmdText
        .Execute
     End With
         With cmd
        .ActiveConnection = con
        .CommandText = "USE stat Insert into #Excel (prtidn,drwnum, nmpnam)select prtidn,drwnum, nmpnam from Excel_view order by dn"
        .CommandType = adCmdText
        .Execute
     End With


Вроде всё просто, но отчего-то оба cmd не отрадатываются (ошибки не вываливаются), связь с базой есть. В Query Analyzer'e под теми же параметрами подключения запросы работают.

USE - эта директива работает только в QA. В адо работать не будет,
для того чтоб выполнить запрос к базе в строке подключения добавь Initial Catalog=stat;
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36042307
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НовичHandKot
ЗЫЖ проверьте что возвращается в Query Analaizer код
Код: plaintext
exec excel_liz ' 1 '


Query Analaizer'е код
Код: plaintext
exec excel_liz ' 1 '
возвращает таблицу

это-то понятно
в окне сообщений пишется сколько раз что выполнено
пример

10 rows affected и т.п. и т.д ?
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36042599
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot10 rows affected и т.п. и т.д ?
Да, пишет.
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36042616
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну тогда, как было сказано выше,
добавить в ХП SET NOCOUNT ON
или же применить следующий код
Код: plaintext
1.
2.
3.
4.
5.
Set rs = con.Execute("exec excel_liz '1'")
if rs is not nothing then
  MsgBox (rs.RecordCount)
else
  set rs = rs.nextrecordset
endif

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36042632
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot
Код: plaintext
1.
2.
3.
4.
5.
Set rs = con.Execute("exec excel_liz '1'")
if rs is not nothing then
  MsgBox (rs.RecordCount)
else
  set rs = rs.nextrecordset
endif

if rs is not nothing then - invalid use of object
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36043548
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
 If Not (rs Is Nothing) Then
?


I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36044422
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
khaUSE - эта директива работает только в QA. В адо работать не будет,Глупости.
khaдля того чтоб выполнить запрос к базе в строке подключения добавь Initial Catalog=stat;Нафиг не нужно.
Проблема Новича в том что он не знает время жизни временных таблиц и забывает что вставка в строк во временную таблицу не означает выдачу этих строк клиенту.
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36045048
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlПроблема Новича в том что он не знает время жизни временных таблиц и забывает что вставка в строк во временную таблицу не означает выдачу этих строк клиенту.

Можете просветить в суть проблемы и путях выхода из неё?
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36045833
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нович
так вы запросы делаете. что в самом начале, или же ХП выполняете?

а то началось за здравие,а заканчивается за упокой

разные вещи и делать надо по разному

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36046233
Нович
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotтак вы запросы делаете. что в самом начале, или же ХП выполняете?


Через запросы не получилось, решил попытаться через хранимые процедуры на sql сервере попробовать.
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36047132
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НовичWhite OwlПроблема Новича в том что он не знает время жизни временных таблиц и забывает что вставка в строк во временную таблицу не означает выдачу этих строк клиенту.
Можете просветить в суть проблемы и путях выхода из неё?Читать учебник.
Начни тут например: http://www.sqlteam.com/article/temporary-tables
...
Рейтинг: 0 / 0
Выполнение запроса в базе MS SQL
    #36047135
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot Нович
так вы запросы делаете. что в самом начале, или же ХП выполняете?

а то началось за здравие,а заканчивается за упокойВсе что делается запросами можно сделать в ХП. Все что наворочено в ХП можно сделать запросами.

HandKotразные вещи и делать надо по разномуХотя конечно некоторая разница там все же будет :)
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выполнение запроса в базе MS SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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