Krzysztof
Białkowski
Software Developer
(C# .NET)
Temat: [MS SQL 08]Linked server MySql 5.1 dwa pytanka
Hej!Mam zlinkowany serwer mysqla 5.1 . Wszystko ładnie śmiga, zapytania się wykonują etc.
Napotkałem jednak problem :
Otóż chciałbym, z ms sql wywołać procedurę na mysql która zwraca wartość outputrem czyli coś takiego :
CREATE PROCEDURE `xxx`(OUT param1 int)
begin
select * from book;
select count(*) into param1 from testy.book;
end;
Po stronie MS SQL odpalam :
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);
DECLARE @wynikOUT int;
SET @SQLString = N'exec (''call testy.xxx(@wynikOUT)'') at mysql';
SET @ParmDefinition = N' @wynikOUT int OUTPUT';
EXECUTE sp_executesql @SQLString, @ParmDefinition, @wynikOUT OUTPUT;
select @wynikOUT;
I klapa zmienna @wynikOUT jest ciągle NULLem.
2.Czy udało się komuś odpalić transakcje rozproszoną, czyli najzwyklejszy :
BEGIN DISTRIBUTED TRAN
exec('delete from testy.xx where xx_id=10') at mysql;
commit;
Dostaję ciągle error:
OLE DB provider "MSDASQL" for linked server "mysql" returned message "[MySQL][ODBC 5.1 Driver]Optional feature not supported".
Msg 7391, Level 16, State 2, Line 2
The operation could not be performed because OLE DB provider "MSDASQL" for linked server "mysql" was unable to begin a distributed transaction.
Google na ten temat troche mówią, ale jeszcze nie znalazłem sprawdzonego i potwierdzonego rozwiązania. Wszelkie zalecania odnośnie MSDTC chyba sprawdziłem. Podejrzewam, że to wina samego sterownika ODBC ,wcześniejszy w wersji 3.51 zachowuję się tak samo...
Dzięki za wszelkie porady
pzdrKrzysztof Białkowski edytował(a) ten post dnia 06.01.10 o godzinie 00:22