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

Откуда:
Сообщений: 98
Добрый день!

Подобный вопрос уже здесь на форуме разбирался.
https://www.sql.ru/forum/547065/molchit-winsock (пример ниже - взят по этой ссылке)

DECLARE @output varchar(255)
DECLARE @source varchar(255)
DECLARE @description varchar(255)
DECLARE @ms int, @pr int
exec @ms=sp_OACreate 'MSWinSock.Winsock.1', @pr OUTPUT
EXEC sp_OAGetErrorInfo @pr, @source OUT, @description OUT
SELECT hr=convert(varbinary(4),@ms), Source=@source, Description=@description
exec @ms=sp_OASetProperty @pr, 'Protocol',0
exec @ms=sp_OASetProperty @pr, 'RemoteHost','192.168.0.238'
exec @ms=sp_OASetProperty @pr, 'RemotePort',106
exec @ms=sp_OAMethod @pr,'SendData',NULL,1
exec @ms = sp_OADestroy @pr
print @ms


ругается:
"0x80040154 ODSOLE Extended Procedure Класс не зарегистрирован"


файл mswinsck.ocx перенес на сервер MS Server 2008, зарегистрировал через regsvr32, но все равно не работает.

Буду очень признателен за помощь.
21 авг 14, 11:52    [16472993]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Glory
Member

Откуда:
Сообщений: 104760
IMOL
Буду очень признателен за помощь.

начните с публикации версии сервера

IMOL
зарегистрировал через regsvr32, но все равно не работает.

В какой другой программной среде еще вы проверили, что класс зарегистрирован и работает ?
21 авг 14, 11:54    [16473014]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
IMOL
Member

Откуда:
Сообщений: 98
Ради бога, прошу прощения:

Microsoft SQL Server Enterprise Edition (64-bit) 10.50.2550.0, Windows Server 2008.


Класс работает в Windows XP 32 в VB6 :).
21 авг 14, 13:30    [16473795]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Glory
Member

Откуда:
Сообщений: 104760
IMOL
Класс работает в Windows XP 32 в VB6 :).

А как вам на Windows XP 32-бит удалось установить SQL Server Enterprise Edition (64-bit) ?
21 авг 14, 13:33    [16473827]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
IMOL
файл mswinsck.ocx перенес на сервер MS Server 2008, зарегистрировал через regsvr32


скопировать и регить надо в \SysWOW64
с помощью regsvr32.exe оттуда же под правами админа (cmd.exe из этой же папки под правами админа)
21 авг 14, 13:52    [16473980]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
IMOL
Member

Откуда:
Сообщений: 98
Glory
IMOL
Класс работает в Windows XP 32 в VB6 :).

А как вам на Windows XP 32-бит удалось установить SQL Server Enterprise Edition (64-bit) ?


Речь, естественно, идет о работоспособности самого объекта. То есть, этот "mswinsck.ocx" работает в VB6. Вопрос выше был по среде, в которой указанный класс работает и это не обязательно SQL Server.


Konst_One
IMOL
файл mswinsck.ocx перенес на сервер MS Server 2008, зарегистрировал через regsvr32


скопировать и регить надо в \SysWOW64
с помощью regsvr32.exe оттуда же под правами админа (cmd.exe из этой же папки под правами админа)



В том то и дело, что так и сделал, именно в \SysWOW64. Все перенес на машину с SQL Server и все "руками" зарегистрировал с правами админа. Регистрация прошла успешно.
21 авг 14, 14:01    [16474040]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
тогда читайте это

http://support.microsoft.com/kb/932872/ru
21 авг 14, 14:02    [16474055]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Glory
Member

Откуда:
Сообщений: 104760
IMOL
Речь, естественно, идет о работоспособности самого объекта. То есть, этот "mswinsck.ocx" работает в VB6.

Вопрос был. В какой еще программной среде на той же машине и вы увидели, что после ваших ручных регистраций класс доступен и работает.
21 авг 14, 14:03    [16474058]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
IMOL
Member

Откуда:
Сообщений: 98
Konst_One
тогда читайте это

http://support.microsoft.com/kb/932872/ru


С этим ознакомился и смутно догадывался, что дело, быстрее всего, в разрядности платформ. Оно-то, наверное так и есть. Только обойти-то это можно? Перекомпилировать в 64-разр, как предлагается по этой ссылке, это как? У меня, кроме этого "mswinsck.ocx" ничего нет :).


Glory
Вопрос был. В какой еще программной среде на той же машине и вы увидели, что после ваших ручных регистраций класс доступен и работает.



"На той же машине" - в другой среде проверить не получается (кроме сообщения regsvr32 об успешной регистрации) . Хотя, думаю, если туда VB6 "накатить", то, быстрее всего, заработает :).
21 авг 14, 14:28    [16474253]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
IMOL
Member

Откуда:
Сообщений: 98
Попробую сформулировать задачу по-другому.
Мне, в общем-то, требуется послать некое сообщение на заданный порт некого "хоста" из тригера.
Собственно все.... Может есть другое, более простое решение?
21 авг 14, 14:30    [16474289]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
отказаться от mswinsck.ocx и вообще от такой работы на сервере SQL
переписать на .NET сервис
21 авг 14, 14:31    [16474294]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Glory
Member

Откуда:
Сообщений: 104760
IMOL
Перекомпилировать в 64-разр, как предлагается по этой ссылке, это как? У

Это взять исходный код и скомпилировать его в 64битном компиляторе

IMOL
Хотя, думаю, если туда VB6 "накатить", то, быстрее всего, заработает :).

Аге. Только не забудьте 64битный VB6 "накатить"
21 авг 14, 14:31    [16474299]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
IMOL
Попробую сформулировать задачу по-другому.
Мне, в общем-то, требуется послать некое сообщение на заданный порт некого "хоста" из тригера.
Собственно все.... Может есть другое, более простое решение?


пишите в своём триггере в стаблицу очереди, а очередь пусть некий сервис разгребает и отправляет куда надо (сервис внешний, напишите сами)
21 авг 14, 14:32    [16474316]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
IMOL
Member

Откуда:
Сообщений: 98
Glory
Это взять исходный код и скомпилировать его в 64битном компиляторе


IMOL
У меня, кроме этого "mswinsck.ocx" ничего нет :).
21 авг 14, 14:33    [16474327]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
IMOL
Member

Откуда:
Сообщений: 98
Konst_One
пишите в своём триггере в стаблицу очереди, а очередь пусть некий сервис разгребает и отправляет куда надо (сервис внешний, напишите сами)


Так и есть сейчас. События пишутся в таблицу, а внешний "exe-шник" рассылает их по заданным "хостам" и портам.
Отсылать сразу из тригера казалось более красивым решением.
21 авг 14, 14:36    [16474353]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Glory
Member

Откуда:
Сообщений: 104760
IMOL
Glory
Это взять исходный код и скомпилировать его в 64битном компиляторе


IMOL
У меня, кроме этого "mswinsck.ocx" ничего нет :).

Значит вам не повезло и придется написать свою mswinsck.ocx с нуля
21 авг 14, 14:37    [16474360]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
Konst_One
Member

Откуда:
Сообщений: 11538
IMOL
Konst_One
пишите в своём триггере в стаблицу очереди, а очередь пусть некий сервис разгребает и отправляет куда надо (сервис внешний, напишите сами)


Так и есть сейчас. События пишутся в таблицу, а внешний "exe-шник" рассылает их по заданным "хостам" и портам.
Отсылать сразу из тригера казалось более красивым решением.


интересно , где это вам про такую красоту рассказали
21 авг 14, 14:39    [16474389]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
IMOL
Member

Откуда:
Сообщений: 98
Glory
Значит вам не повезло и придется написать свою mswinsck.ocx с нуля


Спасибо на добром слове :)

Я эту задачу решил (сразу скажу, что по-тупому :) ) по-другому. Я просто использовал другой com объект -WinHttp.WinHttpRequest.
Просто вызываю из тригера URL типа "http://192.168.0.xxx:port". А на той стороне просто слушаю этот порт. Текст сообщения не интересует. А сама "посылка" на "том хосте" фиксируется. Что-то так :).

Большое спасибо всем за помощь.
21 авг 14, 14:48    [16474473]     Ответить | Цитировать Сообщить модератору
 Re: WinSock ругается  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
IMOL
Просто вызываю из тригера URL типа "http://192.168.0.xxx:port".
Трындец...
21 авг 14, 15:10    [16474685]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить