将数据库连接字符串提供程序名称映射到 dll
Map database connection string provider name to dll
我正在查看 SQL 服务器连接字符串。它看起来像这样:
Data Source=xxxxxxxx;Initial Catalog=xxxxxxxx;Provider=SQLNCLI11.1;Integrated Security=SSPI
我的问题是:提供程序名称(通常)如何映射到特定的 DLL 或库?
这是第二个示例(针对 Oracle):
Data Source=xxxxxxxx;User
ID=xxxxxxxx;Provider=OraOLEDB.Oracle.1;Persist Security Info=True;
同样的问题。如何从提供者名称获取代码所在的dll或库?
dll 路径存储在注册表中提供程序 (GUID) 的 inprocserver32 (HKEY_CLASSES\CLSID)
foreach ($provider in [System.Data.OleDb.OleDbEnumerator]::GetRootEnumerator())
{
$v = New-Object PSObject
for ($i = 0; $i -lt $provider.FieldCount; $i++)
{
Add-Member -in $v NoteProperty $provider.GetName($i) $provider.GetValue($i)
}
$reg = Get-ItemProperty "Registry::HKEY_CLASSES_ROOT\CLSID$($v.SOURCES_CLSID)\InprocServer32" -ErrorAction SilentlyContinue
Add-Member -in $v "Dll path" $reg.'(default)'
$v
}
我正在查看 SQL 服务器连接字符串。它看起来像这样:
Data Source=xxxxxxxx;Initial Catalog=xxxxxxxx;Provider=SQLNCLI11.1;Integrated Security=SSPI
我的问题是:提供程序名称(通常)如何映射到特定的 DLL 或库?
这是第二个示例(针对 Oracle):
Data Source=xxxxxxxx;User ID=xxxxxxxx;Provider=OraOLEDB.Oracle.1;Persist Security Info=True;
同样的问题。如何从提供者名称获取代码所在的dll或库?
dll 路径存储在注册表中提供程序 (GUID) 的 inprocserver32 (HKEY_CLASSES\CLSID)
foreach ($provider in [System.Data.OleDb.OleDbEnumerator]::GetRootEnumerator())
{
$v = New-Object PSObject
for ($i = 0; $i -lt $provider.FieldCount; $i++)
{
Add-Member -in $v NoteProperty $provider.GetName($i) $provider.GetValue($i)
}
$reg = Get-ItemProperty "Registry::HKEY_CLASSES_ROOT\CLSID$($v.SOURCES_CLSID)\InprocServer32" -ErrorAction SilentlyContinue
Add-Member -in $v "Dll path" $reg.'(default)'
$v
}