conectarse a la base de datos SQL mediante programación<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Estoy intentando 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" desde
el widget de conexión de base de datos. Cuando me conecto, se abre una ventana preguntando
para nombre de usuario y contraseña. Cuando los inserto, puedo conectarme exitosamente.
a la base de datos e importar tablas a JMP.
Entonces me gustaría intentar lo mismo desde un guión. Desafortunadamente no veo
donde insertaría el usuario y contraseña. Cuando intento conectarme
Recibo el siguiente mensaje de error en la ventana de registro.
[Microsoft][Controlador ODBC de SQL Server][SQL Server]Error de inicio de sesión para el usuario ''.
Supongo que esto no es sorprendente ya que no especificé cómo autenticarse...
El código es
Base de datos = Abrir base de datos (
"DSN=miBaseDeDatos", // fuente de datos
"miNombreDeTabla", //tabla
"JMPtable" // nuevo nombre de tabla
);
Entonces, ¿cómo puedo especificar mis datos de autenticación?
Hola,
paolo
Re: conectarse a la base de datos SQL mediante programación@jmpprincipiante ,
tu respuesta es realmente muy valiosa.
¡Muchas 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.Tenga en cuenta el uso de evalinsertar - hace que las cuerdas luzcan 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 realizar 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,
Agradezco que compartas.
Estoy aprendiendo la conexión JMP a la base de datos; Según su secuencia de comandos, puedo abrir la base de datos.
Mi siguiente pregunta es cómo insertar una línea (líneas) en las tablas existentes en la base de datos.
Podría conseguir lo siguiente:
(1). existente_col_names=Tabla de datos actual() << obtener nombre de columna(cadena);
(2). obtener nuevos valores (en matriz) mediante new_values= dt << Get As Matrix();
¿Cómo agregar nuevos valores a la tabla existente en la base de datos?
Atentamente,
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é en compartirlo aquí también:
Si no ve las dos variables de tabla "JSL" y "SQL" o "Fuente", están ocultas debido a 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 recibe 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 manera de establecer una contraseña para un archivo de MS Access. Puede visitar el siguiente enlace para obtener algunas formas. Parece que no puedo encontrar la manera 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 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 que hay información de PWD y UID.
Abrir base de datos (
"DSN=Base de datos de MS Access;DBQ=D:\Mi negocio\Proveedor\IT\Access\Northwind.mdb;DefaultDir=D:\Mi negocio\Proveedor\IT\Access;DriverId=25;FIL=MS Access;MaxBufferSize= 2048;PageTimeout=5;PWD=123;UID=admin;",
"SELECCIONAR * DE Clientes"
)
Después de cerrar todas las tablas, la ejecuto y 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 a cambiar PWD=123 a ***. No funciona.
¿Puedes darme alguna opinión?
conectarse a la base de datos SQL mediante programaciónHola Kun,
Usarías lo que esté listado para el jsl variable en su conjunto de datos que resultó de la lectura de una tabla de Access.Realmente no "estableces parámetros" para el ID de usuario y la contraseña; simplemente creas una cadena de conexión y la utilizas.No sé si Access tiene la capacidad de utilizar nombres de usuario y contraseñas.Aquí hay una cadena de conexión que utilicé para una base de datos de Access.Tenga en cuenta que no hay nombre de usuario ni contraseña.
// Fuente de datos
cadena_dsn = "DSN=Base de datos de MS Access;" ||
"DBQ=C:\Discovery2011\JMP Surveillance1.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 conexión a la base de datos. Aquí también utilicé JMP para conectar algunos archivos de bases de datos de MS Access mediante
Archivo > Base de datos > Abrir tabla .
. Me pregunto si la contraseña y el ID del que está hablando son para un archivo de acceso o para un servidor donde se guardaron los archivos de la base de datos. Si la contraseña y el ID son para un archivo de Access, ¿dónde puedo configurar estos parámetros?
Kun
conectarse a la base de datos SQL mediante programaciónGracias,
eso funcionó perfectamente.
Hola,
paolo
conectarse a la base de datos SQL mediante programaciónpaolo,
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 solicitará un nombre de usuario y contraseña.Después de ingresar esa información, aparecerá una lista de esquemas y tablas.Seleccione cualquier tabla (pequeña) y haga clic Mesa abierta .Después de eso se lee haciendo 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 declaració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 típica de una base de datos Oracle.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"
abrir base de datos ( cadena_dsn , cadena_sql , "otra mesa" ) ;
Saludos,
Pedro