pyWin32を使用してPython 2.7からSQL Server SMOライブラリを使用しようとしています。私はwin32com
をインポートすることができますが、私はライブラリにアクセスしようとすると邪魔になりました。私が試みているコードは以下の通りです。Pythonでwin32comを使用してSMO DLLを使用
import sys
sys.path.append(r'C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies')
import win32com.client
server = win32com.client.Dispatch('Microsoft.SqlServer.Management.SMO.Server')
def main():
print server
if __name__ == '__main__':
main()
このコードが実行されると、私はpywintypes.com_error: (-2147221005, 'Invalid class string', None, None)
を取得します。
Dispatch
への呼び出しでライブラリの名前が間違っている可能性が高いようですが、それが何であるべきかを知る方法はわかりません。
これは実際にはパスの問題であるようです。
この作品:
import win32api
win32api.LoadLibrary(r'C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SqlServer.Smo.dll')
ただし、これはしません:
import sys
sys.path.append(r'C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies')
import win32api
win32api.LoadLibrary(r'Microsoft.SqlServer.Smo.dll')
ありがとうございました。明らかに私はCOMライブラリと.NETアセンブリの違いを理解できませんでした... – Allan