Here ya go. Be careful.
I sorta feel like I am making a mistake posting it...declare @expression varchar(500)set @expression = '1<2'DECLARE @sql nvarchar(4000), @min varchar(20)SELECT @sql = N'select case when (' + @expression + N') then 1 else 0 end min'select dbo.f_ExceuteAdodbScalar(@sql)---1------------------------------------Function to create adodb connection and execute SQL. Originally found here: [url]http://www.davidpenton.com/testsite/scratch/dbo.sp_ExecuteAdodbScalar.txt[/url]drop function [dbo].[f_ExceuteAdodbScalar] GO /************************************************************************ This function acts just like the ExecuteScalar in ADO.Net, but this uses ADODB. It takes a single SQL statement, executes it, then takes the first value. ****TO BE ADDED**** IT HAS NO CHECKS FOR EOF!!! it wouldn't be hard to add this... ************************************************************************/ create function [dbo].[f_ExceuteAdodbScalar]( @sql varchar(2048) ) returns varchar(255) as begin declare @ret varchar(255) , @hr int , @conn int , @rs int , @fields int , @field int EXEC @hr = master.dbo.sp_OACreate 'ADODB.Connection', @conn OUTPUT IF @hr <> 0 RETURN 'ERROR: -1' -- this conn string is for the local machine, trusted connection, master database -- it could very easily be modified to use the current database -- so this UDF could be used in multiple DBs -- or, the SQL passed in should be DB qualified EXEC @hr = master.dbo.sp_OAMethod @conn, 'Open', NULL, 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=localhost' IF @hr <> 0 RETURN 'ERROR: -2' EXEC @hr = master.dbo.sp_OAMethod @conn, 'Execute', @rs OUTPUT, @sql IF @hr <> 0 RETURN 'ERROR: -3' EXEC @hr = master.dbo.sp_OAMethod @rs, 'Fields', @fields OUTPUT IF @hr <> 0 RETURN 'ERROR: -4' EXEC @hr = master.dbo.sp_OAMethod @fields, 'Item', @field OUTPUT, 0 IF @hr <> 0 RETURN 'ERROR: -5' EXEC master.dbo.sp_OAGetProperty @field, 'Value', @ret OUTPUT -- destroy in reverse order EXEC @hr = master.dbo.sp_OADestroy @field EXEC @hr = master.dbo.sp_OADestroy @fields -- must close!!! EXEC @hr = master.dbo.sp_OAMethod @rs, 'Close', NULL IF @hr <> 0 RETURN 'ERROR: -6' EXEC @hr = master.dbo.sp_OADestroy @rs EXEC @hr = master.dbo.sp_OAMethod @conn, 'Close', NULL IF @hr <> 0 RETURN 'ERROR: -7' EXEC @hr = master.dbo.sp_OADestroy @conn return @ret end
--KenYour Kung-Fu is not strong. -- 'The Core'