Je me demande s'il existe une telle utilisation autre que l'apprentissage automatique. .. .. C'est une niche. .. Je vais vous expliquer comment se connecter à Microsoft SQL Server à partir de Linux via ODBC. Lançons le test en Python.
Téléchargez la version d'essai du pilote ODBC SQL Server pour Linux à partir du site Web. ..
Après le téléchargement, exécutez la commande Linux suivante pour déplacer le package vers un nouveau dossier.
mkdir datadirect
mv PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_XX.tar.Z datadirect/
cd datadirect/
tar -xvf PROGRESS_DATADIRECT_ODBC_SQLSERVER_LINUX_64.tar.Z
Pour Debian
sudo apt-get install ksh
Pour CentOS / RHEL
sudo yum install ksh
./unixmi.ksh
J'accepte le contrat de licence avec "oui".
Entrez votre nom et le nom de votre société à l'invite. Entrez EVAL pour le numéro de série et la clé.
Un écran apparaîtra vous demandant d'installer tous les pilotes inclus ou de sélectionner un pilote à installer. Ici, sélectionnez l'option 2.
sudo chmod +x odbc.sh
./odbc.sh
echo $ODBCINI
./odbc.sh
export LD_LIBRARY_PATH=/install_path/Progress/DataDirect/Connect64_for_ODBC_71/lib
export ODBCINI=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbc.ini
export ODBCINST=/ install_path/Progress/DataDirect/Connect64_for_ODBC_71/odbcinst.ini
source ~/.bashrc
[ODBC Data Sources]
SQL Server Legacy Wire Protocol=DataDirect 7.1 SQL Server Legacy Wire Protocol
[ODBC]
IANAAppCodePage=4
InstallDir=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71
Trace=0
TraceFile=odbctrace.out
TraceDll=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddtrc27.so
[SQL Server Wire Protocol]
Driver=/home/progress/Progress/DataDirect/Connect64_for_ODBC_71/lib/ddsqls27.so
Description=DataDirect 7.1 SQL Server Wire Protocol
AlternateServers=
AlwaysReportTriggerResults=0
AnsiNPW=1
ApplicationName=
ApplicationUsingThreads=1
AuthenticationMethod=1
BulkBinaryThreshold=32
BulkCharacterThreshold=-1
BulkLoadBatchSize=1024
BulkLoadFieldDelimiter=
BulkLoadOptions=2
BulkLoadRecordDelimiter=
ConnectionReset=0
ConnectionRetryCount=0
ConnectionRetryDelay=3
Database=<database_name>
EnableBulkLoad=0
EnableQuotedIdentifiers=0
EncryptionMethod=0
FailoverGranularity=0
FailoverMode=0
FailoverPreconnect=0
FetchTSWTZasTimestamp=0
FetchTWFSasTime=1
GSSClient=native
HostName=<server_name>
HostNameInCertificate=
InitializationString=
Language=
LoadBalanceTimeout=0
LoadBalancing=0
LoginTimeout=15
LogonID=<logon id> (optional)
MaxPoolSize=100
MinPoolSize=0
PacketSize=-1
Password=<password> (optional)
Pooling=0
PortNumber=1433
QueryTimeout=0
ReportCodePageConversionErrors=0
SnapshotSerializable=0
TrustStore=
TrustStorePassword=
ValidateServerCertificate=1
WorkStationID=
XMLDescribeType=-10
pip install pyodbc
Si vous obtenez une exception indiquant que la bibliothèque <sql.h> est introuvable, vous devrez peut-être installer le package unixODBC. Vous pouvez l'installer en exécutant la commande suivante.
Debain:
sudo apt-get install unixodbc unixodbc-dev
CentOS/Redhat:
sudo apt-get install unixODBC unixODBC-devel
import pyodbc
##connecting to your database through ODBC
cnxn = pyodbc.connect('DSN=SQL Server Wire Protocol;UID=sa;PWD=pass', autocommit=True)
cursor = cnxn.cursor()
##Print TableNames
for row in cursor.tables():
if row.table_type == "TABLE":
print (row.table_name)
print (row)
##Executing a simple query and printing the records
cursor.execute("SELECT EmployeeID, LastName, FirstName, Address, City, Region from Northwind.dbo.Employees")
for row in cursor.fetchall():
print (row)
Cet article utilise le mode d'authentification SQL Server, mais les pilotes ODBC et JDBC DataDirect SQL Server prennent également en charge l'authentification Windows et Kerberos, c'est donc une autre fois.
Recommended Posts