setwd("/mnt/mountpoint/abc/")
sqlServerConnString <- "SERVER=server;DATABASE=sqldwdb;UID=xyz;PWD=abc;"
sqlServerDataDS <- RxSqlServerData(sqlQuery = "SELECT * FROM xyz",
connectionString = sqlServerConnString)
sqlServerDataDF <- rxImport(sqlServerDataDS)
Ceci est mon code. Je reçois l'erreur suivante dans R
[unixODBC] [Gestionnaire de pilotes] Impossible d'ouvrir lib 'SQL Server': fichier introuvable
[unixODBC] [Gestionnaire de pilotes] La connexion n'existe pas ODBC Erreur dans SQLDisconnect Impossible d'ouvrir la source de données.Error dans gestionnaire): Impossible d’ouvrir la source de données .
J'ai installé les pilotes MSSQL et unixODBC sur ma machine Linux et il est également sélectionné dans le fichier /etc/odbc.ini
Est ce que quelqu'un peut m'aider s'il vous plait?
J'ai la même erreur quand je mets ci-dessous le code pour la connexion à MSSQLSERVER
library(RODBC)
dbconnection <- odbcDriverConnect("Driver=SQL Server;Server=192.168.76.60; Database=kaggle;Uid=sa; Pwd=1234")
Ça me jette
[unixODBC][Driver Manager]Can't open lib 'SQL Server' : file not found
pourquoi cette erreur a jeté? Réponse: lorsque nous ne parvenons pas à mettre le bon nom de version ODBC sur la valeur du pilote.
D'où nous pouvons obtenir le pilote ODBC nom de version
dans le dossier "/ etc", vous trouverez le fichier "odbcinst.ini", ouvrez-le et vérifiez le nom de la version
[ODBC Driver 17 for SQL Server]
Description=Microsoft ODBC Driver 17 for SQL Server
Driver=/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.1.so.0.1
UsageCount=1
donc j’ai eu ODBC nom du pilote à partir de là, ce sera "Pilote ODBC 17 pour SQL Server" Puis je modifie ma chaîne de connexion
library(RODBC)
dbconnection <- odbcDriverConnect("Driver=ODBC Driver 17 for SQL Server;Server=192.168.76.60; Database=kaggle;Uid=sa; Pwd=1234")
Et ça marche bien
Dans mon cas, la réponse de Zaynul n'a pas fonctionné, malheureusement. Mais cela m'a aidé à trouver un autre moyen. J'utilise sqlalchemy et je pourrais créer avec succès une connexion en passant par le chemin du pilote:
engine = create_engine('mssql+pyodbc://sa:******@localhost:1433/dbCVServer?driver=/opt/Microsoft/msodbcsql17/lib64/libmsodbcsql-17.2.so.0.1', echo=True)
engine.execute('select 1')
EDIT: Je n'étais pas satisfait de cette solution, car le nom du fichier du pilote pouvait changer, j'ai donc réussi à changer la bibliothèque utilisée pour connecter do pymssql.
engine = create_engine('mssql+pymssql://sa:******@localhost:1433/dbCVServer')
et cela a bien fonctionné aussi. =]
EDIT 2: Une autre découverte, la connexion à une instance nommée, pour ceux qui utilisent SQL Express, par exemple.
engine = create_engine('mssql+pymssql://mssql+pymssql://localhost\SQLEXPRESS/dbCVServer')