Problèmes avec Execute SQL : JMP se bloque, besoin d'aide pour le dépannageJe réécris une ancienne application pour inclure plus de fonctionnalités. Une partie de l'application extrait des données d'une base de données. Je copie ce code exactement tel qu'il était dans l'ancienne application.
Lorsque j'essaie d'exécuter ce code dans la nouvelle application, JMP se bloque violemment. Il me donnait des fenêtres d'erreur, maintenant il s'arrête de fonctionner. Il produit cependant des rapports de plantage dans "...AppData\Local\Temp\JMPCrashReports\13".
Donc, si j'isole le code dans une nouvelle fenêtre de script comme celle-ci :
dbc = Create Database Connection("DSN=qwerty;DATABASE=qwerty;SERVER=xxx.xx.xx.xx;PORT=5432;");
query = "SELECT t1......
FROM xxxxxxxx
WHERE ( ( ( xxxxxxx IN ( 'xxxxxx' ) ) AND ( (time>= '05/07/2018 12:00:01 AM') ) AND ( (time<= '05/07/2018 3:31:13 PM') ) ) ) ;";
DataTable = Execute SQL( dbc, query, "invisible", "Data"); Il fonctionne très bien.
Si je commente la ligne Execute SQL dans l'application, cela fonctionne bien (enfin, sauf qu'il ne tire rien):
//DataTable = Execute SQL( dbc, query, "invisible", "Data");
Mais si je décommente cette ligne, JMP se bloque et s'arrête immédiatement après l'exécution.
Cela ressemble à quelque chose d'autre qui existe lorsque la nouvelle application est en cours d'exécution et qui n'existe pas lorsqu'un script séparé ou l'ancienne application en cours d'exécution empêche Execute SQL de s'exécuter correctement.
Question : Avez-vous des idées sur la façon de résoudre le problème ? J'ai regardé le rapport d'accident - n'explique pas grand-chose. Où puis-je envoyer ces rapports ?
Merci,
M
Re : Problèmes avec Execute SQL : JMP se bloque, besoin d'aide pour le dépannageOk, il semble que Execute SQL ne fonctionne pas avec un abonnement actif à Data Table List.
L'un des ajouts à la nouvelle version de l'application est cet écouteur :
aSub = Subscribe to Data Table List( , OnOpen( fnew ) );
Subscribe to Data Table List( aSub, OnRename( fnnme ) );
Subscribe to Data Table List( aSub, OnClose( fclose ) );
Donc, si je le ferme juste avant l'exécution du SQL, cela fonctionne bien :
Unsubscribe to Data Table List(aSub, All);
DataTable = Execute SQL( dbc, query, "invisible", "dataTable");
Je suppose que si je m'abonne à nouveau dès que j'ai tiré la table, cela ne cassera aucune des fonctionnalités ?
En outre, cela semble-t-il être un bogue, ou j'utilise l'abonnement de manière incorrecte ?
Merci,
M
Re : Problèmes avec Execute SQL : JMP se bloque, besoin d'aide pour le dépannageJe suis désolé que vous rencontriez des difficultés ici.
Oui, veuillez contacter Soutien technique , support@jmp.com , avec les rapports de plantage et autant de détails que possible sur le moment où le plantage s'est produit. Ils peuvent aider à identifier la cause et éventuellement fournir des solutions de contournement si le plantage n'a pas déjà été résolu dans une version plus récente.