[non Résolu] RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

[non Résolu] RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar jean lobry » 25 Sep 2017, 17:23

Bonjour à tous,

je cherche à récupérer sous R le résultat de requêtes SQL lancées dans un serveur distant. J'aimerais utiliser pour cela le paquet RODBC qui d'après sa vignette a déjà fait le job. Le serveur est une base de données microsoft SQL Server. Mon client tourne sous Mac OS 10.12 (Sierra). Je n'arrive pas à installer les drivers ODBC qui vont bien au niveau du système du client (d'après la vignette de RODBC c'était plus simple jusqu'à la version Mac OS 10.8) .

Quelqu'un y serait-il déjà arrivé avec cette configuration ?

Tout retour d'expérience serait plus que le bienvenu.

Bien cordialement,

jean lobry

P.-S. Les infos de ma session R :

Code : Tout sélectionner

> sessionInfo()
R version 3.4.1 (2017-06-30)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.6

Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

locale:
[1] fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets
[6] methods   base     

other attached packages:
[1] RODBC_1.3-15

loaded via a namespace (and not attached):
[1] compiler_3.4.1 tools_3.4.1

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Re: RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar Dominique Soudant » 26 Sep 2017, 07:32

Bonjour,
jean lobry a écrit :Quelqu'un y serait-il déjà arrivé avec cette configuration ?
Non pas dans cette configuration particulière
jean lobry a écrit :Tout retour d'expérience serait plus que le bienvenu.
pas sur cette configuration particulière, mais nous faisons depuis R et avec RODBC des requêtes SQL (écriture et lecture) sur une base Oracle à partir de postes, historiquement sous XP et maintenant avec seven.

Je crains que ton PB sois plus coté ODBC+MAC, mon expérience va pas t'aider, me trompes-je ?

Bon courage
@+

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar Serge Rapenne » 26 Sep 2017, 09:15

Bonjour Jean,

Comme Dominique, je n'ai aucune expérience de ODBC+ mac, par contre je me suis bien battu pour faire fonctionner ODBC+linux. (Sur Debian et Centos)
Je m’étais d'abord servi de ça : https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server qui contient des infos également pour Mac. Mais ne parvenant pas à paramétrer correctement ces drivers, j'ai finalement renoncer à les utiliser pour utiliser freetds à la place.

Pour freetds, ceci pourra peut être t'aider :https://github.com/lionheart/django-pyodbc/wiki/Mac-setup-to-connect-to-a-MS-SQL-Server

Amicalement,

Serge

Bertrand Vassor
Messages : 46
Enregistré le : 18 Sep 2017, 10:18

Re: RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar Bertrand Vassor » 26 Sep 2017, 13:08

Bonjour,

étant nouveau avec R, j'espère que ma réponse va vous aider. ODBC a été créé par MS et donc un OS windows. Même si il a été amélioré, travaillant désormais sur linux, je suis passé à JDBC (java). J'ai vu qu'il y a avait un package RJDBC. Peut être cela vaudrait le coup de tenter.

Il peut éventuellement avoir des limitations avec JDBC, notamment avec les dates écrites "99/99/9999", ou antérieures au 01/01/1970, ou à 00/00/0000.

Cordialement.
Bertrand

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar Serge Rapenne » 26 Sep 2017, 13:39

J'ai aussi essayé jdbc sur Linux pour me connecter à SQL server (avec RJDBC). Ca fonctionnait mais j'avais un soucis avec les requêtes upate ou insert qui retournaient une erreur alors que la requête fonctionnait correctement, c'est pourquoi je suis passé à ODBC.

Je déborde un peu sur le sujet, mais si quelqu'un utilise les requêtes spatiales dans une geodatabase SQL server, n’étant jamais parvenu à paramétrer correctement le DSN dans rgdal depuis Linux, je suis preneur de toute information sur la manière d'y arriver.

Serge

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Re: RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar jean lobry » 26 Sep 2017, 15:51

Bonjour à tous,

merci pour les suggestions. Je n'ai pas beaucoup progressé, mais un petit peu quand même. Comme je n'arrivais à rien, j'ai installé l'utilitaire de diagnostic tsql avec :

Code : Tout sélectionner

$ brew install unixodbc
$ brew install freetds --with-unixodbc


D'après la documentation tsql utilise le protocole TDS pour se connecter à un server Sybase ou Microsoft SQL et permet à son utilisateur de faire des requêtes. J'ai commencé par utiliser les options -H et -L simultanément. Ici <hostname> désigne le nom de la machine sur laquelle tourne le serveur, genre toto.univ-lyon1.fr, mais que j'ai pu abréger en toto comme je bosse en interne sur le campus.

Code : Tout sélectionner

$ tsql -H <hostname> -U <login> -P <password> -L
     ServerName TOTO
   InstanceName TATA
    IsClustered No
        Version 10.0.2531.0
            tcp 56635
$


Les chaîne renvoyées par le serveur, TOTO et TATA, correspondent bien à ce à quoi je m'attendais, sauf qu'il m'a tout forcé en majuscules. TOTO est le nom du serveur et TATA le nom de l'instance SQL (une notion qui a l'air d'être spécifique du serveur Microsoft SQL).

J'ai testé ensuite l'option -S où l'on donne le nom du serveur et de l'instance avec :

Code : Tout sélectionner

$ tsql -S "TOTO\TATA" -U <login> -P <password>
locale is "fr_FR.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> version
using TDS version 7.3
1> bye
$


Donc je sais que le serveur existe et que j'arrive à me connecter dessus avec mon login et mot de passe. S'il y a un problème ce n'est déjà pas à ce niveau. Notez l'utilisation des guillemets et de la barre inverse pour désigner le serveur et son instance, je suspecte qu'il va falloir des \\ sous R.

La suite au prochain numéro.

Amicalement,

jean lobry

EDIT : un post de 2013 plein d'humour que je vous recommande, même s'il est sans doute techniquement obsolète.

jean lobry
Messages : 733
Enregistré le : 17 Jan 2008, 20:00
Contact :

Re: RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar jean lobry » 02 Oct 2017, 18:49

Bonjour,

comme convenu la suite de mes tribulations. Je marque cette contribution d'un [non résolu] parce que c'est impossible de faire tourner facilement RODBC sous MacOS > 10.8. J'ai même ouï-dire de collègues bien renseignés qui restent en MacOS < 10.6 pour ne pas s'engager dans cette galère. Je suis arrivé à mes fins via un appel system à tsql qui fait le job. Pas très générique, mais ça marche, attention aux séquences d’échappement, ça ressemble à ça sous R :

Code : Tout sélectionner

system("tsql -S \"SERVEUR\\INSTANCE\" -U <user> -P <pwd> -o q < test.sql > ressql.txt")

Bien amicalement,

jean lobry

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Re: [non Résolu] RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar Dominique Soudant » 03 Oct 2017, 08:48

Virtual box ?

Avec un linux dedans (pour le sport) ou un windows (s'il le faut). Peut être que le système hôte prime et que ça change rien. Ou alors il ne sort et rentre dans la virtual box que des flux, donc pas de config ...

'fin bon c'est une idée comme ça
@+

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: [non Résolu] RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar Serge Rapenne » 03 Oct 2017, 09:17

Une idée comme ça,

peut être qu'en utilisant "Microsoft R Open" qui existe sous Mac OS à la place de "Gnu R", ça serait plus simple. Il est peut être plus facile de faire interagir deux produit Microsoft.

Après une petite recherche,il semble qu'il existe le package RevoScaleR qui est fait pour ça mais ça devient moins portable.

Serge

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Re: [non Résolu] RODBC : comment se connecter à une base MS SQL server avec un client MacOS > 10.8

Messagepar Logez Maxime » 03 Oct 2017, 09:24

Bonjour,

peut être qu'en utilisant "Microsoft R Open" qui existe sous Mac OS à la place de "Gnu R", ça serait plus simple. Il est peut être plus facile de faire interagir deux produit Microsoft.
J'utilise cette version mais la seule différence avec le R normal ce sont les librairies pour le calcul matriciel qui sont parallélisées. Je doute que ça apporte un élément de réponse dans ce cas.

Cordialement,
Maxime


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité