Python
July 9, 2022
Использование pyodbc для получения данных с ms sql server(draft)
Так исторически сложилось, что я получаю котировки из торгового терминала Quik в таблицу MS SQL Server. А различные манипуляции с этими данными совершаю в PostgreSQL. Для учебных целей (IRL я бы линкованный сервер PG настроил) я перекидываю данные с MS SQL Server в PostgreSQL, используя скрипт на python.
Для подключения в Windows к MS SQL Server и дальнейших манипуляций с данными используется библиотека pyodbc.
Далее код, там всё понятно и без комментариев.
import pyodbc
def db_connect(db: str, connection_string: str): if db == 'sql_server': cxn = pyodbc.connect(connection_string) elif db == 'pg': cxn = psycopg2.connect(connection_string) return cxn
def main(): ms_sql_con_string = "DSN=mssql2012xe" ms_sql_conn = db_connect('sql_server', ms_sql_con_string) ms_sql_cur = ms_sql_conn.cursor() # Партии ms_sql_cur.execute("exec dbo.p_sel_quik_batch_all;") while True: res = ms_sql_cur.fetchmany(20) if not res: break for rw in res: # что-то делаем instr_short = rw[1] instr_code = rw[2]
ms_sql_cur.close() ms_sql_conn.close() if __name__ == '__main__': main()