.NET Framework :: Error In Creating CLR Functions Saying Server Is Information Protection Configured
Aug 17, 2011
We have few C# binaries that contains definition of CLR functions, and one stored procedure to install / create them in our database. Recently when dropping and recreating the CLR function using our stored procedure, it failed with below error:
Error/info returned: [Microsoft][ODBC SQL Server Driver][SQL Server]This server is Information Protection configured. Only the sql server web application can be used for this function. ([URL])[Microsoft][ODBC SQL Server Driver][SQL Server]The transaction ended in the trigger. The batch has been aborted.
Basically our stored procedure has standard steps to create asymmetric key for each of our C# binary and create login for that key and then grant unsafe assembly permissions to those logins.
It sets show advanced options, clr enabled, and ole automation procedures options. It then using create assembly (for each c# binary with permission_set = unsafe) and create function constructs to create clr functions in SQL server.
View 2 Replies
ADVERTISEMENT
Aug 15, 2007
Running [dbo].[insertlogin] ( @log = hiten, @pas = hiten ).A .NET Framework error occurred during execution of user-defined routine or aggregate "insertlogin": System.Data.SqlClient.SqlException: Must declare the scalar variable "@Log".System.Data.SqlClient.SqlException: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnectionSmi.EventSink.ProcessMessagesAndThrow(Boolean ignoreNonFatalMessages) at Microsoft.SqlServer.Server.SmiEventSink_Default.ProcessMessagesAndThrow(Boolean ignoreNonFatalMessages) at System.Data.SqlClient.SqlCommand.RunExecuteNonQuerySmi(Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at SqlServerProject1.StoredProcedures.insertlogin(SqlString log, SqlString pas).No rows affected.(0 row(s) returned)@RETURN_VALUE = Finished running [dbo].[insertlogin]. ***************************************************************all i am trying to do is : creating a SP in VS using managed code and then trying to execute it. But every time i get the above error. If you can tell me how to edit connection string in this that would be very helpful. At present i am using : Using conn As New SqlConnection("context connection=true") I tried to do "" ALTER ASSEMBLY SqlServerProject1 WITH PERMISSION_SET=EXTERNAL_ACCESS""but i get this error "" Msg 10327, Level 14, State 1, Line 1ALTER ASSEMBLY for assembly 'SqlServerProject1' failed because assembly 'SqlServerProject1' is not authorized for PERMISSION_SET = EXTERNAL_ACCESS. The assembly is authorized when either of the following is true: the database owner (DBO) has EXTERNAL ACCESS ASSEMBLY permission and the database has the TRUSTWORTHY database property on; or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with EXTERNAL ACCESS ASSEMBLY permission. If you have restored or attached this database, make sure the database owner is mapped to the correct login on this server. If not, use sp_changedbowner to fix the problem.""" *********************************************************************Plz help
View 13 Replies
View Related
Dec 1, 2007
I confirm, You ca resolve this problem if use a good copy of dotnefx.exe package.
You can find this here:
http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5
Nino Crudele
blog; http://blogs.ugidotnet.org/Biztalk
View 1 Replies
View Related
Sep 22, 2007
Hi,
Can anybody help me with the following problem:
I have Vista Ultimate installed and within Vista .NET Framework 3.0 is installed as a part of the operating system so I can't remove 3.0
Now for MS SQL Server 2005 Express I need .NET Framework 2.0 and the SQL Server 2005 doesn't work with .NET Framework 3.0
Can't install 2.0, get the message that 3.0 is already installed.
Please help me!!
René
View 5 Replies
View Related
Oct 15, 2007
We've deployed an assembly to a new production sql server 2005 instance, and have been having periodic restarts of sql server. The sql server service appears to be stopping and restarting on it's own since the assembly was deployed.
We've narrowed it down to a decryption method. We haven't been able to produce the issue on a consistant basis. Even if we put a ton of load on the stored procedure calls.
The error is below we receive (I cut out some, so it would fit in the thread), we also have mdmp files, that I've attempted to debug with Visual Studio 2005 and Windbg with no success. I have all the symbols (I'm pretty sure), but I don't have much experience with WinDbg, so it's been slow going.
Here's a little about the environment.
Windows Server 2003 Enterprise x64 SP2
Microsoft SQL Server version 9.00.3042.00 SP2
16 MB physical memory
Quad 3.2 GHz Xeon
3 sets of raid drives.
c: OS
e: sql data
e: sql logs
All Sql and windows patches are up to date.
Only thing I can figure is this is something to do with the .NET libraries. When the assembly was compiled it was set to compile for any CPU. We even tried compiling on the 64 bit OS with no luck still.
If anyone has had a similar issue, it would be most helpful, thanks,
Byron
---------------------------------------------------------------
Memory
MemoryLoad = 9%
Total Physical = 16382 MB
Available Physical = 14760 MB
Total Page File = 32159 MB
Available Page File = 30633 MB
Total Virtual = 8388607 MB
Available Virtual = 8365517 MB
**Dump thread - spid = 56, PSS = 0x0000000092BDFE90, EC = 0x0000000092BDFEA0
***Stack Dump being sent to C:Program FilesMicrosoft SQL ServerMSSQL.1MSSQLLOGSQLDump0067.txt
* *******************************************************************************
*
* BEGIN STACK DUMP:
* 10/14/07 15:49:11 spid 56
*
* A fatal error occurred in .NET Framework runtime.
*
* Input Buffer 62 bytes -
* u t i l s . d b 17 00 75 00 74 00 69 00 6c 00 73 00 2e 00 64 00 62 00
* o . d e c r y p t 6f 00 2e 00 64 00 65 00 63 00 72 00 79 00 70 00 74 00
* B a s e 6 4 §@ 42 00 61 00 73 00 65 00 36 00 34 00 00 00 00 01 a7 40
* Ã? 4 1f 09 04 d0 00 34 00 00
*
*
*
* -------------------------------------------------------------------------------
* Short Stack Dump
0000000077D67D8D Module(kernel32+0000000000027D8D)
0000000001D345DE Module(sqlservr+0000000000D345DE)
0000000001D3F3A9 Module(sqlservr+0000000000D3F3A9)
0000000002156D83 Module(sqlservr+0000000001156D83)
00000000021571C2 Module(sqlservr+00000000011571C2)
000006427F8F5FFD Module(mscorwks+00000000005C5FFD)
000006427FA4855B Module(mscorwks+000000000071855B)
000006427F888C4B Module(mscorwks+0000000000558C4B)
000006427F5D51C8 Module(mscorwks+00000000002A51C8)
000006427F5D5113 Module(mscorwks+00000000002A5113)
000006427F453A5A Module(mscorwks+0000000000123A5A)
0000000077F251EC Module(ntdll+00000000000651EC)
0000000077EE5F36 Module(ntdll+0000000000025F36)
0000000077EF31DD Module(ntdll+00000000000331DD)
000006427FA5089B Module(mscorwks+000000000072089B)
000006427806C7F8 Module(mscorlib.ni+000000000006C7F8)
000006427806B564 Module(mscorlib.ni+000000000006B564)
000006428029CBB7 Module(UNKNOWN+0000000000000000)
00000642788A6088 Module(mscorlib.ni+00000000008A6088)
000000000818E8F0 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
000000000818E7D0 Module(UNKNOWN+0000000000000000)
000000000818E090 Module(UNKNOWN+0000000000000000)
00000005010A5F40 Module(UNKNOWN+0000000000000000)
00000005010A5F60 Module(UNKNOWN+0000000000000000)
00000005010A5F90 Module(UNKNOWN+0000000000000000)
00000005010A5FC0 Module(UNKNOWN+0000000000000000)
00000005010A5FD8 Module(UNKNOWN+0000000000000000)
00000005010A6020 Module(UNKNOWN+0000000000000000)
00000005010A63B0 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000019 Module(UNKNOWN+0000000000000000)
00000000841EC050 Module(UNKNOWN+0000000000000000)
00000005010A5F40 Module(UNKNOWN+0000000000000000)
00000005010A5F60 Module(UNKNOWN+0000000000000000)
00000005010A5F90 Module(UNKNOWN+0000000000000000)
00000005010A5FC0 Module(UNKNOWN+0000000000000000)
00000005010A5FD8 Module(UNKNOWN+0000000000000000)
00000005010A6020 Module(UNKNOWN+0000000000000000)
00000005010A6020 Module(UNKNOWN+0000000000000000)
00000005010A6180 Module(UNKNOWN+0000000000000000)
00000005010A63B0 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000001900000409 Module(UNKNOWN+0000000000000000)
0000000000000001 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
000000000818E7D0 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
000000000818E200 Module(UNKNOWN+0000000000000000)
000000000818E200 Module(UNKNOWN+0000000000000000)
0000064280400218 Module(UNKNOWN+0000000000000000)
000000000818E250 Module(UNKNOWN+0000000000000000)
000000000818E230 Module(UNKNOWN+0000000000000000)
FFFFFFFFFFFFFFFE Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000001C52423 Module(sqlservr+0000000000C52423)
0000000000000001 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
00000005010A5F40 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
0000001900000409 Module(UNKNOWN+0000000000000000)
0000000000000001 Module(UNKNOWN+0000000000000000)
0000000000000000 Module(UNKNOWN+0000000000000000)
000000000818E340 Module(UNKNOWN+0000000000000000)
0000000080D262B0 Module(UNKNOWN+0000000000000000)
000006428029C31E Module(UNKNOWN+0000000000000000)
0000000000000004 Module(UNKNOWN+0000000000000000)
000006427F5B3B52 Module(mscorwks+0000000000283B52)
-----------------------
View 1 Replies
View Related
Oct 4, 2007
Hi
I am experiencing a problem while performing failover testing on 2005 Standard.
I have an application which uses an ODBC connection SQL Native Client with a failover partner.
The following is the series of events that cause the problem. I am using a domain admin account whilst testing which has a server login on both servers with the same privileges.
Server A (Principle)
Server B (Mirror)
**Application can connect**
Manual failover
Server A (Mirror)
Server B (Principle)
**Application can connect following a restart**
Server A is switched off
Server B (Principle, disconnected)
**Application continues working**
***restarting the application the following error occurs***
€œConnection Failed
SQLState 08001
SQL Server Error 53
[Microsoft][SQL Native Client]Named Pipes Provider: Could not open a connectionto SQL Server [53].
Connection failed:
SQLState: '08001'
SQL Server Error: 53
[Microsoft][SQL Native Client]An error has occured while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections.
Connection failed:
SQLState: 'S1T00'
SQL Server Error: 0
[Microsoft][SQL Native Client]Login timeout expired€œ
Any help with this would be most appreciated
Peter
View 2 Replies
View Related
Aug 10, 2006
I have some code below which is a function in an Access database, the function is a field in a query which find the initial non numeric charceters from a postcode (eg CV8 6UJ returns CV) then returns the region manager. So findPCR("CV8 6UJ") = "Bob Thomas".
I have a view in SQL Server and I want to the exact same thing (create a new field for the view which has as its source the findPCR() function.
So firstly i)can i do this in SQL Server and ii) how do I go about doing it?
Function findPCR(pcode As String)
Dim startpos As Integer
Dim CurChar, sstring As String
startpos = 1
CurChar = "a"
Do While Not IsNumeric(CurChar) And startpos <= Len(pcode)
CurChar = Mid(pcode, startpos, 1)
startpos = startpos + 1
Loop
sstring = "%" & Mid(pcode, 1, startpos - 2) & "%"
If InStr(1, "%B%CV%DE%DY%LE%LN%NG%NN%PE%ST%SY%TF%WR%WS%WV%", sstring) > 0 Then
findPCR = "Bob Thomas"
Else
findPCR = "Unknown"
End If
End Function
View 6 Replies
View Related
Sep 26, 2007
Hi,
Below is my scenario:
Table name: "Items"
Columns:
Item Id,
Item name,
Item Description
I am implementing a search feature.There is SP for the same.
The item Id is passed as a parameter and the records are fetched.
If the Item id is passed as a integer value all works fine.
For eg. @ItemId=1.
Now the user would like to enter rangevalues on the front end screen.
Like for eg.Item Id = 1-10 or user can enter Item Id=1-10 , 20-25, 30-50
In such a case i am passing the contents as it is.
I.e my @ItemId='1-10 , 20-25, 30-50'
Now i need a function will will decode these appropriately and will return the result for these group of items.
Kindly give me some directions in how to go about this scenario.
Thanks
Renu
View 4 Replies
View Related
Oct 31, 2007
Can someone please explain what the following function does?
Use Master
go
create function dbo.concatenate(@a1 as int)
returns varchar(8000)
as
begin
declare @r varchar(8000)
declare @b1 varchar(1000)
set @r = ''
declare c cursor for
select Notes from heatdb..Accs where ID = @a1
open c
fetch next from c into @b1
while @@FETCH_STATUS = 0
begin
set @r = @r + ' ' + @b1
fetch next from c into @b1
end
close c
deallocate c
return @r
end
go
View 4 Replies
View Related
Jan 10, 2007
Well, I just downloaded SQL 2005 Express to have a play. Good old Billsays "up and running in 20 minutes"Well 5 hrs, 5 reboots and 4 full un-install and re-install later I havefinally got it working. About what I expected really.Anyway, my question relates to creating user defined functions. I've 10yrs exp in MS Access and VB, and user ent Manager to create views onthe work server, but havnt done much with functions.I'm using the Management Studio Express.I've opened a new view and copied the following sample code but it wontlet me save it.-------------------------IF OBJECT_ID(N'dbo.GetWeekDay', N'FN') IS NOT NULLDROP FUNCTION dbo.GetWeekDay;GOCREATE FUNCTION dbo.GetWeekDay -- function name(@Date datetime) -- input parameter name and datatypeRETURNS int -- return parameter data typeASBEGIN -- begin body definitionRETURN DATEPART (weekday, @Date) -- action performedEND;GO------------------------------------------When I try to save it it says"incorrect syntax near the key work 'IF'incorrect syntax near 'GO'CREATE FUNCTION must be the first statement in a query batchmust declair the scalar variable "@Date"Whats wrong with the syntax???Thanks in advanceGrant
View 4 Replies
View Related
Feb 6, 2004
I just had to rebuild master and msdb in Sql 2000. Now any DTS package accessing that machine fails with the message 'Server __ is not configured for DATA ACCESS.' The message seems to be coming from OLE. Everything else, including applications, scheduled jobs, etc. seems to work fine.
How can I restore data access?
View 5 Replies
View Related
Jul 23, 2005
Hi all,I'm trying to create a layout of our website for Marketing to review,and though I know how I want it presented, I'm not sure how to writethe SQL code to make it work. Here's a sample of the View I've writtenwith all our content:Level Title ID ParentID1 Clinics 11 Services 22 Surgery 1 22 ER 2 22 Radiology 3 22 Clinic 1 4 12 Clinic 2 5 12 Clinic 3 6 13 Heart 1 13 Lung 2 13 Physicians 3 43 Physicians 4 53 Physicians 5 6And the output would basically be this:Clinics- Clinic 1-- Physicians- Clinic 2-- Physicians- Clinic 3-- PhysiciansServices- Surgery-- Heart-- Lung- ER- RadilogyIs there anyway to do this in a SQL statement, or maybe Crystal orAccess? I even tried a Pivot table in Excel, but it wants to sumstuff, and I'm not working with numbers (sums, counts, etc). Alsosince I'm not using any aggrate functions MS SQL is complaining when iuse Group By.Thanks for any suggestions. Also though the layout is similar, theitems listed above are pulled outta the air. Hopefully I typed upsomething that makes since :)Alex
View 2 Replies
View Related
Mar 5, 2006
a number of time I have come accross developers using functions like
GetProduct()
GetProductTitle()
GetProductCategory()
to get the value of the data instead of just using queries / stored procedures
I have not understood why
can you please point to some good forum messages / blogposts / articles on this ?
Whats your take on this ?
View 8 Replies
View Related
Jan 30, 2007
How can we control the accesses to a SQL Server that has been deployed on customer site? Basically, we do not want user to log in the database server, even as sa, except through our application.
Any recommendation?
Thanks,
Xiaodoudou
View 3 Replies
View Related
Oct 10, 2007
I have some user defined CLR function. One of my STPs uses this function. Sometime next exception is thrown by SQL server:
DB Error: A .NET Framework error occurred during execution of user defined routine or aggregate 'UnzipProcedure':
System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.SqlConnection' threw an exception. ---> System.Threading.ThreadAbortException: Exception of type 'System.Threading.ThreadAbortException' was thrown.
System.Threading.ThreadAbortException:
System.TypeInitializationException:
at System.Data.SqlClient.SqlConnection..ctor(String connectionString)
at UserDefinedFunctions.UnzipProcedure()
Where UnzipProcedure is user defined function.
If this exception happen, all other calls to STP that uses UnzipProcedure would return exception. Restart of a SQL server is helpful.
Does anyone meat the exception in similar circumstances? Is any way to recreate such exception? My quess is that there is some lock on resource that UnzipProcedure use. How can I figured out what resource is busy? Any other suggestions.
Thank You in advance.
View 5 Replies
View Related
Jan 15, 2008
This is the first time I've used SQL Server Integration Services, and I have it installed with SP2 applied on my local machine. I have created a Package, and dropped a Message Queue Task on it. I have pointed the Message Queue Connection Manager at a private queue on my machine. I have set the "Message" property to "Send message", I have changed the message type to "String Message" and entered "Test string" into the StringMessage property. When I execute the package (by clicking the "Start debugging" button on the toolbar), I get the following error message in the Execution Results:
[Message Queue Task] Error: An error occurred with the following error message: "The ServicedComponent being invoked is not correctly configured (Use regsvcs to re-register).".
There is no more diagnostic data that I can see in the Execution Results. Can anyone please explain to me how I can get this working?
Thanks!
Bryan
View 12 Replies
View Related
Dec 25, 2007
Hi,
I have been trying to export data from a Microsoft Excel 2007, Tester.xlsx to a SQL Server 2005 table as :
SELECT * INTO CUSTMAS FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:Tester.xls;Extended Properties=Excel 8.0')...[Providers$]
I have an error:
Cannot get the column information from OLE DB provider "Microsoft.Jet.OLEDB.4.0" for linked server"(null)"
View 9 Replies
View Related
Oct 12, 2005
Recently I'm working on a MS SQL 2K server with a database installed that becomes larger and larger. Is there a simple rule or calculation how much memory I must have installed in the server configuration to get a normal performance.
I remembering somthing like the memory size must be equal to the size of the largest table or something. :confused:
View 2 Replies
View Related
Jul 13, 2007
Hi this is SQL 2000 but I couldn't see a forum for SQL 2000 replication.
I have set up merge replication. Between a server and an msde laptop.
The sync works fine within the network but when the user goes home and vpn's into the network and tries to replicate they get an error message that says:
"...server is not configured as a distributor" I find this strange because the replication definitely works within the network.
View 1 Replies
View Related
Apr 20, 2006
VS2k5 Win2k3IIS6.NET 2.0In my ASP.NET 2.0 app I create and open an SQL connection in the page's constructor and call Dispose() in the destructor. The SQLConnection object is a class member of the page. This page makes heavy use of the SQLConnection object so I felt opening and closing in the constructor/destructor respectively was good design. I know this doesn't take full advantage of connection pooling. Any design input would be very much appreciated.Here's the destructor code:/// Destructor~Officer(){ if( m_objConn != null ) m_objConn.Dispose(); // <-- Exception occurrs here.}/// End DestructorWhen running this particular page through some testing I get the following exception in the destructor at the "m_objConn.Dispose();" line:System.InvalidOperationException was unhandled Message="Internal .Net Framework Data Provider error 1." Source="System.Data" StackTrace: at System.Data.ProviderBase.DbConnectionInternal.PrePush(Object expectedOwner) at System.Data.ProviderBase.DbConnectionPool.PutObject(DbConnectionInternal obj, Object owningObject) at System.Data.ProviderBase.DbConnectionInternal.CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) at System.Data.SqlClient.SqlConnection.Close() at System.Data.SqlClient.SqlConnection.Dispose(Boolean disposing) at System.ComponentModel.Component.Dispose() at Officer.Finalize() in c:sysprojectsAddOfficer.aspx.cs:line 461) Is this design good/bad?1) Is this a bug?2) Do I need a try/catch in a destructor? Is it good programming practice?3) Why is this happening?4) What is the meaning of life?Any help is appreciated. TIA
View 2 Replies
View Related
May 26, 2006
I was playing around with the new SQL 2005 CLR functionality andremembered this discussion that I had with Erland Sommarskog concerningperformance of scalar UDFs some time ago (See "Calling sp_oa* infunction" in this newsgroup). In that discussion, Erland made thefollowing comment about UDFs in SQL 2005:[color=blue][color=green]>>The good news is that in SQL 2005, Microsoft has addressed several of[/color][/color]these issues, and the cost of a UDF is not as severe there. In fact fora complex expression, a UDF in written a CLR language may be fasterthanthe corresponding expression using built-in T-SQL functions.<<I thought the I would put this to the test using some of the same SQLas before, but adding a simple scalar CLR UDF into the mix. The testinvolved querying a simple table with about 300,000 rows. Thescenarios are as follows:(A) Use a simple CASE function to calculate a column(B) Use a simple CASE function to calculate a column and as a criterionin the WHERE clause(C) Use a scalar UDF to calculate a column(D) Use a scalar UDF to calculate a column and as a criterion in theWHERE clause(E) Use a scalar CLR UDF to calculate a column(F) Use a scalar CLR UDF to calculate a column and as a criterion inthe WHERE clauseA sample of the results is as follows (time in milliseconds):(295310 row(s) affected)A: 1563(150003 row(s) affected)B: 906(295310 row(s) affected)C: 2703(150003 row(s) affected)D: 2533(295310 row(s) affected)E: 2060(150003 row(s) affected)F: 2190The scalar CLR UDF function was significantly faster than the classicscalar UDF, even for this very simple function. Perhaps a more complexfunction would have shown even a greater difference. Based on this, Imust conclude that Erland was right. Of course, it's still faster tostick with basic built-in functions like CASE.In another test, I decided to run some queries to compare built-inaggregates vs. a couple of simple CLR aggregates as follows:(G) Calculate averages by group using the built-in AVG aggregate(H) Calculate averages by group using a CLR aggregate that similatesthe built-in AVG aggregate(I) Calculate a "trimmed" average by group (average excluding highestand lowest values) using built-in aggregates(J) Calculate a "trimmed" average by group using a CLR aggregatespecially designed for this purposeA sample of the results is as follows (time in milliseconds):(59 row(s) affected)G: 313(59 row(s) affected)H: 890(59 row(s) affected)I: 216(59 row(s) affected)J: 846It seems that the CLR aggregates came with a significant performancepenalty over the built-in aggregates. Perhaps they would pay off if Iwere attempting a very complex type of aggregation. However, at thispoint I'm going to shy away from using these unless I can't find a wayto do the calculation with standard SQL.In a way, I'm happy that basic SQL still seems to be the fastest way toget things done. With the addition of the new CLR functionality, Isuspect that MS may be giving us developers enough rope to comfortablyhang ourselves if we're not careful.Bill E.Hollywood, FL------------------------------------------------------------------------- table TestAssignment, about 300,000 rowsCREATE TABLE [dbo].[TestAssignment]([TestAssignmentID] [int] NOT NULL,[ProductID] [int] NULL,[PercentPassed] [int] NULL,CONSTRAINT [PK_TestAssignment] PRIMARY KEY CLUSTERED([TestAssignmentID] ASC)--Scalar UDF in SQLCREATE FUNCTION [dbo].[fnIsEven](@intValue int)RETURNS bitASBEGINDeclare @bitReturnValue bitIf @intValue % 2 = 0Set @bitReturnValue=1ElseSet @bitReturnValue=0RETURN @bitReturnValueEND--Scalar CLR UDF/*using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;public partial class UserDefinedFunctions{[Microsoft.SqlServer.Server.SqlFunction(IsDetermini stic=true,IsPrecise=true)]public static SqlBoolean IsEven(SqlInt32 value){if(value % 2 == 0){return true;}else{return false;}}};*/--Test #1--Scenario A - Query with calculated column--SELECT TestAssignmentID,CASE WHEN TestAssignmentID % 2=0 THEN 1 ELSE 0 END ASCalcColumnFROM TestAssignment--Scenario B - Query with calculated column as criterion--SELECT TestAssignmentID,CASE WHEN TestAssignmentID % 2=0 THEN 1 ELSE 0 END ASCalcColumnFROM TestAssignmentWHERE CASE WHEN TestAssignmentID % 2=0 THEN 1 ELSE 0 END=1--Scenario C - Query using scalar UDF--SELECT TestAssignmentID,dbo.fnIsEven(TestAssignmentID) AS CalcColumnFROM TestAssignment--Scenario D - Query using scalar UDF as crierion--SELECT TestAssignmentID,dbo.fnIsEven(TestAssignmentID) AS CalcColumnFROM TestAssignmentWHERE dbo.fnIsEven(TestAssignmentID)=1--Scenario E - Query using CLR scalar UDF--SELECT TestAssignmentID,dbo.fnIsEven_CLR(TestAssignmentID) AS CalcColumnFROM TestAssignment--Scenario F - Query using CLR scalar UDF as crierion--SELECT TestAssignmentID,dbo.fnIsEven_CLR(TestAssignmentID) AS CalcColumnFROM TestAssignmentWHERE dbo.fnIsEven(TestAssignmentID)=1--CLR Aggregate functions/*using System;using System.Data;using System.Data.SqlClient;using System.Data.SqlTypes;using Microsoft.SqlServer.Server;[Serializable][Microsoft.SqlServer.Server.SqlUserDefinedAggregate (Format.Native)]public struct Avg{public void Init(){this.numValues = 0;this.totalValue = 0;}public void Accumulate(SqlDouble Value){if (!Value.IsNull){this.numValues++;this.totalValue += Value;}}public void Merge(Avg Group){if (Group.numValues > 0){this.numValues += Group.numValues;this.totalValue += Group.totalValue;}}public SqlDouble Terminate(){if (numValues == 0){return SqlDouble.Null;}else{return (this.totalValue / this.numValues);}}// private accumulatorsprivate int numValues;private SqlDouble totalValue;}[Serializable][Microsoft.SqlServer.Server.SqlUserDefinedAggregate (Format.Native)]public struct TrimmedAvg{public void Init(){this.numValues = 0;this.totalValue = 0;this.minValue = SqlDouble.MaxValue;this.maxValue = SqlDouble.MinValue;}public void Accumulate(SqlDouble Value){if (!Value.IsNull){this.numValues++;this.totalValue += Value;if (Value < this.minValue)this.minValue = Value;if (Value > this.maxValue)this.maxValue = Value;}}public void Merge(TrimmedAvg Group){if (Group.numValues > 0){this.numValues += Group.numValues;this.totalValue += Group.totalValue;if (Group.minValue < this.minValue)this.minValue = Group.minValue;if (Group.maxValue > this.maxValue)this.maxValue = Group.maxValue;}}public SqlDouble Terminate(){if (this.numValues < 3)return SqlDouble.Null;else{this.numValues -= 2;this.totalValue -= this.minValue;this.totalValue -= this.maxValue;return (this.totalValue / this.numValues);}}// private accumulatorsprivate int numValues;private SqlDouble totalValue;private SqlDouble minValue;private SqlDouble maxValue;}*/--Test #2--Scenario G - Average Query using built-in aggregate--SELECT ProductID, Avg(Cast(PercentPassed AS float))FROM TestAssignmentGROUP BY ProductIDORDER BY ProductID--Scenario H - Average Query using CLR aggregate--SELECT ProductID, dbo.Avg_CLR(Cast(PercentPassed AS float)) AS AverageFROM TestAssignmentGROUP BY ProductIDORDER BY ProductID--Scenario I - Trimmed Average Query using built in aggregates/setoperations--SELECT A.ProductID,CaseWhen B.CountValues<3 Then NullElse Cast(A.Total-B.MaxValue-B.MinValue ASfloat)/Cast(B.CountValues-2 As float)End AS AverageFROM(SELECT ProductID, Sum(PercentPassed) AS TotalFROM TestAssignmentGROUP BY ProductID) ALEFT JOIN(SELECT ProductID,Max(PercentPassed) AS MaxValue,Min(PercentPassed) AS MinValue,Count(*) AS CountValuesFROM TestAssignmentWHERE PercentPassed Is Not NullGROUP BY ProductID) BON A.ProductID=B.ProductIDORDER BY A.ProductID--Scenario J - Trimmed Average Query using CLR aggregate--SELECT ProductID, dbo.TrimmedAvg_CLR(Cast(PercentPassed AS real)) ASAverageFROM TestAssignmentGROUP BY ProductIDORDER BY ProductID
View 9 Replies
View Related
Jul 10, 2007
I have created and deployed my first report. It renders fine for me and the other database admin. When others attempt to view it, we get the error
Query execution failed for data set 'periods'. (rsErrorExecutingCommand), For more information about this error navigate to the report server on the local server machine, or enable remote errors
Initially, We created a local group on the machine that hosts both the database and webserver and added the individuals to that group. Then, within SRS Report manager, we added that group to the Browswer role of the report.
The error message was slightly different, in that it couldn't even open the Datasource.
We then added an individual to the database as dbreader, and got the above message. It apprently is starting to render, and when it encounters the first query (dataset "periods", which populates a drop down list for a parameter), it chokes. BTW, the Periods dataset executes a stored procedure dbo.Period_List that has no parameters. It returns a list of reporting periods.
I could not figure out how to "enable remote errors" or find an error log on the server. The C:Program FilesMicrosoft SQL ServerMSSQL.3Reporting ServicesLogFiles Log files did not appear to record any errors.
Please advise!
View 6 Replies
View Related
Nov 6, 2015
We have an existing code base that makes use of SQL CLR. When trying to run against SQL Server 2014, we're receiving this error:
Error 6517: Failed to create AppDomain "xxxx.dbo[runtime].175".
Could not load file or assembly 'System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. Not enough storage is available to process this command. (Exception from HRESULT: 0x80070008)
I can reproduce this error on two machines, both with 16GB. The error occurs when trying to run a series of tests that load a small amount of seed data into a database.Â
At first I thought that the problem might have been due to the CLR assembly being compiled against .NET 2.0. However, I've since change the assembly to compile against .NET 4.0 with no change in the results.
View 5 Replies
View Related
Mar 12, 2015
How to update the windows patch on sql server where the server is configured in always on ?
View 4 Replies
View Related
Apr 4, 2007
Hi all,
I am trying to access my SQL Server database through SqlCeConnection:
cecon = new SqlCeConnection("Data Source=D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf");
cecon.Open();
I am getting the following error:
System.Data.SqlServerCe.SqlCeException was unhandled
Message="The path is not valid. Check the directory for the database. [ Path = D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf ]"
HResult=-2147467259
NativeError=25009
Source="SQL Server 2005 Mobile Edition ADO.NET Data Provider"
StackTrace:
at System.Data.SqlServerCe.SqlCeConnection.ProcessResults()
at System.Data.SqlServerCe.SqlCeConnection.Open()
at System.Data.SqlServerCe.SqlCeConnection.Open()
at nddbpda.frmCeMain.frmCeMain_Load()
at System.Windows.Forms.Form.OnLoad()
at System.Windows.Forms.Form._SetVisibleNotify()
at System.Windows.Forms.Control.set_Visible()
at System.Windows.Forms.Application.Run()
at nddbpda.Program.Main()
When I tried to get the path from which the database file is being accepted, I got a different path:
string path;
path = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
MessageBox.Show(path);
This code gives me this path:
Program Filesddbpda
Then I changed the path in my connection string to this:
cecon = new SqlCeConnection("Data Source=\Program Files\nddbpda\nddbpdadatabase.sdf");
cecon.Open();
When I ran my application it worked (virtually), but the database is not getting updated (for obvious reasons).
What should I do now to correct this?
Thanks in advance.
Saswata.
View 3 Replies
View Related
Feb 24, 2006
hi i am using asp .net 1.1
i have deployed my application on server where sql server 2005 exists but if i try to connect to sql server from my development machine then it is not connecting and gives me error when
conn.open()
in my sql server it is windows authentication.
the error is general network error check network docs.
i have tried timeout=0 and pooling=false
but neither works please answer.
what should my connection string.
View 1 Replies
View Related
Apr 4, 2007
Hi all,
I am trying to access my SQL Server database through SqlCeConnection:
cecon = new SqlCeConnection("Data Source=D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf");
cecon.Open();
I am getting the following error:
System.Data.SqlServerCe.SqlCeException was unhandled
Message="The path is not valid. Check the directory for the database. [ Path = D:\D_Drive\csharppract\nddbpda\nddbpda\nddbpdadatabase.sdf ]"
HResult=-2147467259
NativeError=25009
Source="SQL Server 2005 Mobile Edition ADO.NET Data Provider"
StackTrace:
at System.Data.SqlServerCe.SqlCeConnection.ProcessResults()
at System.Data.SqlServerCe.SqlCeConnection.Open()
at System.Data.SqlServerCe.SqlCeConnection.Open()
at nddbpda.frmCeMain.frmCeMain_Load()
at System.Windows.Forms.Form.OnLoad()
at System.Windows.Forms.Form._SetVisibleNotify()
at System.Windows.Forms.Control.set_Visible()
at System.Windows.Forms.Application.Run()
at nddbpda.Program.Main()
When I tried to get the path from which the database file is being accepted, I got a different path:
string path;
path = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
MessageBox.Show(path);
This code gives me this path:
Program Filesddbpda
Then I changed the path in my connection string to this:
cecon = new SqlCeConnection("Data Source=\Program Files\nddbpda\nddbpdadatabase.sdf");
cecon.Open();
When I ran my application it worked (virtually), but the database is not getting updated (for obvious reasons).
What should I do now to correct this?
Thanks in advance.
Saswata.
View 5 Replies
View Related
Aug 17, 2006
Has anyone ever recieved an error when starting the Management Studio?
"Unhandled excpetion has occurred in a component in your application.
"Input String was not in a correct format"
I click continue and I can still use the manager;however, it gets annoying. The details of the error are very long and too much to add to this thread.
Any ideas?
View 2 Replies
View Related
Aug 23, 2006
Fellow Devs,
I have an instance of SQL Server Express 2005 running on another box and I have Remote Connections enabled over both TCP/IP and Named Pipes, but on my other box I keep getting the error that the server does not accept Remote Connections.
Any ideas why this might be happening? Is there some other configuration?
View 25 Replies
View Related
Oct 21, 2005
Hello,i have created some (test) Web Services in a Sql Server 2005 via theCreate Endpoint Statement. Now i look for a node in the "ManagmentStudio" where i can see these Web Services. But i dont found that. Whatis the plainest way to do that? What alternatives are existent?Thank you,Hans
View 2 Replies
View Related
Aug 4, 2015
when i try to deploy a packages in integration service catalog i am getting the below error
.NET Framework error occurred during execution of user-defined routine or aggregate
"deploy_project_internal":
System.ComponentModel.Win32Exception: A required privilege is not held by the client
System.ComponentModel.Win32Excepbon:
at Microsoft. SqlServer. IntegrationServices.Server.ISServerProcess.StartProcess(Soolean
bSuspendThread)
at Microsoft.SqlServer.IntegrationServices.Server.ServerApi.DeployProjectlnternal(SqlInt64 deployld,
SqIInt64 versionld, SqlInt64 projectld, SqlString projectName)
. (Microsoft SQL Server, Error: 6522)
View 0 Replies
View Related
Nov 14, 2005
If you connect to a server and open a query in SQL Managment studio (2005) and looses connection and then regain the connection, when you try to run the query it gives me a "TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host." This happens against both 2005 and 2000 servers. If I re-run the query it works. However, this happens in our VB.NET app as well for clients with Wireless connections. So, something has changed in Framework 2.0 regarding this, does anyone know how to tell the client to not throw this error and just try connecting the server instead which will work?
View 105 Replies
View Related