se connecter à la base de données SQL par programmation<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.
Maintenant, 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 nom d'utilisateur et mot de passe. Lorsque je les insère, je peux me connecter avec succès
à la base de données et importez les tables dans JMP.
Je voudrais 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
J'obtiens 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 = Ouvrir la base de données(
"DSN=maBase", // source de données
"myTablename", //table
"JMPtable" // nouveau nom de table
);
Alors, comment puis-je spécifier mes informations d'authentification ?
Ciao,
Paulo
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 - rend les 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 de faire 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 programmationSalut, M. Mroz,
Appréciez votre partage.
J'apprends la connexion JMP à la base de données ; basé sur votre script, je suis capable d'ouvrir la base de données.
Ma prochaine question est de savoir comment insérer une ligne (des lignes) dans les tables existantes de la base de données.
J'ai pu obtenir ce qui suit :
(1). existing_col_names=Table de données actuelle() << obtenir le nom de la colonne (chaîne);
(2). obtenir de nouvelles valeurs (dans matrix ) par new_values= dt << Get As Matrix();
Comment ajouter les new_values dans la table existante de la base de données ?
Cordialement,
WGan
Re : se connecter à la base de données SQL par programmation" L'ensemble de données JMP qui sera créé comportera deux variables de table : JSL et SQL"
J'ai résolu mon propre problème, mais j'ai pensé partager ici aussi:
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 programmationJe n'ai pas utilisé de mots de passe avec les bases de données Access.Si vous n'avez pas de nouvelles 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 programmationMonsieur Mroz,
J'ai fait des recherches sur l'ensemble utilisateur/mot de passe du côté de MS Access. En nous basant sur les 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 moyens. Il semble que je ne trouve pas le 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 y trouver des informations PWD et UID.
Ouvrir la base de données(
"DSN=Base de données MS Access ;DBQ=D:\My Business\Supplier\IT\Access\Northwind.mdb;DefaultDir=D:\My Business\Supplier\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 les ai exécutées, je trouve que je peux ouvrir la table d'accès protégée par mot de passe. Mais si je ne peux 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 une entrée?
se connecter à la base de données SQL par programmationSalut Kun,
Vous utiliseriez tout ce qui est indiqué 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 ;" ||
"RepDéfaut=C:\Discovery2011;IDDriver=25 ;" ||
"FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;" ;
se connecter à la base de données SQL par programmationCher 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'identifiant dont vous parlez concernent un fichier d'accès ou un serveur où les fichiers de base de données ont été enregistrés ? Si le picowatt et l'identification sont pour un dossier d'accès, où je peux placer ces paramètres ?
Kun
se connecter à la base de données SQL par programmationMerci,
qui a parfaitement fonctionné.
Ciao,
Paulo
se connecter à la base de données SQL par programmationPaulo,
Vous avez besoin de la chaîne de connexion DSN appropriée.Pour l'obtenir, lancez la commande Fichier > Base de données > Ouvrir la table .Cliquez sur Relier et sélectionnez votre source ODBC.Vous serez invité à entrer un nom d'utilisateur et un mot de passe.Après avoir entré ces informations, une liste de schémas et de tables apparaîtra.Sélectionnez n'importe quel (petit) tableau et cliquez sur Table ouverte .Après cela est lu en cliquant Déconnecter .L'ensemble de données JMP créé par ges comportera 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 myschema.mytable" ) ;
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=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;" ;
chaîne_sql = "select * from myschema.othertable"
base de données ouverte ( dsn_string , chaîne_sql , "autre tableau" ) ;
Salutations,
Pierre