-
Notifications
You must be signed in to change notification settings - Fork 0
/
connect.py
89 lines (74 loc) · 2.46 KB
/
connect.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import os
import pyodbc
import sys
from pathlib import Path
import preferences
server = r"edwpub.s.uw.edu"
database = r"UWSDBDataStore"
# Users must add a file a the same level as this module. Name the file '
# preferences.py' and add:
# USERNAME = 'NETID\<your username>'
# PWD = '<your password>'
username = preferences.USERNAME
password = preferences.PWD
def get_cursor():
if os.name != "posix":
try:
# print('Looking for usable DSN')
conn = pyodbc.connect("DSN=EDW")
except pyodbc.OperationalError:
try:
print("DSN unavailable. Trying to use mssql driver.")
conn = pyodbc.connect(
"DRIVER={ODBC Driver 17 for SQL Server};SERVER=edwpub.s.uw.edu;DATABASE=UWSDBDataStore;UID="
+ username
+ ";PWD="
+ password
+ ";"
)
except BaseException as e:
print("UNABLE TO CONNECT")
print(e)
else:
try:
print("No usable mssql driver. Attempting to connect via FreeTDS")
# db = input("Enter database name: ")
conn = pyodbc.connect(
f"DSN=EDW;DATABASE={database};UID={username};PWD={password};"
)
# conn = pyodbc.connect(
# "DSN=uwsdb;DATABASE="
# + database
# + ";UID="
# + username
# + ";PWD="
# + password
# + ";"
# )
print("Connected with FreeTDS DSN method")
except pyodbc.InterfaceError:
odbc_driver_path = preferences.ODBCDRIVER
conn = pyodbc.connect(
"DRIVER="
+ odbc_driver_path
+ ";SERVER=edwpub.s.uw.edu; PORT=1433;DATABASE="
+ database
+ ";UID="
+ username
+ ";PWD="
+ password
+ ";"
)
print("Connected with direct driver method!")
except pyodbc.OperationalError:
print("Not able to connect with provided methods")
sys.exit()
# finally:
# conn.close()
# print('Connection to database successful')
return conn.cursor()
if __name__ == "__main__":
cur = get_cursor()
cur.execute("SELECT TOP 1 student_name_lowc FROM sec.student_1")
for i in cur:
print(i)