Что самый простой путь состоит в том, чтобы получить доступ к mssql с Python или ironpython?

Как сказал Рич Эндрю, существует несколько разных технологий. Если вы пытаетесь сделать инфраструктуру в виде кода и прикрепить политики и роли, я бы посоветовал вам взглянуть на Terraform или Serverless.

23
задан ConcernedOfTunbridgeWells 14 November 2008 в 21:19
поделиться

7 ответов

Я использую Алхимия SQL с cPython (я не знаю, будет ли это работать с IronPython хотя). Это будет довольно знакомо Вам при использовании Hibernate/nHibernate. Если это является немного слишком подробным для Вас, можно использовать Elixir, который является тонким слоем сверху Алхимии SQL. Для использования любого из тех Вам будет нужно pyodbc, но это - довольно простая установка.

, Конечно, если Вы хотите записать прямой SQL и не использовать ORM, Вам просто нужен pyodbc.

19
ответ дан 29 November 2019 в 01:02
поделиться

Всем остальным кажется, что сторона cPython -> SQL Server покрыта. Если вы хотите использовать IronPython, вы можете использовать стандартный API ADO.NET для связи с базой данных:

import clr
clr.AddReference('System.Data')
from System.Data.SqlClient import SqlConnection, SqlParameter

conn_string = 'data source=<machine>; initial catalog=<database>; trusted_connection=True'
connection = SqlConnection(conn_string)
connection.Open()
command = connection.CreateCommand()
command.CommandText = 'select id, name from people where group_id = @group_id'
command.Parameters.Add(SqlParameter('group_id', 23))

reader = command.ExecuteReader()
while reader.Read():
    print reader['id'], reader['name']

connection.Close()

Если у вас уже есть IronPython, вам не нужно ничего устанавливать.

Много документов доступны здесь и здесь .

26
ответ дан 29 November 2019 в 01:02
поделиться

pyodbc идет с Activestate Python, который может быть загружен от здесь . Минимальный odbc сценарий для соединения с базой данных SQL Server 2005 похож на это:

import odbc

CONNECTION_STRING="""
Driver={SQL Native Client};
Server=[Insert Server Name Here];
Database=[Insert DB Here];
Trusted_Connection=yes;
"""

db = odbc.odbc(CONNECTION_STRING)
c = db.cursor()
c.execute ('select foo from bar')
rs = c.fetchall()
for r in rs:
    print r[0]
12
ответ дан 29 November 2019 в 01:02
поделиться

Я также успешно использую pymssql с CPython. (С и без SQLAlchemy).

4
ответ дан 29 November 2019 в 01:02
поделиться

Я использовал pymssql со стандартным python и мне понравилось. Вероятно, проще, чем упомянутые альтернативы, если вы просто ищете базовый доступ к базе данных.

Пример кода .

1
ответ дан 29 November 2019 в 01:02
поделиться

Если вам нужен быстрый и грязный способ с CPython (также работает для 3.X python):

Установите PYWIN32 после установки python http://sourceforge.net/projects/pywin32 / files / pywin32 /

Импортировать следующую библиотеку: import odbc

Я создал следующий метод для получения драйвера odbc для SQL Server (он немного отличается в именовании в зависимости от вашей версии Windows, так что это получится независимо):

def getSQLServerDriver():
    key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, r"SOFTWARE\ODBC\ODBCINST.INI")
    sqlServerRegExp =  re.compile('sql.*server', re.I | re.S)

    try:
        for i in range(0, 2048):
            folder = winreg.EnumKey(key, i)
            if sqlServerRegExp.match(folder):
                return folder.strip()
    except WindowsError:
        pass

Примечание: если вы используете вышеупомянутую функцию, вам также необходимо импортировать эти две библиотеки: winreg и re

Тогда вы используете информацию odbc API 1, как определено здесь: http://www.python.org/dev/peps/pep-0248/

Строка интерфейса подключения должна выглядеть примерно так (при условии, что вы используете мой вышеописанный метод для получения имени драйвера ODBC, и это доверенное соединение):

dbString = "Driver={SQLDriver};Server=[SQL Server];Database=[Database Name];Trusted_Connection=yes;".replace('{SQLDriver}', '{' + getSQLServerDriver() + '}')

У этого метода есть много недостатков. Это неуклюже из-за поддержки только ODBC API 1, и есть несколько мелких ошибок в API или драйвере ODBC, с которыми я столкнулся, но он выполняет свою работу во всех версиях CPython в Windows.

0
ответ дан 29 November 2019 в 01:02
поделиться

http: //adodbapi.sourceforge. net / может использоваться с CPython или IronPython. Я был очень доволен этим.

3
ответ дан 29 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: