¿Qué está mal en mi llamada de función?Estoy aprendiendo a escribir y llamar a funciones en JMP (procedente de Matlab).
Intentando extraer datos de una parte probada de la base de datos a través de una consulta SQL.
Escribió dos guiones separados. Una es una función con PartID como variable de entrada y la tabla de datos de prueba como salida.
Otro script es la llamada a la función, pero parece que no puedo pasar el partID a la función. ¿Dónde voy mal?
Mi llamada de función
partDataTable = getDataTable4partID("PART16.0009")Mi función
getDataTable4PartID = Function( {PartID},{partDataTable},
Open Database(
"Driver=SQL Server;
Server=XAB-SQL02;
DATABASE=TBSDF;
Trusted_Connection=Yes;",
"SELECT * FROM dbo.View_BBX a WHERE a.Part like 'PartID' AND a.TestDateTime > '2021-02-01'",
"partDataTable" // name of the output data table
);
);La consulta SQL en sí funciona cuando PartID se reemplaza por el número de pieza real PART16.0009 y se ejecuta por separado escupiendo la tabla de datos deseada, pero cuando uso la llamada a la función, la tabla de datos todavía tiene 'PartID' en los scripts de Source / Update From DB en la tabla de datos vacía.
Tabla de datosScriptingVentanasRe: ¿Qué hay de malo en mi llamada de función?Gracias. Esto funciona. Sin embargo, noté que tener partDataTable con comillas también funciona bien. ¿Se supone que es así?
Re: ¿Qué hay de malo en mi llamada de función?Si lo tiene entre comillas, lo más probable es que nombre su tabla de datos como partDataTable y no con el nombre que deseaba (si deseaba tenerlo como argumento).
Re: ¿Qué hay de malo en mi llamada de función?@jthi . Hmm, pero obtengo el nombre que quiero que se llame a la tabla de datos de salida (es decir, el mismo que mi partID).Esta es mi llamada de función.
partDataTable = getDataTable4partID("PART16.0009","PART16.0009")
Re: ¿Qué hay de malo en mi llamada de función?Me acabo de dar cuenta de algo y necesito confirmar si este es realmente el caso. Después de realizar un cambio en la función, parece que necesito ejecutar la función una vez para que se apliquen los cambios. Ahorrar no parece ser suficiente. ¿Es esto correcto?
Había aplicado las comillas a partDataTable y guardé mi función. La llamada a la función funcionó como se esperaba con el nombre de la tabla de datos que deseo. Pero después de ejecutar la función una vez, cuando ejecuto la llamada a la función nuevamente, obtengo lo que dijiste que obtendría, es decir, partDataTable como el nombre del archivo de tabla de datos generado.