conectarse a la base de datos SQL mediante programación<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Estoy tratando de conectarme a una base de datos SQL en un script usando el
Comando Abrir base de datos.
Ahora, cuando trabajo de forma interactiva, creo una "Fuente de datos de la máquina" a partir de
el widget de conexión de la base de datos. Cuando me conecto, se abre una ventana preguntando
para nombre de usuario y contraseña. Cuando los inserto, puedo conectarlos con éxito.
a la base de datos e importar tablas a JMP.
Así que me gustaría probar lo mismo desde un script. lamentablemente no veo
donde insertaría el nombre de usuario y la contraseña. Cuando trato de conectarme
Recibo el siguiente mensaje de error en la ventana de registro.
[Microsoft][Controlador ODBC para SQL Server][SQL Server]Error al iniciar sesión para el usuario ''.
Supongo que esto no es sorprendente ya que no especifiqué cómo autenticar...
el codigo es
Base de datos = Base de datos abierta (
"DSN=myDatabase", // fuente de datos
"miNombreDeTabla", //tabla
"JMPtable" // nuevo nombre de tabla
);
Entonces, ¿cómo puedo especificar mis detalles de autenticación?
Chao,
Pablo
Re: conectarse a la base de datos SQL mediante programación@jmpbeginner ,
su respuesta es realmente muy valiosa.
¡Muchos gracias!
Ron
Re: conectarse a la base de datos SQL mediante programaciónGracias por compartir, es muy útil!
Re: conectarse a la base de datos SQL mediante programaciónAquí hay un ejemplo simple usando Big Class que debería ayudarlo a comenzar.Inserta todas las filas en una tabla de base de datos llamada big_class.Nótese el uso de Evalinsert - hace que las cuerdas se vean más limpias.
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 tiene muchas filas para insertar, considere hacer varias inserciones a la vez.En Oracle puedes usar INSERTAR TODO para insertar varias filas a la vez.
Re: conectarse a la base de datos SQL mediante programaciónHola, Sr. Mroz,
Aprecio su compartir.
Estoy aprendiendo la conexión JMP a la base de datos; según su secuencia de comandos, puedo abrir la base de datos.
Mi próxima pregunta es cómo insertar una línea (líneas) en las tablas existentes en la base de datos.
Podría obtener lo siguiente:
(1). existing_col_names=Tabla de datos actual() << obtener el nombre de la columna(cadena);
(2). obtener nuevos valores (en matriz) por new_values= dt << Get As Matrix();
¿Cómo agregar los nuevos_valores a la tabla existente en la base de datos?
Saludos,
Wgan
Re: conectarse a la base de datos SQL mediante programación" El conjunto de datos JMP que se crea tendrá dos variables de tabla: JSL y sql"
Resolví mi propio problema, pero pensé que también lo compartiría aquí:
Si no ve las dos variables de tabla "JSL" y "SQL" o "Fuente", se ocultan debido a las preferencias.
ejecute este script JSL para resolver el problema:
pref(ODBC Ocultar cadena de conexión(0));
conectarse a la base de datos SQL mediante programaciónNo he usado contraseñas con bases de datos de Access.Si no tiene noticias de alguien en este foro, le sugiero que se comunique con el soporte técnico de JMP.
conectarse a la base de datos SQL mediante programaciónSr. Mroz,
Investigué un poco sobre el conjunto de usuario/contraseña desde el lado de MS Access. Basándonos en la información actual, teníamos una forma de establecer la contraseña para un archivo de MS Access. Puede visitar el siguiente enlace para obtener algunas formas. Parece que no puedo encontrar la forma de configurar el nombre de usuario para acceder al archivo.
http://office.microsoft.com/en-us/access-help/CH001010607.aspx?CTT=97
He probado agregar 123 como contraseña para Northwind.mdb. E intenta conectarlo con mdb. Si opero con el menú, una ventana emergente me preguntará ID/PW. después de insertar "123". Puedo obtener el archivo de la base de datos y abrir la tabla. Luego me desconecto y obtengo el siguiente JSL. Puede encontrar información sobre PWD y UID.
Abrir base de datos (
"DSN=Base de datos de MS Access;DBQ=D:\Mi empresa\Proveedor\TI\Access\Northwind.mdb;DefaultDir=D:\Mi empresa\Proveedor\TI\Access;DriverId=25;FIL=MS Access;MaxBufferSize= 2048;PageTimeout=5;PWD=123;UID=administrador;",
"SELECCIONAR * DE Clientes"
)
Después de cerrar toda la tabla, la ejecuto, encuentro que puedo abrir la tabla de acceso protegida con contraseña. Pero si no puedo obtener esa ventana para especificar el proceso de autenticación.
He probado para cambiar PWD=123 a ***. No funciona.
¿Puedes darme alguna entrada?
conectarse a la base de datos SQL mediante programaciónHola Kun,
Usaría lo que esté en la lista para el JSL variable en su conjunto de datos que resultó de leer una tabla de Access.Realmente no "establece parámetros" para el ID de usuario y la contraseña, solo crea una cadena de conexión y la usa.No sé si Access tiene la capacidad de usar nombres de usuario y contraseñas.Aquí hay una cadena de conexión que usé para una base de datos de Access.Tenga en cuenta que no hay nombre de usuario/contraseña.
// Fuente de datos
cadena_dsn = "DSN=Base de datos de MS Access;" ||
"DBQ=C:\Discovery2011\JMP Vigilancia1.accdb;" ||
"DefaultDir=C:\Discovery2011;DriverId=25;" ||
"FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;" ;
conectarse a la base de datos SQL mediante programaciónEstimado Sr. Mroz,
Este es Kun. Me he unido a este grupo.
Gracias por su respuesta a esta pregunta sobre la conexión a la base de datos. Aquí también usé JMP para conectar algunos archivos de base de datos de MS Access por
Archivo > Base de datos > Abrir tabla .
. Me pregunto si la contraseña y la identificación que está discutiendo son para un archivo de acceso o para un servidor donde se guardaron los archivos de la base de datos. Si el PW y el ID son para un archivo de Access, ¿dónde puedo establecer estos parámetros?
Kun
conectarse a la base de datos SQL mediante programaciónGracias,
eso funcionó perfectamente.
Chao,
Pablo
conectarse a la base de datos SQL mediante programaciónPablo,
Necesita la cadena de conexión DSN adecuada.Para obtener esto, ejecute el comando Archivo > Base de datos > Abrir tabla .Hacer clic Conectar y seleccione su fuente ODBC.Se le pedirá un nombre de usuario y una contraseña.Después de ingresar esa información, aparecerá una lista de esquemas y tablas.Seleccione cualquier tabla (pequeña) y haga clic en Mesa abierta .Después de eso se lee en clic Desconectar .El conjunto de datos JMP que creó ges tendrá dos variables de tabla: JSL y sql .Si hace clic en ellos, verá la cadena de conexión y la instrucción SQL que se utilizó.Puede hacer doble clic en la variable JSL para ver su valor; se verá así:
Abrir base de datos ( "DSN=Base de datos ODBCxxx;UID=xxxx;PWD=xxxxxxx;DBQ=mibase de datosxxxx;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;" ,
"SELECCIONAR * DE myschema.mytable" ) ;
Mi ejemplo muestra una cadena dsn de base de datos Oracle típica.El suyo se verá ligeramente diferente para SQL Server.Guarde esta cadena: para usarla mediante programación, haría algo como esto:
cadena_dsn = "DSN=Base de datos ODBCxxx;UID=xxxx;PWD=xxxxxxx;DBQ=mibase de datosxxxx;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;" ;
cadena_sql = "seleccione * de myschema.othertable"
base de datos abierta ( cadena_dsn , cadena_sql , "otra mesa" ) ;
Saludos,
Pedro