Saya memiliki skrip python yang saya buat dan kembangkan .exe dengan Pyinstaller yang menggunakan perpustakaan pyodbc
python untuk menanyakan dan terlihat seperti kode palsu di bawah ini. Ini berfungsi di komputer saya dengan sempurna. Saya mencoba membagikan .exe saya dengan beberapa rekan kerja, yang telah saya periksa ulang memiliki akses untuk menanyakan database kami di Excel setelah memberikan mereka informasi login. Namun, mereka tidak dapat mengakses database kami dari dalam python .exe saya.
Setelah pengujian sekali, saya tahu bahwa mereka tidak dapat mengakses, karena .exe yang saya buat menghasilkan kesalahan (No suitable driver found. Cannot connect.)
seperti yang Anda lihat pada kode di bawah ini, karena tidak dapat menemukan ODBC Driver 17 for SQL Server
di komputer rekan. Saya yakin Excel menggunakan PowerQuery, jadi tidak bergantung pada Driver ODBC, tetapi python akan memerlukan driver tersebut. Pertanyaan saya adalah -- apakah menginstal ODBC Driver 17 for SQL Server
dari tautan ini saja sudah berfungsi? https://www.microsoft.com/en-us/download/details.aspx?id=56567
Pengguna tidak memiliki hak admin untuk mengunduh driver (dan saya tidak dapat mengujinya sendiri di komputer lain) dan saya memiliki waktu dan akses terbatas ke sumber daya TI; jika tidak, saya akan memecahkan masalah pengguna sendiri, jadi saya ingin tahu apakah ada yang punya pengalaman dengan ini atau menemukan postingan/dokumentasi serupa yang dapat membantu saya. Sekali lagi, kode di bawah ini untuk referensi, tetapi saya tidak memerlukan bantuan untuk itu. Saya perlu menjelaskan kepada TI apa yang saya ingin mereka lakukan untuk pengguna, itulah sebabnya saya bertanya-tanya apakah Microsoft® ODBC Driver 17 for SQL Server® - Windows
sudah cukup.
import pandas as pd
import pyodbc
#Connection and credentials
driver_name = ''
driver_names = [x for x in pyodbc.drivers() if x.endswith(' for SQL Server')]
driver_names
if driver_names:
driver_name = driver_names[-1]
if driver_name:
conn_str = f'''DRIVER={driver_name};SERVER='''
else:
print('(No suitable driver found. Cannot connect.)')
server = '111.111.11.111'
database = 'database'
username = 'username'
password = 'password'
cnxn = pyodbc.connect(conn_str+server+';DATABASE='+database+';UID='+username+';PWD='+ password)
try:
account_id_input = input("Select Account ID: ").strip()
print("Confirming Account ID...")
#SQL Query
df = pd.read_sql_query("""
Select [Account ID], [Year-Month], [Revenue] from database.dbo.tblaccount
""",
cnxn, params=[account_id_input]
)
print("CONFIRMED")
else: print("Incorrect ID or database connection error")
df.to_csv(f'{account_id_input}_data.csv', index=False)