Skip to content

Commit b1830f6

Browse files
committed
fix the issue michiya#131
1 parent eb6b442 commit b1830f6

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

sql_server/pyodbc/client.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import os
12
import re
3+
import subprocess
24

35
from django.db.backends.base.client import BaseDatabaseClient
46

@@ -11,7 +13,8 @@ def runshell(self):
1113
user = options.get('user', settings_dict['USER'])
1214
password = options.get('passwd', settings_dict['PASSWORD'])
1315

14-
driver = options.get('driver', '')
16+
default_driver = 'SQL Server' if os.name == 'nt' else 'FreeTDS'
17+
driver = options.get('driver', default_driver)
1518
ms_drivers = re.compile('.*SQL (Server$|(Server )?Native Client)')
1619
if not ms_drivers.match(driver):
1720
self.executable_name = 'isql'
@@ -24,6 +27,8 @@ def runshell(self):
2427

2528
args = [self.executable_name]
2629
if server:
30+
if port:
31+
server = ','.join((server, port))
2732
args += ["-S", server]
2833
if user:
2934
args += ["-U", user]
@@ -39,8 +44,7 @@ def runshell(self):
3944
dsn = options.get('dsn', '')
4045
args = ['%s -v %s %s %s' % (self.executable_name, dsn, user, password)]
4146

42-
import subprocess
4347
try:
44-
subprocess.call(args, shell=True)
48+
subprocess.check_call(args)
4549
except KeyboardInterrupt:
4650
pass

0 commit comments

Comments
 (0)