Hola,
Tengo una base de datos en la que escribí un procedimiento almacenado, que genera una tabla para el análisis DOE. Básicamente, seleccionando los parámetros y sus valores de forma dinámica, por lo que una consulta de tabla simple no funciona.
En JMP 13, existe la ventana de tabla abierta de base de datos avanzada que enumera todos los procedimientos almacenados en el SQL. Me gustaría ejecutar "Call StoredProc(x)" mediante el uso de ejecutar sql, pero no sucede nada. En matlab devuelve la tabla adecuada.
¿Cómo puedo ejecutar un procedimiento almacenado en JMP e importar los resultados a una tabla?
Gracias,
akos
Creé una interfaz de este tipo que se basa en un procedimiento almacenado para devolver los datos una vez que se conocen las opciones del usuario. La cadena de conexión se obtuvo conectándose a una tabla en el mismo servidor que el procedimiento almacenado y luego copiándola desde el script de origen de la tabla.
Luego hice uso de la capacidad de ejecutar código SQL desde JMP. El siguiente ejemplo es para un servidor que ejecuta Microsoft T-SQL. Todas mis entradas al procedimiento almacenado son texto, por lo tanto, el uso de '' alrededor de cada cadena. Esto es un poco de fuerza bruta ya que está usando JSL para escribir cadenas SQL, pero funciona bien.
//obtener las entradas del usuario como cadenas
...código de interfaz aquí...
//crear conexión
dbc = Crear conexión de base de datos (
"ODBC:Descripción=##### conjunto de herramientas;CONTROLADOR=SQL Server;SERVIDOR=#####;UID=######;Trusted_Connection=Sí;APP=JMP;WSID=####;BASE DE DATOS =#####;"
);
// obtener resultado
Evaluar(
Analizar gramaticalmente(
Inserción de evaluación (
"\[
SQLString = "DECLARAR @rc En t
EJECUTAR @rc = [dbo].[ObtenerResultadosEstandarizados]
@FuenteDeDatos = '^FuenteDeDatos^'
,@Sitio = '^Sitio^'
,@FromDate = '^fromDateString^'
,@ToDate = '^toDateString^'
,@Nivel1 = '^nivel1cadena^'
,@Nivel2 = '^nivel2cadena^'
,@Nivel3 = '^nivel3cadena^'
";
]\"
)
)
);
dresult = Ejecutar SQL( dbc, SQLString, "Tabla de resultados" );
//organizar
Cerrar la conexión de la base de datos (dbc);