классы для MSSQL2000: Extended stored procedureSOS
#1
Отправлено 06.12.2006, 14:06:52
попытки создания "стандартного" класса, который используется в обычных программках ни к чему не привели. Там созданный класс работает, а при подключении в MSSQL2000 - не пашет.
короче SOS
#2
Отправлено 06.12.2006, 21:30:58
#3
Отправлено 07.12.2006, 09:17:59
Привет, а можно пример?Microsoft не рпедоставлял примеры создания расширенных хранимых процедур для MSSQL 2000 на VB. Едлинственные которые у них есть - они с использованием MSVC++. расширеннные хранимые процедуре желательно писать все таки на C++. Если это невозможно и обязательно осуществить какие-то действия вне базы и при этом надо использовать VB могу посвоветовать создать COM-объект и вызывать его методы из SQL Server.
#4
Отправлено 07.12.2006, 11:06:16
Привет, а можно пример?
Вот пример использования 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
#5
Отправлено 07.12.2006, 11:33:00
Ужас, проще написать exSP
Привет, а можно пример?
Вот пример использования 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
#8
Отправлено 14.12.2006, 11:03:43
Количество пользователей, читающих эту тему: 2
пользователей: 0, неизвестных прохожих: 2, скрытых пользователей: 0