Crash du trawler de base de donnéesJ'ai écrit un script pour parcourir les bases de données disponibles afin de voir si un identifiant de lot particulier apparaît et extraire les données. Mon approche consiste à ouvrir une série de fichiers, puis à fermer les fichiers vides, ouvert aux suggestions sur la façon de ne pas en avoir besoin ? J'ai une base de données particulièrement peuplée qui ouvre plus de 1 000 fichiers et le script semble planter lorsque je tente de fermer les tables de données vides.
Names Default To Here(1);
// Defining firstname and lastname string
FirstParameter = "First Parameter";
SecondParameter = "Second Parameter";
LotNumber = "Lot Number";
//changing username variables based on user input
w = New Window("Defining Parameters",
<<MODAL></MODAL><LINGO-LABS id="lingo-labs-843187" slang="en-US" mode="CREATE"><LINGO-LABEL>Automatisation et scripts</LINGO-LABEL></LINGO-LABS>Ré: Crash de Database TrawlerExiste-t-il une raison spécifique pour laquelle vous essayez d'exécuter JSL à l'aide de formules et non d'utiliser un script séparé ?
Ré: Crash de Database TrawlerIl s'agit en fait d'un script séparé (Trawl). Le script est compilé dans les colonnes de la table de données, collé dans une fenêtre de script et exécuté à partir de là. S'il existe une méthode plus conventionnelle et plus simple, je suis partant ?
Ré: Crash de Database TrawlerÉcrire le script dans un fichier JSL et l’exécuter à partir de là ?
Ré: Crash de Database TrawlerLa séquence que j'ai implique un script JSL qui exécute une requête SQL pour créer une table de données répertoriant toutes les bases de données disponibles. À partir de là, je génère automatiquement un script JSL de suivi pour rechercher dans la liste mon lot d'entrée. Je suis sûr que c'est possible, mais je ne sais pas immédiatement comment faire cela avec un seul JSL ?
Ré: Crash de Database TrawlerJe suis sûr que si vous pouvez le faire dans des colonnes JMP, vous pouvez le faire en utilisant des boucles dans JSL. Il devrait être beaucoup plus facile de déboguer et de modifier à mesure que vous obtenez la mise en évidence de la syntaxe JSL dans l'éditeur de script.
Ré: Crash de Database TrawlerLe script secondaire résultant comporte de nombreuses requêtes séquentielles, dont la plupart produisent des tables vides. Si je pouvais les fermer immédiatement si elles sont vides, je pense que cela aiderait beaucoup. Des conseils sur la façon de procéder ?
Names Default To Here( 1 );
Clear Globals();
dt = Current Data Table();
Sites = {"Site1;", "Sites2;"};
sql1 = "select * from source.table where lot = 'Lot_ID'";
History1 = Open Database( Sites[1], sql1, "History source.table" );Ré: Crash de Database TrawlerIf(N Rows(dt) == 0, Close(dt, no save));
Ouvrez également vos tables comme invisibles (ou privées). Open Database le prend en charge même si j'utiliserais plutôt une nouvelle requête SQL, mais Open Database est beaucoup plus simple

Ré: Crash de Database TrawlerJarmo, j'ai ajouté cela à chaque requête, ce qui ferme immédiatement les tables vides et cela semble être stable maintenant. Voici le résultat final si cela peut aider quelqu'un, ce n'est pas beau mais ça marche.
Names Default To Here(1);
// Defining firstname and lastname string
FirstParameter = "First Parameter";
SecondParameter = "Second Parameter";
LotNumber = "Lot Number";
//changing username variables based on user input
w = New Window("Defining Parameters",
<<MODAL></MODAL>