powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / adodb.command Object or provider is not capable of performing requested operation 800A0CB3
25 сообщений из 34, страница 1 из 2
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36345958
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Нарисовал такой файлик с расширением .vbs:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
set cn = CreateObject("ADODB.Connection")
cn.Provider = "SQLOLEDB"
cn.ConnectionString = "User ID=123;Password=123;Data Source=123\123;Initial Catalog=123;Use Encryption for Data=0;Auto Translate=-1;Persist Security Info=True"
cn.Open

set cm = CreateObject("ADODB.Command")
set cm.ActiveConnection=cn

set ist=CreateObject("ADODB.Stream")
ist.Charset = "windows-1251"
ist.open
ist.loadfromfile "1.sql"

set cm.CommandStream=ist

cm.execute
1.sql
Код: plaintext
INSERT INTO TTT (ID,NAME) VALUES( 98 ,'123')
Выдаётся ошибка:
Код: plaintext
1.
2.
Error:	Object or provider is not capable of performing requested operation.
Code:	800A0CB3
Source: 	ADODB.Command
на последнюю строчку.
Такой скрипт:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
set cn = CreateObject("ADODB.Connection")
cn.Provider = "SQLOLEDB"
cn.ConnectionString = "User ID=admsms;Password=sms;Data Source=YVES\SMS;Initial Catalog=SMS;Use Encryption for Data=0;Auto Translate=-1;Persist Security Info=True"
cn.Open

set cm = CreateObject("ADODB.Command")
set cm.ActiveConnection=cn
cm.CommandText="INSERT INTO TTT (ID,NAME) VALUES(98,'123')"

cm.execute 
работает.
cn.version возвращает 2.8
Что делаю не так?
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36345979
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
set ist=CreateObject("ADODB.Stream")
ist.Charset = "windows-1251"
ist.open
ist.loadfromfile "1.sql"
ist.Position =  0 

set cm.CommandStream=ist

cmd.Execute , , adExecuteStream
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36345994
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати непонятно зачем извращения со стримом? открывайте файл, считывайте ваш SQL в переменную String и передавайте на выполнение как обычно
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36345998
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не помогло. та же ошибка.
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346003
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в vbs я ньюб. чего первое нарыл в инете, то и заюзал.
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346008
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот просветитесь

ЗЫ
думаю, что стрим вам тут вообще не нужен в вашей задаче
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346025
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это как содержимое файлика прочитать в переменную. (для vbs сами перепишите)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Private Function ReadTextFile(ByVal fName As String) As String

  Dim FSO As New FileSystemObject
  Dim FSTR As Scripting.TextStream
  Dim ret As Long
  If FSO.FileExists(fName) Then
     Set FSTR = FSO.OpenTextFile(fName)
     ReadTextFile = FSTR.ReadAll
     FSTR.Close
     Set FSTR = Nothing
   Else
     ret = MsgBox("File Not Found", vbCritical)
   End If
   Set FSO = Nothing
End Function

' Using
Private Sub Command1_Click()
    Text1.Text = ReadTextFile("c:\test.sql")
End Sub
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346035
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One вот просветитесьэто и было примером.
через переменную пробую.
но, так, интересно просто, почему не работает?
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346040
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что стрим на выполнение в ADO не для этого, там нужно out stream ещё прикручивать для результата
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346055
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
cn.Open

set cm = CreateObject("ADODB.Command")
set cm.ActiveConnection=cn

set fso=createobject("Scripting.FileSystemObject")
set fstr=FSO.OpenTextFile("1.sql")

cm.Commandtext=fstr.readall

cm.Execute
вот так заработало, спасибо!
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346120
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
set cm = CreateObject("ADODB.Command")
set cm.ActiveConnection=cn

set ist=CreateObject("ADODB.Stream")
ist.Charset = "windows-1251"
ist.open
ist.loadfromfile "1.sql"
ist.position= 0 

cm.CommandStream=ist

set ost=CreateObject("ADODB.Stream")
ost.Charset = "windows-1251"
ost.open

cm.Properties("Output Stream").Value = ost
cm.Properties("Output Encoding").Value= "windows-1251"

cm.Execute , , adExecuteStream

ost.Position =  0 
Debug.Print ost.ReadText
прикрутил outstream таже ошибка.
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346128
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем вы опять этим занялись? у вас есть потребность использования XML-запросов в SQL-сервер и получения xml-документа?
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346143
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно.
В XML потребности нет. Но, насколько я понял, там XML не обязателен. Или не прав?
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346156
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
In addition to receiving results in a Recordset object, an ADO application can use the Stream object to contain these results in XML format. These results also can be streamed into any object that supports the OLE DB IStream interface, (for example, the ASP Response object.

http://msdn.microsoft.com/en-us/library/aa905920(SQL.80).aspx
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346181
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О!
а http://msdn.microsoft.com/en-us/library/aa905915%28SQL.80%29.aspx говорит, что
{C8B522D7-5CF3-11CE-ADE5-00AA0044773D} DBGUID_SQL Transact-SQL query
пишу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
set cm = CreateObject("ADODB.Command")
set cm.ActiveConnection=cn
cm.dialect="{C8B522D7-5CF3-11CE-ADE5-00AA0044773D}"

set ist=CreateObject("ADODB.Stream")
ist.Charset = "windows-1251"
ist.open
ist.loadfromfile "1.sql"
ist.position= 0 

cm.CommandStream=ist

set ost=CreateObject("ADODB.Stream")
ost.Charset = "windows-1251"
ost.open

cm.Properties("Output Stream").Value = ost
cm.Properties("Output Encoding").Value= "windows-1251"

cm.Execute , , adExecuteStream

ost.Position =  0 
Debug.Print ost.ReadText
получаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
---------------------------
Windows Script Host
---------------------------
Script:	C:\test\q1.vbs
Line:	25
Char:	1
Error:	Command dialect is not supported by this provider.
Code:	80040E16
Source: 	Microsoft OLE DB Provider for SQL Server

---------------------------
OK   
---------------------------
на cm.execute
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346193
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и конечно на вашем сервере установлен SQL XML 3.0?
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346214
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Executing SQL Queries (SQLXMLOLEDB Provider)
This example illustrates the use of the following SQLXMLOLEDB Provider-specific properties:

ClientSideXML


xml root
In this client-side ADO sample application, a simple SQL query is executed on the client. Because the ClientSideXML property is set to True, the SELECT statement without the FOR XML clause is sent to the server. The server executes the query and returns a rowset to the client. The client then applies the FOR XML transformation to the rowset and produces an XML document.

The xml root property provides the single top-level root element for the XML document that is generated.

In the code, you must provide the name of the instance of Microsoft® SQL Server™ in the connection string.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Option Explicit
Sub main()
Dim oTestStream As New ADODB.Stream
Dim oTestConnection As New ADODB.Connection
Dim oTestCommand As New ADODB.Command

oTestConnection.Open "provider=SQLXMLOLEDB.3.0;data provider=SQLOLEDB;data source=SqlServerName;initial catalog=Northwind;Integrated Security=SSPI ;"
oTestCommand.ActiveConnection = oTestConnection
oTestCommand.Properties("ClientSideXML") = "True"
oTestCommand.CommandText = "SELECT FirstName, LastName FROM Employees FOR XML AUTO"
oTestStream.Open
oTestCommand.Properties("Output Stream").Value = oTestStream
oTestCommand.Properties("xml root") = "root"
oTestCommand.Execute , , adExecuteStream

oTestStream.Position =  0 
oTestStream.Charset = "utf-8"
Debug.Print oTestStream.ReadText(adReadAll)
End Sub
Sub Form_Load()
 main
End Sub
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346222
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не знаю. как проверить?
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346235
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выполните пример, что выше дал и проверьте

PS
провайдер можно посмотреть в списке, если кликнуть на пустой файлик *.UDL в explorer
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346263
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поставил sqlxml3. в списке провайдеров он появился.
ошибки те же.
при указании диалекта
Код: plaintext
1.
2.
Error:	Object or provider is not capable of performing requested operation.
Code:	800A0CB3
при не указании
Код: plaintext
1.
2.
Error:	Object or provider is not capable of performing requested operation.
Code:	800A0CB3
игры с провайдером "provider=SQLXMLOLEDB.3.0" меня не устраивают, если только он не ставиться вместе с MSDE. Этот момент где-то можно уточнить?
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346270
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е.
при указании диалекта
Код: plaintext
1.
2.
Error:	Command dialect is not supported by this provider.
Code:	80040E16
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346282
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас MSDE?

для 2000 тогда нужно ставить SQL XML 3.0 sp2 : http://msdn.microsoft.com/en-us/library/aa286527.aspx
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346283
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
27.
28.
29.
set cn = CreateObject("ADODB.Connection")
rem cn.Provider = "SQLOLEDB"
cn.provider="SQLXMLOLEDB.3.0"
rem cn.ConnectionString = "User ID=admsms;Password=sms;Data Source=YVES\SMS;Initial Catalog=SMS;Use Encryption for Data=0;Auto Translate=-1;Persist Security Info=True"
cn.ConnectionString = "data provider=SQLOLEDB;User ID=admsms;Password=sms;Data Source=YVES\SMS;Initial Catalog=SMS;Use Encryption for Data=0;Auto Translate=-1;Persist Security Info=True"
cn.Open

set cm = CreateObject("ADODB.Command")
set cm.ActiveConnection=cn
cm.dialect="{C8B522D7-5CF3-11CE-ADE5-00AA0044773D}"

set ist=CreateObject("ADODB.Stream")
ist.Charset = "windows-1251"
ist.open
ist.loadfromfile "1.sql"
ist.position= 0 

cm.CommandStream=ist

set ost=CreateObject("ADODB.Stream")
ost.Charset = "windows-1251"
ost.open

cm.Properties("Output Stream").Value = ost
cm.Properties("Output Encoding").Value= "windows-1251"

cm.Execute , , adExecuteStream

ost.Position =  0 
Debug.Print ost.ReadText
получаю на cm.execute:
Код: plaintext
1.
2.
Error:	One or more properties cannot be returned.
Code:	80040E21
Source: 	SQLXMLOLEDB.3.0
прогресс. пошёл гуглить :)
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346285
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда вам незачем вообще эти пляски со стримом
...
Рейтинг: 0 / 0
adodb.command Object or provider is not capable of performing requested operation 800A0CB3
    #36346292
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня на компе и msde и sql2k. на целевой машине только msde будет.
ставил SqlXml 3.0 Service Pack 3 (SP3)
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / adodb.command Object or provider is not capable of performing requested operation 800A0CB3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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