Enregistrer une table vide avec JSLJ'ouvre plusieurs tables à partir d'une base de données, puis je les enregistre dans des fichiers CSV. Le script fonctionne correctement tant que la table contient des données, mais les tables vides (que je souhaite également enregistrer pour montrer qu'elles sont vides) me donnent cette erreur :
Le tableau de données est vide.
Le fichier n'a pas pu être enregistré.
Impossible d'enregistrer le fichier.{2}
Je peux enregistrer manuellement les tableaux au format JMP, mais pas sous forme d'exportation de texte. Des idées?Re : Sauvegarder une table vide avec JSLAprès quelques lectures plus approfondies sur le forum, j'ai réalisé que la fonction Is Empty() ne dit pas si la table contient des données... J'ai vu un commentaire selon lequel il est préférable d'utiliser N Row (dt) pour ce faire :
If( N Row( dt ) == 0,
// then
Print( "Data table is empty" );
// else
Print( "Data table is not empty" );
);
Re : Sauvegarder une table vide avec JSL@chungwei
Je suis récemment tombé sur ce message d'erreur et j'ai été assez surpris.
Puis j'ai réalisé que j'avais créé un nouveau tableau avec uniquement le défaut "Colonne 1" et aucune ligne.
Je préférerais que la table soit enregistrée en tant que table vide, mais dans mon cas, la solution était aussi simple que de nommer la seule colonne lors de la création de la table.
Le rapport original faisait apparemment autre chose que la fonction NewTable(), donc nommer la colonne aurait pu être plus difficile.
sentinelDt = New Table( "sentinel", "private", New Column( "a") ); // needs a col name to save it with no rows!
sentinelDt << save( root || sentinelName );
Re : Sauvegarder une table vide avec JSLSi vous utilisez la fonction 'Is Empty()', vous pouvez utiliser une instruction if pour enregistrer les données uniquement lorsque la table n'est pas vide :
Exemple:
dt = Open( "Path\DataTable" );
If( Is Empty( dt ),
// Then Do this if the table is not empty:
dt << Save( "Path\DataTable" )
,
// Else Do nothing
Print( "the table is empty and will not be saved" )
);