Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Выполнение апдейтграммы из SQL  [new]
_Балтика
Member

Откуда: Шуя (Москва)
Сообщений: 329
Доброго всем дня!
Вопрос:
Подскажите пожалуйста, как мне выполнить диаграмму обновления из скула. Т.е., допустим у меня есть какая-то
апдейтграмма:
<ROOT xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
  <updg:sync>
    <updg:before>
        ...
    </updg:before>
    <updg:after>
        ...
    </updg:after>
  </updg:sync>
</ROOT>

Хотелось-бы как-нибудь, допустим, через OLE..
EXEC @Err = sys.sp_OACreate 'OleObject',@obj OUT;
EXEC @Err = sys.sp_OASetProperty @obj ,'updategram', @UpdateGramm;
EXEC @Err = sys.sp_OAMethod @obj ,'Execute';
GO

или еще как-нибудь.. Но что-бы из скуловского скрипта.
20 мар 14, 13:53    [15759473]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Я готов вам помочь, ибо вещь очень необходимая, не сколько updategram сколько использование SQLXML провайдера. В частности выгрузка XML.
Копать надо отседова.
Наработки есть.

Костяк накалякайте, а далее подрихтуем до лялечки, если не будет непреодалимых подводных камней.
21 мар 14, 03:31    [15763636]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
_Балтика
Member

Откуда: Шуя (Москва)
Сообщений: 329
Mnior,
Да ладно.. Чего тут полезного? Если только в академическом плане, на досуге;) Мне пока проще на шарпе через тот-же SQLXMLOLEDB хранимку написать.
21 мар 14, 15:38    [15767381]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
_Балтика
Да ладно.. Чего тут полезного? Если только в академическом плане, на досуге;)

Мне пока проще на шарпе через тот-же SQLXMLOLEDB хранимку написать.
Разрыв шаблона. Двойной.
1. Вы так хорошо знаете потребности общества?
2. Вы определитесь. Или "Но что-бы из скуловского скрипта" или "Мне пока проще на шарпе".

Как раз ваш вариант и не нужен (поэтому выше и написал "не сколько updategram") его на клиентской стороне надо разворачивать, а вот в остальном, к примеру выкачка XML - самое оно, часто нужно и другие средства хромают.

И постоянно грабли, чтобы найти поход как работать с COM а скуле. А всё от незнания, и спецов мало.
К примеру как вызвать метод но подавить возврат результата, который скуль не может воспринять?

Т.е. у меня есть код который уже применяет updategram, только пока не может нормально вернуть коды возврата.
22 мар 14, 01:17    [15769918]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
К примеру как вызвать метод но подавить возврат результата, который скуль не может воспринять?
Маленький хак (принудительная подача заведомо неправильного типа переменной) и перепрыгнули критическую ошибку.

ФСЁ, теперь можно делать запросы через SQLXML провайдер.
+ spXMLQuery
CREATE PROCEDURE [dbo].[spXMLQuery]
	@Query	XML
,	@Result	XML	OUT
AS BEGIN
/*	EXEC sp_configure 'show advanced options'	, 1;	RECONFIGURE;
	EXEC sp_configure 'Ole Automation Procedures'	, 1;	RECONFIGURE;
*/	SET NOCOUNT ON;

	DECLARE	@RC			Int
	,	@OA			Int
	,	@Method			VarChar(64)
	,	@ESource		NVarChar(4000)
	,	@EDescription		NVarChar(4000)
	,	@OAStream		Int
	,	@OACommand		Int
	,	@OAProperties		Int
	,	@OAItem			Int
	,	@ConnectionString	VarChar(4000)	= 'Provider=SQLXMLOLEDB;Data Provider=SQLNCLI;Server=' + @@ServerName + ';Initial Catalog=' + DB_Name() + ';Integrated Security=SSPI'
	,	@Size			Int
	,	@SResult		NVarChar(max)	= ''

	SELECT 				@Method = 'ADODB.Stream';	EXEC @RC = sp_OACreate @Method, @OAStream  OUT						IF (@RC != 0) GOTO Error;
	SELECT 				@Method = 'ADODB.Command';	EXEC @RC = sp_OACreate @Method, @OACommand OUT						IF (@RC != 0) GOTO Error;
	SELECT @OA = @OACommand,	@Method = 'ActiveConnection';	EXEC @RC = sp_OASetProperty @OA, @Method, @ConnectionString				IF (@RC != 0) GOTO Error;
	SELECT @OA = @OACommand,	@Method = 'Dialect';		EXEC @RC = sp_OASetProperty @OA, @Method, '{5D531CB2-E6ED-11D2-B252-00C04F681B71}'	IF (@RC != 0) GOTO Error;
	SELECT @OA = @OACommand,	@Method = 'CommandText';	EXEC @RC = sp_OASetProperty @OA, @Method, @Query					IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAStream,		@Method = 'Open';		EXEC @RC = sp_OAMethod      @OA, @Method						IF (@RC != 0) GOTO Error;
	-- Указатели: Properties -> Item -> Value
	SELECT @OA = @OACommand,	@Method = 'Properties';		EXEC @RC = sp_OAGetProperty @OA, @Method, @OAProperties OUT				IF (@RC != 0) GOTO Error;
/*	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod      @OA, @Method, @OAItem OUT, 'XML Root'			IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty @OA, @Method, 'ROOT'					IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod      @OA, @Method, @OAItem OUT, 'Output Encoding'		IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty @OA, @Method, 'UTF-16'					IF (@RC != 0) GOTO Error;
*/	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod      @OA, @Method, @OAItem OUT, 'Output Stream'			IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty @OA, @Method, @OAStream					IF (@RC != 0) GOTO Error;

	SELECT @OA = @OACommand,	@Method = 'Execute';		EXEC @RC = sp_OAMethod      @OA, @Method, @Size OUT, NULL, NULL, 1024			IF (@RC != 0) AND (@RC != -2147352571) GOTO Error;
	SELECT @OA = @OAStream,		@Method = 'Size';		EXEC @RC = sp_OAGetProperty @OA, @Method, @Size OUT					IF (@RC != 0) GOTO Error;
WHILE (@Size > 4000) BEGIN
	SELECT @OA = @OAStream,		@Method = 'ReadText';		EXEC @RC = sp_OAMethod      @OA, @Method, @EDescription OUT, 4000			IF (@RC != 0) GOTO Error;
	SELECT	@SResult += @EDescription
	,	@Size	 -= 4000;
END	SELECT @OA = @OAStream,		@Method = 'ReadText';		EXEC @RC = sp_OAMethod      @OA, @Method, @EDescription OUT				IF (@RC != 0) GOTO Error;
	SET @Result = Convert(XML,@SResult + @EDescription)
	GOTO Destroy;
Error:	EXEC sp_OAGetErrorInfo @OA, @ESource OUT, @EDescription OUT;
	RAISERROR('Error (%d) %s: %s %s',16,1,@RC,@Method, @ESource, @EDescription);
Destroy:EXEC sp_OADestroy @OAStream;
	EXEC sp_OADestroy @OACommand;
END
GO
+ Тест
USE tempdb
GO
CREATE TABLE [dbo].[Test] (
	ID	Int	PRIMARY KEY
,	Data	NVarChar(256)	NOT NULL
)
INSERT	dbo.Test (ID,Data) VALUES (1,N'Value1');
INSERT	dbo.Test (ID,Data) VALUES (2,N'Value2');
SELECT * FROM dbo.Test

DECLARE @Result XML; EXEC dbo.spXMLQuery N'
<ROOT>	<xsd:schema id="TestSchema" sql:is-mapping-schema="1" xmlns:sql="urn:schemas-microsoft-com:xml-sql" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ms="urn:schemas-microsoft-com:mapping-schema">
		<xsd:element name="Test" ms:relation="dbo.Test">
			<xsd:complexType>
				<xsd:attribute name="ID" type="xsd:ID"/>
				<xsd:attribute name="Data" type="xsd:string"/>
		</xsd:complexType>
		</xsd:element>
	</xsd:schema>
	<sql:xpath-query mapping-schema="#TestSchema" xmlns:sql="urn:schemas-microsoft-com:xml-sql">/Test[@ID="1"]</sql:xpath-query>
	<sql:xpath-query mapping-schema="#TestSchema" xmlns:sql="urn:schemas-microsoft-com:xml-sql">/Test[@Data="Value2"]</sql:xpath-query>

	<updg:sync mapping-schema="#TestSchema" xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
		<updg:before>
			<Test ID="2" />
		</updg:before>
		<updg:after>
			<Test Data="New Value2" />
		</updg:after>
	</updg:sync>

	<updg:sync xmlns:updg="urn:schemas-microsoft-com:xml-updategram">
		<updg:before />
		<updg:after>
			<dbo.Test ID="3" Data="New Value3" />
			<dbo.Test ID="4" Data="New Value4" />
		</updg:after>
	</updg:sync>
</ROOT>', @Result OUT; SELECT @Result;

SELECT * FROM dbo.Test
DROP TABLE dbo.Test;
В тесте 2 запроса и два изменения таблицы (UPDATE, INSERT 2х строк)

Позже сделаю вариант выгрузки результата в файл и протестирую на больших объёмах.
Скорее всего получится, и это будет самый не геморный и самый эффективный способ выгрузки XML.
24 мар 14, 15:01    [15777914]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Скорее всего получится
Нифига.
ADODB.Stream работает с памятью, что-то другое подставить (файловый стриминг) вроде как нельзя.

Как я понял было сделано на коленке, для старого IIS решения и т.п., соответственно набор методов и классов однобоки.
Не подразумевалось что можно выгружать XML запросы большого размера.
Только для маленьких web запросов, поэтому только работа с памятью. Хотя намного правильнее было подставлять чисто внешний Stream, http или файловый.

Это при том что инфраструктура готова полностью. На волоске от полноценного решения. Словно исподтишка.
Есть XSLT и чтения удалённых файлов (URL), но плять, без полноценного стриминга.

Самое прикольное что эта же проблема присутствует в SSIS. Если платформа 32х битная, а данные большие то упирается в нехватку памяти. Т.е. утритесь мышкодрочеры.

Индусы. Гореть тебе MS в аду.
24 мар 14, 20:50    [15780111]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
ADODB.Stream работает с памятью, что-то другое подставить (файловый стриминг) вроде как нельзя.
Ну и хрен.

По просьбе трудящихся расширил для сохранения в файл, ну и XSLT трансформация, если нада. Получаем вундер процедуру на все случаи жизни:
+ spXMLQuery
ALTER PROCEDURE [dbo].[spXMLQuery]
	@Query		XML
,	@XMLResult	XML		= NULL	OUT
,	@File		SysName		= NULL
,	@XSLT		SysName		= NULL
,	@Result		NVarChar(max)	= NULL	OUT
,	@Encoding	SysName		= 'utf-8'
,	@XSLTPath	SysName		= NULL
AS BEGIN
/*	EXEC sp_configure 'show advanced options'	, 1;	RECONFIGURE;
	EXEC sp_configure 'Ole Automation Procedures'	, 1;	RECONFIGURE;
*/	SET NOCOUNT ON;

	DECLARE	@RC			Int
	,	@OA			Int
	,	@Method			VarChar(64)
	,	@ESource		NVarChar(4000)
	,	@EDescription		NVarChar(4000)	= '<?xml version="1.0" encoding="' + @Encoding + '"?>'
	,	@OAStream		Int
	,	@OACommand		Int
	,	@OAProperties		Int
	,	@OAItem			Int
	,	@ConnectionString	VarChar(4000)	= 'Provider=SQLXMLOLEDB;Data Provider=SQLNCLI;Server=' + @@ServerName + ';Initial Catalog=' + DB_Name() + ';Integrated Security=SSPI'
	,	@Size			Int
	SET	@Result					= ''

	SELECT 				@Method = 'ADODB.Stream';	EXEC @RC = sp_OACreate	@Method, @OAStream  OUT						IF (@RC != 0) GOTO Error;
	SELECT 				@Method = 'ADODB.Command';	EXEC @RC = sp_OACreate	@Method, @OACommand OUT						IF (@RC != 0) GOTO Error;
	SELECT @OA = @OACommand,	@Method = 'ActiveConnection';	EXEC @RC = sp_OASetProperty	@OA, @Method, @ConnectionString				IF (@RC != 0) GOTO Error;
	SELECT @OA = @OACommand,	@Method = 'Dialect';		EXEC @RC = sp_OASetProperty	@OA, @Method, '{5D531CB2-E6ED-11D2-B252-00C04F681B71}'	IF (@RC != 0) GOTO Error;
	SELECT @OA = @OACommand,	@Method = 'CommandText';	EXEC @RC = sp_OASetProperty	@OA, @Method, @Query					IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAStream,		@Method = 'Open';		EXEC @RC = sp_OAMethod		@OA, @Method						IF (@RC != 0) GOTO Error;
IF (@File	IS NOT NULL) BEGIN
	SELECT @OA = @OAStream,		@Method = 'CharSet';		EXEC @RC = sp_OASetProperty	@OA ,@Method, @Encoding					IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAStream,		@Method = 'WriteText';		EXEC @RC = sp_OASetProperty	@OA ,@Method, @EDescription				IF (@RC != 0) GOTO Error;
END
	-- Указатели: Properties -> Item -> Value
	SELECT @OA = @OACommand,	@Method = 'Properties';		EXEC @RC = sp_OAGetProperty	@OA, @Method, @OAProperties OUT				IF (@RC != 0) GOTO Error;
IF (@XSLT	IS NOT NULL) BEGIN
IF (@XSLTPath	IS NOT NULL) BEGIN
	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod		@OA, @Method, @OAItem OUT, 'Base Path'			IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty	@OA, @Method, @XSLTPath					IF (@RC != 0) GOTO Error;
END	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod		@OA, @Method, @OAItem OUT, 'xsl'			IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty	@OA, @Method, @XSLT					IF (@RC != 0) GOTO Error;
END
/*	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod		@OA, @Method, @OAItem OUT, 'XML Root'			IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty	@OA, @Method, 'ROOT'					IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod		@OA, @Method, @OAItem OUT, 'Output Encoding'		IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty	@OA, @Method, 'UTF-16'					IF (@RC != 0) GOTO Error;
*/
	SELECT @OA = @OAProperties,	@Method = 'Item';		EXEC @RC = sp_OAMethod		@OA, @Method, @OAItem OUT, 'Output Stream'		IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAItem,		@Method = 'Value';		EXEC @RC = sp_OASetProperty	@OA, @Method, @OAStream					IF (@RC != 0) GOTO Error;
	SELECT @OA = @OACommand,	@Method = 'Execute';		EXEC @RC = sp_OAMethod		@OA, @Method, @Size OUT, NULL, NULL, 1024		IF (@RC != 0) AND (@RC != -2147352571) GOTO Error;
IF (@File	IS NOT NULL) BEGIN
	SELECT @OA = @OAStream,		@Method = 'SaveToFile';		EXEC @RC = sp_OAMethod		@OA, @Method, NULL, @File, 2				IF (@RC != 0) GOTO Error;
	SELECT @OA = @OAStream,		@Method = 'Close';		EXEC @RC = sp_OAMethod		@OA, @Method						IF (@RC != 0) GOTO Error;
END ELSE BEGIN
	SELECT @OA = @OAStream,		@Method = 'Size';		EXEC @RC = sp_OAGetProperty	@OA, @Method, @Size OUT					IF (@RC != 0) GOTO Error;
WHILE (@Size > 4000) BEGIN
	SELECT @OA = @OAStream,		@Method = 'ReadText';		EXEC @RC = sp_OAMethod		@OA, @Method, @EDescription OUT, 4000			IF (@RC != 0) GOTO Error;
	SELECT	@Result	+= @EDescription
	,	@Size	-= 4000;
END	SELECT @OA = @OAStream,		@Method = 'ReadText';		EXEC @RC = sp_OAMethod		@OA, @Method, @EDescription OUT				IF (@RC != 0) GOTO Error;
	SELECT	@Result	+= @EDescription
	,	@XMLResult = CASE WHEN @XSLT IS NULL THEN Convert(XML,@Result) END
END	GOTO Destroy;
Error:	EXEC sp_OAGetErrorInfo @OA, @ESource OUT, @EDescription OUT;
	RAISERROR('Error (%d) %s: %s %s',16,1,@RC,@Method, @ESource, @EDescription);
Destroy:EXEC sp_OADestroy @OAStream;
	EXEC sp_OADestroy @OACommand;
END
GO
Соответственно тест:
USE tempdb
GO
CREATE TABLE [dbo].[Test] (
	ID	Int	PRIMARY KEY
,	Data	NVarChar(256)	NOT NULL
)
INSERT	dbo.Test (ID,Data) VALUES (1,N'Value1');
INSERT	dbo.Test (ID,Data) VALUES (2,N'Value2');

EXEC dbo.spXMLQuery N'
<ROOT>	<xsd:schema id="TestSchema" sql:is-mapping-schema="1" xmlns:sql="urn:schemas-microsoft-com:xml-sql" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ms="urn:schemas-microsoft-com:mapping-schema">
		<xsd:element name="Test" ms:relation="dbo.Test">
			<xsd:complexType>
				<xsd:attribute name="ID" type="xsd:ID"/>
				<xsd:attribute name="Data" type="xsd:string"/>
		</xsd:complexType>
		</xsd:element>
	</xsd:schema>
	<sql:xpath-query mapping-schema="#TestSchema" xmlns:sql="urn:schemas-microsoft-com:xml-sql">/Test[@ID="1"]</sql:xpath-query>
	<sql:xpath-query mapping-schema="#TestSchema" xmlns:sql="urn:schemas-microsoft-com:xml-sql">/Test[@Data="Value2"]</sql:xpath-query>
</ROOT>', NULL, 'Z:\Path\Test.html', 'Z:\Path\Test.xsl';
DROP TABLE dbo.Test;
+ Z:\Path\Test.xsl
<?xml version='1.0' encoding='UTF-8'?>          
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
  <xsl:template match = 'Test'>
    <TR>
      <TD><xsl:value-of select = '@ID' /></TD>
      <TD><B><xsl:value-of select = '@Data' /></B></TD>
    </TR>
  </xsl:template>
  <xsl:template match = '/'>
    <HTML>
      <HEAD>
        <STYLE>th { background-color: #CCCCCC }</STYLE>
      </HEAD>
      <BODY>
        <TABLE border='1' style='width:300;'>
          <TR><TH colspan='2'>Detail</TH></TR>
          <TR>
            <TH>ID</TH>
            <TH>Data</TH>
          </TR>
          <xsl:apply-templates select = 'ROOT' />
        </TABLE>
      </BODY>
    </HTML>
  </xsl:template>
</xsl:stylesheet>
+ Результат Z:\Path\Test.html
<?xml version="1.0" encoding="utf-8"?><HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<STYLE>th { background-color: #CCCCCC }</STYLE>
</HEAD>
<BODY>
<TABLE border="1" style="width:300;">
<TR><TH colspan="2">Detail</TH></TR>
<TR>
<TH>ID</TH>
<TH>Data</TH>
</TR>
<TR>
<TD>1</TD>
<TD><B>Value1</B></TD>
</TR>
<TR>
<TD>2</TD>
<TD><B>Value2</B></TD>
</TR>
</TABLE>
</BODY>
</HTML>
23 июн 14, 17:32    [16208147]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Mnior,

вы редкостный xml-маньяк
23 июн 14, 17:38    [16208175]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
Выше приведенный пример выдает ошибку
Error (-2146824582) ActiveConnection: ADODB.Command Не удается найти указанный поставщик. Вероятно, он установлен неправильно.
12 фев 15, 12:25    [17254978]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest_xml
Вероятно, он установлен неправильно.

Ну так вы его устанавливали ?
12 фев 15, 12:27    [17254992]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
Glory,

установил, теперь появилось Error (-2147221164) ActiveConnection: Microsoft OLE DB Service Components Класс не зарегистрирован.
12 фев 15, 12:56    [17255232]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest_xml
установил

и
guest_xml
Класс не зарегистрирован.

не коррелируются
12 фев 15, 12:58    [17255247]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
Glory,

установил SqlXml 4.0 Service Pack 1 на
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
12 фев 15, 13:01    [17255290]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
и после этого Error (-2147221164) ActiveConnection: Microsoft OLE DB Service Components Класс не зарегистрирован.
12 фев 15, 13:25    [17255533]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Я так понял что для вас "установил" == "нажал два раза мышкой на файл и что там побежало" ?
12 фев 15, 13:30    [17255591]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
есть предложения?
12 фев 15, 13:35    [17255650]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest_xml
есть предложения?

Установить таки нужного провайдера не предлагать ?
12 фев 15, 13:36    [17255660]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
Предлагать)
12 фев 15, 13:40    [17255701]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest_xml
Предлагать)

Предлагаю установить все используемые в коде провайдеры. Причем нужной разрядности.
12 фев 15, 13:42    [17255720]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
SQLOLEDB {0C7FF16C-38E3-11d0-97AB-00C04FC2AD98} Microsoft OLE DB Provider for SQL Server
MSOLAP {10154F28-4979-4166-B114-3E7A7926C747} Microsoft OLE DB Provider for Analysis Services 10.0
ADsDSOObject {549365d0-ec26-11cf-8310-00aa00b505db} OLE DB Provider for Microsoft Directory Services
SQLNCLI10 {8F4A6B68-4F36-4e3c-BE81-BC7CA4E9C45C} SQL Server Native Client 10.0
Search.CollatorDSO {9E175B8B-F52A-11D8-B9A5-505054503030} Microsoft OLE DB Provider for Search
MSDASQL {c8b522cb-5cf3-11ce-ade5-00aa0044773d} Microsoft OLE DB Provider for ODBC Drivers
MSDAOSP {dfc8bdc0-e378-11d0-9b30-0080c7e9fe95} Microsoft OLE DB Simple Provider
SQLXMLOLEDB {F64E2F39-42A1-4088-A55D-038ABF5FAE10} SQLXMLOLEDB
SQLXMLOLEDB.4.0 {F64E2F39-42A1-4088-A55D-038ABF5FAE14} SQLXMLOLEDB.4.0


чего не хватает?
12 фев 15, 13:47    [17255760]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
ставился этот вариант sqlxml_x64.msi
12 фев 15, 13:49    [17255777]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest_xml
чего не хватает?

Угадайте с 3х раз

'Provider=SQLXMLOLEDB;
Data Provider=SQLNCLI;
Server=' + @@ServerName + ';
Initial Catalog=' + DB_Name() + ';
Integrated Security=SSPI'
12 фев 15, 13:49    [17255779]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
в списке выше разве нет того что нужно?
12 фев 15, 13:54    [17255820]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
guest_xml
Guest
у кого есть информация о данной проблеме, модер не в счет
12 фев 15, 14:17    [17256000]     Ответить | Цитировать Сообщить модератору
 Re: Выполнение апдейтграммы из SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
guest_xml
в списке выше разве нет того что нужно?

По-вашему SQLNCLI10 и SQLNCLI одно и то же получается ?
12 фев 15, 14:18    [17256014]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить