Comment enregistrer les résultats d'une requête SQL dans une table de données ?Bonjour tout le monde,
J'ai le problème suivant. Je veux exécuter une requête SQL pour obtenir des données de la base de données et cela fonctionne bien. Après cela, je voudrais enregistrer les données de la requête dans la table de données et les utiliser pour un traitement ultérieur. Sur la base des idées d'autres messages, j'ai fait une simple affectation à la nouvelle variable dt_TestData . Je fournis comme argument pour Data Table le nom tiré de NomRequête. Cependant, une erreur se produit lorsque je veux enregistrer des données dans la nouvelle variable. L'exécution de la requête fonctionne bien et la nouvelle table avec le nom Données expérimentales s'ouvre automatiquement, mais je voudrais faire référence à ce tableau. J'oublie quelque chose et je ne peux pas le remarquer. J'apprécierais de l'aide pour résoudre ce problème. J'utilise JMP15. Encore une question, comment désactiver l'affichage du tableau après l'exécution de la requête ? Cordialement.
Data = New SQL Query(
Connection(
"ODBC:Description=Datenbank;DRIVER=SQL Server;SERVER=Server;UID=%_UID_%;PWD=%_PWD_%;APP=JMP;DATABASE=EngineeringSupport;"
),
QueryName( "Experimental_Data" ),
Select(
Column( "Param1", "t1"),
Column( "Param2", "t1"),
Column( "Param3", "t1"),
),
From( Table( "TestData", Schema( "dbo" ), Alias( "t1" ))),
) << Run;
dt_TestData = Data Table("Experimental_Data");
Open(dt_TestData);
//further actions with dt_TestData: slicing, joining with other tables, etc.
Re : Comment enregistrer les résultats d'une requête SQL dans une table de données ?C'est bizarre. Lorsque j'exécute une requête, je ne peux pas envoyer de messages directement à la table à partir de la requête. Je dois d'abord transformer cette table en une table de données. Voir l'exemple ci-dessous. Est-ce que j'ai mal compris quelque chose ?
Table = New SQL Query(
Version( 130 ),
Connection( "ODBC:DSN=yournamehere;" ),
QueryName( "MyQuery" ),
Select(
Distinct,
Column( "A", "t1" ),
),
From(
Table(
"some table",
Schema( "some view" ),
Alias( "t1" )
),
Table(
"another table",
Schema( "another view" ),
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "BatchId", "t1" ), Column( "BatchId", "t2" ) )
)
)
)
) << Run;
// does not work
Close( Table, no save );
// does work
NewTable = Data Table( Table );
Close( NewTable, no save );
Ah, je pense que j'ai une petite idée maintenant de ce qui pourrait avoir causé ce problème:
Table = New SQL Query(
Version( 130 ),
Connection( "ODBC:DSN=yournamehere;" ),
QueryName( "MyQuery" ),
Select(
Distinct,
Column( "A", "t1" ),
),
From(
Table(
"some table",
Schema( "some view" ),
Alias( "t1" )
),
Table(
"another table",
Schema( "another view" ),
Alias( "t2" ),
Join(
Type( Left Outer ),
EQ( Column( "BatchId", "t1" ), Column( "BatchId", "t2" ) )
)
)
)
) << Run Foreground; // this fixed it
// does work
Close( Table, no save );
Re : Comment enregistrer les résultats d'une requête SQL dans une table de données ?Mark Bailey, merci pour la réponse. Je ne savais pas comment obtenir la référence par script mais après des recherches supplémentaires j'ai trouvé la solution dans ce poste . Merci à tous pour votre temps et meilleures salutations.
Re : Comment enregistrer les résultats d'une requête SQL dans une table de données ?La variable Données stocke la référence à la table de données renvoyée par la requête. L'appel de fonction Table de données( "Données expérimentales' ) renvoie une référence à la table de données ouvertes Experimental Data. Vous pouvez envoyer des messages à la référence stockée dans Données .
Re : Comment enregistrer les résultats d'une requête SQL dans une table de données ?gzmorgan0,
Merci de votre réponse! J'aurais dû expliquer que plus précisément, le problème est que je ne pouvais pas créer de variable "dt" qui ferait référence aux données résultant de la requête. Une fois la requête exécutée, la nouvelle table est créée et ouverte, mais où puis-je trouver (ou créer) la variable faisant référence aux données ? Ou il est en quelque sorte créé et je ne peux pas le voir/l'utiliser ? JMP affiche une erreur concernant cette ligne :
dt_TestData = Data Table("Experimental_Data");
"La table de données est introuvable lors de l'accès ou de l'évaluation de la table de données, Table de données/*###*/("Experimental_Data")"
Je pense que la variable dt_TestData ne peut pas être créé de cette manière? J'apprécierais une aide supplémentaire pour résoudre le problème.
Re : Comment enregistrer les résultats d'une requête SQL dans une table de données ?@lukasz ,
La dernière instruction JSL est le problème : Open( dt_testData ).Si la requête s'est exécutée avec succès, la table de données est déjà ouverte. Si vous voulez faire une autre copie de cette table, utilisez Subset. Dans l'exemple ci-dessous, dt2 est une table différente.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt2 = dt << Subset( All Rows, Selected Columns(0), Output Table Name("Big2") );