Comment puis-je créer une connexion ODBC à la SAS?
Je suis en train d'écrire un programme qui doit accéder à des données SAS. J'ai téléchargé les pilotes ODBC pour SAS et installé, mais j'ai besoin d'être en mesure de créer des connexions ODBC à la volée, par programmation. Le code suivant (en Python) qui semble comme il devrait fonctionner:
import ctypes
ODBC_ADD_DSN = 1
def add_dsn(name, driver, **kw):
nul, attrib = chr(0), []
kw['DSN'] = name
for attr, val in kw.iteritems():
attrib.append('%s=%s' % (attr, val))
return ctypes.windll.ODBCCP32.SQLConfigDataSource(0, ODBC_ADD_DSN, driver, nul.join(attrib)) == 1
print add_dsn('SAS Test', 'SAS', description = 'Testing SAS')
Mais il s'ouvre le SAS ODBC boîte de dialogue de configuration, définit le nom de source de données, et attend que l'utilisateur de saisir des informations et fermer la boîte de dialogue. Comment puis-je l'éviter?
OriginalL'auteur Chris B. | 2010-03-01
Vous devez vous connecter pour publier un commentaire.
Afin d'obtenir un accès ODBC de données SAS, vous devez vous connecter à une session SAS de toutes sortes, vous ne pouvez pas accéder aux données SAS fichiers de table directement auprès de la SAS pilotes ODBC.
Voir le SAS ODBC pilotes guide, section "Quel Logiciel ai-je Besoin?".
Votre question n'est pas l'état que vous tentez d'accéder à des données SAS par le biais de l'exécution d'un SAS produit. La SAS ODBC pilotes guide devrait vous dire comment configurer la connexion en fonction de la SAS produit vous permettra de faire le lien par.
OriginalL'auteur Martin Bøgelund
Je sais que cette question est ancienne, mais probablement il arrive assez souvent que je vous ferai part de la réponse, je le sais. La façon la plus simple d'obtenir ce que vous essayez de faire est de créer ce qu'on appelle une "Connexion sans DSN."
Brièvement, vous créez une chaîne de connexion que vous utilisez lors de l'ouverture d'une connexion, qui identifie le conducteur et comprend tous les paramètres que vous auriez normalement remplir dans la création d'un DSN pour ce pilote.
Cette technique a été autour pendant un temps très long-- je l'utilise en 2001, et il est plus vieux que ça.
Voici une série d'exemples de chaînes de connexion sans DSN pour accéder au SAS de données via ODBC:
À l'aide de l'ID du Serveur
Provider=sas.ShareProvider;Data Source=shr1;
SAS/SHARE
À l'aide de l'ID du Serveur et le noeud (nom de réseau)
Fournisseur=sas.ShareProvider;Data Source=shr1;Location=lambchop.unx.sas.com;
SAS/SHARE
La spécification d'utilisateur et mot de passe
Provider=sas.ShareProvider;Data Source=shr1;Location=lambchop.unx.sas.com;
User ID=myUsername;Password=myPassword;
SAS/SHARE
Le serveur requiert un mot de passe
Provider=sas.ShareProvider;Data Source=shr1;Location=lambchop.unx.sas.com;
User ID=myUsername;Password=myPassword;
SAS Server Access Password=myServerPassword;
Ces sont de:
https://www.connectionstrings.com/sas-share/
Un SAS page de support en discute plus, je l'ai trouvé ici:
http://docslide.us/documents/opening-an-ado-connection-object.html
OriginalL'auteur Carnot Antonio Romero
Je sais rien à propos de SAS, mais la fonction utilisée pour se connecter à une base de données à la volée dans ODBC est SQLDriverConnect. Vous n'avez pas besoin (ou envie) d'ajouter une source de données, vous avez juste besoin d'installer des pilotes.
OriginalL'auteur