Я пытаюсь использовать библиотеку SMO SQL Server из Python 2.7, используя pyWin32. Я могу импортировать win32com
, но я зашел в тупик при любой попытке доступа к библиотеке. Код, который я пытаюсь использовать, приведен ниже.
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')