Перейти к содержимому

Фотография

классы для MSSQL2000: Extended stored procedureSOS


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 7

#1
SWEETthings

SWEETthings
  • В доску свой
  • 8 875 сообщений
нужен пример класса на VB для использования MSSQL2000 как extended stored procedure

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

короче SOS
  • 0

#2
kant

kant
  • Гость
  • 34 сообщений
Microsoft не рпедоставлял примеры создания расширенных хранимых процедур для MSSQL 2000 на VB. Едлинственные которые у них есть - они с использованием MSVC++. расширеннные хранимые процедуре желательно писать все таки на C++. Если это невозможно и обязательно осуществить какие-то действия вне базы и при этом надо использовать VB могу посвоветовать создать COM-объект и вызывать его методы из SQL Server.
  • 0

#3
SN00PY

SN00PY
  • Гость
  • 7 сообщений

Microsoft не рпедоставлял примеры создания расширенных хранимых процедур для MSSQL 2000 на VB. Едлинственные которые у них есть - они с использованием MSVC++. расширеннные хранимые процедуре желательно писать все таки на C++. Если это невозможно и обязательно осуществить какие-то действия вне базы и при этом надо использовать VB могу посвоветовать создать COM-объект и вызывать его методы из SQL Server.

Привет, а можно пример?
  • 0

#4
kant

kant
  • Гость
  • 34 сообщений

Привет, а можно пример?


Вот пример использования COM-объектов из SQL Server.

DECLARE @object int
DECLARE @hr int
DECLARE @property varchar(255)
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)

-- Создаем OLE объект
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- Устанавливаем значенеи свойства HostName для подключения к серверу.
EXEC @hr = sp_OASetProperty @object, 'HostName', 'my_host'
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- Устанваливаем признак подключения к серверу с помощью интегрированной безопасности Windows.
EXEC @hr = sp_OASetProperty @object, 'LoginSecure', 1
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- Получаем значение свойства.
EXEC @hr = sp_OAGetProperty @object, 'HostName', @property OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END
PRINT @property

-- вызываем метод без параметров.
EXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'server_name', NULL, NULL
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- вызываем метод возвращающий значения.
EXEC @hr = sp_OAMethod @object, 'VerifyConnection', @return OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END
PRINT @return

-- Освобождаем COM-объект.
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

Вышеприведенный код аналогичен следующему коду на VB.
Dim server as SQLDMO.SQLServer
Dim connectionValid as Boolean

server = new SQLDMO.SQLServer
server.LoginSecure=True
server.HostName='my_host'
server.Connect 'server_name', Nothing, Nothing
connectionValid  = server.VerifyConnection

  • 0

#5
SN00PY

SN00PY
  • Гость
  • 7 сообщений


Привет, а можно пример?


Вот пример использования COM-объектов из SQL Server.

DECLARE @object int
DECLARE @hr int
DECLARE @property varchar(255)
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)

-- Создаем OLE объект
EXEC @hr = sp_OACreate 'SQLDMO.SQLServer', @object OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- Устанавливаем значенеи свойства HostName для подключения к серверу.
EXEC @hr = sp_OASetProperty @object, 'HostName', 'my_host'
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- Устанваливаем признак подключения к серверу с помощью интегрированной безопасности Windows.
EXEC @hr = sp_OASetProperty @object, 'LoginSecure', 1
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- Получаем значение свойства.
EXEC @hr = sp_OAGetProperty @object, 'HostName', @property OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END
PRINT @property

-- вызываем метод без параметров.
EXEC @hr = sp_OAMethod @object, 'Connect', NULL, 'server_name', NULL, NULL
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

-- вызываем метод возвращающий значения.
EXEC @hr = sp_OAMethod @object, 'VerifyConnection', @return OUT
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END
PRINT @return

-- Освобождаем COM-объект.
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
   EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT 
   SELECT hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
	RETURN
END

Вышеприведенный код аналогичен следующему коду на VB.
Dim server as SQLDMO.SQLServer
Dim connectionValid as Boolean

server = new SQLDMO.SQLServer
server.LoginSecure=True
server.HostName='my_host'
server.Connect 'server_name', Nothing, Nothing
connectionValid  = server.VerifyConnection

Ужас, проще написать exSP
exSP
  • 0

#6
kant

kant
  • Гость
  • 34 сообщений

Ужас, проще написать exSP
exSP


Кто же говорит что будет все как в сказке. Но мне кажется это лучше чем пытаться написать на VB extended procedure. Хотя это занятие на любителя :D
  • 0

#7
Napoleon

Napoleon
  • Свой человек
  • 669 сообщений
а с другой стороны - зачем грузить SQL сервер - такими задачами?

Что может такого сделать с объектом SQL сервер - чего не может VB?
  • 0

#8
SN00PY

SN00PY
  • Гость
  • 7 сообщений
Вобщем люди, ответ найдет пусть и несколько в ином виде
http://planetsourcec...o...32&lngWId=5
  • 0


Количество пользователей, читающих эту тему: 2

пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.