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()