I need a simple ODBC test scenario on WIN which I can configure very simply and be assured it is working in support of another question at Unix.SE.
In a nutshell I'm trying to setup a PyODBC/Python script connection from Debian 10 (192.168.1.2) to Windows 10 in KVM/QEMU virtual system (192.168.1.12).
First, on the Windows 10/KVM, I see the ODBC Data Source Administrator
has a tab File DSN
and Microsoft Text Driver
. Can I use FileDSN to test Python PyODBC connection to ODBC using a simple CSV file in place of Server?? (My research with ODBC only finds running server instances).
Next, what I tried:
On Debian I installed ODBC Microsoft driver for Linux.
Shutdown the Windows 10 firewall, and I can ping in both directions:
$nmap -p 22 192.168.1.12
# Deb to Win> Test-NetConnection 192.168.1.2 -p 22
# Win to DebOn Windows 10/KVM I added a FileDSN with Microsoft Text Driver. I created a CSV file (
odbc_test_01.csv
) with simple header and one row of data (IE.{'ID' : 1, 'NAME' : 'FOO'}
)Created a Jupyter Notebook to make testing easier. Here is my connection string and the results:
cn = pyodbc.connect(r'Driver={ODBC Driver 17 for SQL Server};' # Driver installed above r'FILEDSN=odbc_test_01.csv;' # my attempt at FileDSN r'SERVER=192.168.1.12;' # KVM IP tested with ping r'Trusted_Connection=no;' # explicit; use UID/PWD r'UID=<username>;' # Windows user name r'PWD=<password>', # Windows user password autocommit=True) OperationalError: ('HYT00', '[HYT00] [Microsoft][ODBC Driver 17 for SQL Server]Login timeout expired (0) (SQLDriverConnect)')
Tried
isql
from Debian command line with same string:isql -v -k ''Driver={ODBC Driver 17 for SQL Server};FILEDSN=odbc_test_01.csv;SERVER=192.168.1.12; Trusted_Connection=no;UID=<username>;PWD=<password>'
Similar pages here at SO:
Authenticate from Linux to Windows SQL Server with pyodbc
Python pyodbc connect to Sql Server using SQL Server Authentication