or how Flash broke SQL
A few weeks ago, my SQL Server 2005 installation lost the flat file data source option and could not import or export no matter the format.
An error was thrown up.
===================================
The connection manager could not be created from one or more data sources. (Microsoft Visual Studio)
===================================
The connection type "OLEDB" specified for connection manager "{F3C4B394-E196-4AFD-A2F6-37AD9AFCA94D}" is not recognized as a valid connection manager type. This error is returned when an attempt is made to create a connection manager for an unknown connection type. Check the spelling in the connection type name.
WTF?
After local admins reinstalled, and uninstalled and reinstalled sql server 2005 again to no avail.
I fiinaly came across a thread on MSDN: listed below:
After compiling and running the code below. I identified 3 keys that as a lowly user, I could not access.
After gaining admin access I set the 3 keys to read for everyone, rebooted and was good to go.
Get this the keys belonged to Flash.
And sure enough, I recall that while having the admin here install the active X control needed for MS virtual labs,
(as a lowley user, I could not install it by myself.) the virtual labs prompted for flash to be installed and it was.
How flash can break it I am not sure, for most people it appears to be a Lexmark driver that does this.
from the post
Regarding the access to registry key: it is explained in http://support.microsoft.com/default.aspx?scid=kb;en-us;300491. To enumerate connection managers, we are using standard COM API EnumClassesOfCategories (connection managers register under specific category) and the incorrect permissions of that printer driver (or AppCenter in KB) break this API.
From the post, link at end:
There might be other programs causing this. One way to identify registy keys with incorrect permissions is to compile the program below and run it under low priveleged user account (create a temporary user account, add it only to Users group, run the program). The permissions of the keys identified by the program should be changed to grant Users read access.
Compile in C# console app and run under lowest security setting.
using
System;
using
Microsoft.Win32;
namespace
CheckClsidPerm
{
class Program
{
static void Main(string[] args)
{
RegistryKey clsid = Registry.LocalMachine.OpenSubKey(@"Software\Classes\CLSID");
string[] clsids = clsid.GetSubKeyNames();
Console.WriteLine("found {0} keys", clsids.Length);
foreach (string s in clsids)
{
try
{
using (RegistryKey clsidKey = clsid.OpenSubKey(s))
{
using (RegistryKey ic = clsidKey.OpenSubKey("Implemented Categories"))
{
}
}
}
catch (Exception e)
{
Console.WriteLine("error while reading key {0}: {1}", s, e.Message);
Console.ReadLine();
}
}
}
}
}
http://forums.microsoft.com/MSDN/ShowPost.aspx?PageIndex=2&SiteID=1&PostID=179707&PageID=1 see the post at
24 Dec 2005, 3:58 AM UTC 24 Dec 2005, 3:58 AM UTC
I have been longing for IntelliSense in SQL Enterprise Manager for a loooong time.
I was very dissapointed to find out 2005 had not added it yet. As soon as I can talk an admin here into install for me I will test it out and let you know what I think.
It is supposed to add in a work right from the IDE (VS.Net or SSEM)
Any others of you out there given this a try?
Image hijacked from http://www.promptsql.com/