![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Linked Servers - команда, не возвращающая rowset [MSSQL]
Тих © (2003-04-09 21:41:00)Надо с MS SQL послать команду прилинкованному Ораклу. Select/Insert выполняются через select from openquery и insert into openquery соответственно, а вот как насчет delete/update и прочих команд?
sniknik (2003-04-10 11:46:00) [1]если к Ораклу OLE DB драйвера должно работать аналогичное
DELETE FROM OpenDataSource("Microsoft.Jet.OLEDB.4.0", "D:\Base.mdb";"admin";"")...datyear1
Дмитрий Баранов (2003-04-10 11:24:00) [2]Через OLE (тестировано на MS SQL 2000)
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE procedure ExecuteRemoteCommand
(
@ConnectionString nvarchar(2000),
@UserId nvarchar(2000),
@Password nvarchar(2000),
@Command nvarchar(4000)
) as
begin
DECLARE @object int;
DECLARE @hr int;
DECLARE @ErrorS int;
DECLARE @Error nvarchar(1000);
EXEC @hr = sp_OACreate "ADODB.Connection", @object OUT;
if (@hr <> 0)
begin
Exec sp_OAGetErrorInfo @object, @ErrorS OUT , @Error OUT;
print @Error;
return;
end;
EXEC @hr = sp_OAMethod @object, "Open", NULL, @ConnectionString, @UserId, @Password, "0";
if (@hr <> 0)
begin
Exec sp_OAGetErrorInfo @object, @ErrorS OUT , @Error OUT;
print @Error;
end
EXEC @hr = sp_OAMethod @object, "Execute", NULL, @Command
if (@hr <> 0)
begin
Exec sp_OAGetErrorInfo @object, @ErrorS OUT , @Error OUT;
print @Error;
end
EXEC @hr = sp_OAMethod @object, "Close"
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO