se connecter à la base de données SQL par programme<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
J'essaie de me connecter à une base de données SQL dans un script en utilisant le
Commande Ouvrir la base de données.
Désormais, lorsque je travaille de manière interactive, je crée une "Source de données machine" à partir de
le widget de connexion à la base de données. Lorsque je me connecte, une fenêtre s'ouvre demandant
pour le nom d'utilisateur et le mot de passe. Lorsque je les insère, je peux me connecter avec succès
à la base de données et importer des tables dans JMP.
J'aimerais donc essayer la même chose à partir d'un script. Malheureusement, je ne vois pas
où j'insérerais le nom d'utilisateur et le mot de passe. Quand j'essaie de me connecter
Je reçois le message d'erreur suivant dans la fenêtre du journal.
[Microsoft][Pilote ODBC SQL Server][SQL Server]Échec de la connexion pour l'utilisateur ''.
Je suppose que ce n'est pas surprenant puisque je n'ai pas précisé comment s'authentifier...
Le code est
Base de données = Base de données ouverte (
"DSN=maBase de Données", // source de données
"monNomTable", //table
"JMPtable" // nouveau nom de table
);
Alors, comment puis-je spécifier mes informations d'authentification ?
Ciao,
Paul
Re : se connecter à la base de données SQL par programmation@jmpbeginner ,
votre réponse est en fait très précieuse.
Merci beaucoup!
Ron
Re : se connecter à la base de données SQL par programmationMerci pour votre partage, c'est très utile !
Re : se connecter à la base de données SQL par programmationVoici un exemple simple utilisant Big Class qui devrait vous aider à démarrer.Il insère toutes les lignes dans une table de base de données appelée big_class.Notez l'utilisation de evalinsert - donne des cordes plus propres.
dt = open("$sample_data\big class.jmp");
dbc = create database connection("<PROPER connection="" parameters="">");
for (i = 1, i <= nrows(dt), i++,
one_name = dt:name[i];
one_age = dt:age[i];
one_sex = dt:sex[i];
one_ht = dt:height[i];
one_wt = dt:weight[i];
sql = evalinsert(
"INSERT INTO big_class(name, age, sex, height, weight)
VALUES('^one_name^', ^one_age^, '^one_sex^', ^one_ht^, ^one_wt^)");
print(sql);
execute sql(dbc, sql); // Does an implicit commit
);
close database connection(dbc);
</PROPER>
Si vous avez beaucoup de lignes à insérer, envisagez d'effectuer plusieurs insertions à la fois.Dans Oracle, vous pouvez utiliser INSÉRER TOUT pour insérer plusieurs lignes à la fois.
Re : se connecter à la base de données SQL par programmationBonjour, M. Monsieur,
Appréciez votre partage.
J'apprends la connexion JMP à la base de données ; sur la base de votre script, je suis capable d'ouvrir la base de données.
Ma prochaine question est de savoir comment insérer une ou plusieurs lignes dans les tables existantes de la base de données.
Je pourrais obtenir ce qui suit :
(1). existant_col_names=Table de données actuelle() << obtenir le nom de la colonne (chaîne) ;
(2). obtenir de nouvelles valeurs (dans la matrice) par new_values= dt << Get As Matrix();
Comment ajouter les new_values dans la table existante dans la base de données ?
Cordialement,
WGan
Re : se connecter à la base de données SQL par programmation" L'ensemble de données JMP créé comportera deux variables de table : JSL et SQL"
J'ai résolu mon propre problème, mais j'ai pensé le partager ici également :
Si vous ne voyez pas les deux variables de table « JSL » et « SQL » ou « Source », elles sont masquées en raison des préférences.
exécutez ce script JSL pour résoudre le problème :
pref(ODBC Masquer la chaîne de connexion(0));
se connecter à la base de données SQL par programmeJe n'ai pas utilisé de mots de passe avec les bases de données Access.Si vous n'avez aucune nouvelle de quelqu'un sur ce forum, je vous suggère de contacter le support technique de JMP.
se connecter à la base de données SQL par programmeMonsieur Mroz,
J'ai fait quelques recherches sur les paramètres utilisateur/mot de passe du côté de MS Access. Sur la base des informations actuelles, nous avions un moyen de définir un mot de passe pour un fichier MS Access. Vous pouvez visiter le lien suivant pour obtenir des informations. Il semble que je ne trouve pas de moyen de définir le nom d'utilisateur pour accéder au fichier.
http://office.microsoft.com/en-us/access-help/CH001010607.aspx?CTT=97
J'ai testé l'ajout de 123 comme mot de passe pour Northwind.mdb. Et essayez de le connecter avec mdb. Si j'utilise le menu, une fenêtre d'invite me demandera ID/PW. après avoir inséré "123". je peux obtenir le fichier de base de données et ouvrir la table. Ensuite, je me déconnecte et j'obtiens le JSL suivant. Vous pouvez trouver des informations PWD et UID.
Ouvrir la base de données (
"DSN=Base de données MS Access ; DBQ=D:\Mon entreprise\Fournisseur\IT\Access\Northwind.mdb;DefaultDir=D:\Mon entreprise\Fournisseur\IT\Access;DriverId=25;FIL=MS Access;MaxBufferSize= 2048;PageTimeout=5;PWD=123;UID=admin;",
"SELECT * FROM Clients"
)
Après avoir fermé toutes les tables, je l'exécute, je trouve que je peux ouvrir la table d'accès protégée par mot de passe. Mais si je ne parviens pas à obtenir cette fenêtre pour spécifier le processus d'authentification.
J'ai testé pour changer PWD=123 en ***. Ça ne marche pas.
Pouvez-vous me donner votre avis ?
se connecter à la base de données SQL par programmeSalut Kun,
Vous utiliseriez tout ce qui est répertorié pour le JSL variable dans votre ensemble de données résultant de la lecture d’une table Access.Vous ne "définissez pas vraiment les paramètres" pour l'ID utilisateur et le mot de passe - vous créez simplement une chaîne de connexion et l'utilisez.Je ne sais pas si Access a la capacité d'utiliser des noms d'utilisateur et des mots de passe.Voici une chaîne de connexion que j'ai utilisée pour une base de données Access.Notez qu’il n’y a pas de nom d’utilisateur/mot de passe.
// La source de données
dsn_string = "DSN=Base de données MS Access ;" ||
"DBQ=C:\Discovery2011\JMP Surveillance1.accdb;" ||
"DefaultDir=C:\Discovery2011;DriverId=25;" ||
"FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;" ;
se connecter à la base de données SQL par programmeCher Monsieur Mroz,
C'est Kun. J'ai rejoint ce groupe.
Merci pour votre réponse à cette question de connexion à la base de données. Ici, j'ai également utilisé JMP pour connecter certains fichiers de base de données MS Access en
Fichier > Base de données > Ouvrir la table .
. Je me demande si le mot de passe et l'ID dont vous parlez concernent un fichier d'accès ou un serveur sur lequel les fichiers de base de données ont été enregistrés ? Si le PW et l'ID concernent un fichier Access, où puis-je définir ces paramètres ?
Kun
se connecter à la base de données SQL par programmeMerci,
cela a parfaitement fonctionné.
Ciao,
Paul
se connecter à la base de données SQL par programmePaul,
Vous avez besoin de la chaîne de connexion DSN appropriée.Pour l'obtenir, exécutez la commande Fichier > Base de données > Ouvrir la table .Cliquez sur Connecter et sélectionnez votre source ODBC.Vous serez invité à saisir un nom d'utilisateur et un mot de passe.Après avoir saisi ces informations, une liste de schémas et de tables apparaîtra.Sélectionnez n’importe quelle (petite) table et cliquez sur Table ouverte .Après cela est lu en clic Déconnecter .L'ensemble de données JMP créé par ges aura deux variables de table : JSL et SQL .Si vous cliquez dessus, vous verrez la chaîne de connexion et l'instruction SQL utilisée.Vous pouvez double-cliquer sur la variable JSL pour voir sa valeur - elle ressemblera à ceci :
Ouvrir la base de données ( "DSN=ODBC Databasexxx;UID=xxxx;PWD=xxxxxxx;DBQ=mydatabasexxxx;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T; RST=T;BTD=F;BNF=F;BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;" ,
"SELECT * FROM monschéma.matable" ) ;
Mon exemple montre une chaîne DSN de base de données Oracle typique.Le vôtre sera légèrement différent pour SQL Server.Enregistrez cette chaîne - pour l'utiliser par programme, vous feriez quelque chose comme ceci :
dsn_string = "DSN=Base de données ODBCxxx;UID=xxxx;PWD=xxxxxxx;DBQ=mabase de donnéesxxxx;DBA=W;" ||
"APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;BTD=F;BNF=F;" ||
"BAM=IfAllSuccessful;NUM=NLS;DPM=F;MTS=T;MDI=F;CSR=F;FWC=F;FBS=64000;TLO=O;" ;
chaîne_sql = "sélectionner * dans monschéma.autretable"
base de données ouverte ( dsn_string , chaîne_sql , "autre table" ) ;
Salutations,
Pierre