Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptBonjour,
J'ai scripté la préparation des données/le nettoyage des données avec divers formules/formats et les données de sortie sont prêtes pour l'insertion (écriture) sur le serveur SQL à partir de la table JMP. Je me suis connecté à SQL, mais je n'ai pas pu insérer (ajouter) des données à la base de données du serveur SQL sur la table cible. Quelqu'un peut-il aider dans cette situation à surmonter l'instruction SQL à ajouter. Voici mon script de fin qui est prêt (JMP Table = "Upload") à écrire.
Data Table( "ServerData" ) << Join(
With( Data Table( "DataProcessed" ) ),
Merge Same Name Columns,
Copy second table formula( 0 ),
Suppress main table formula evaluation( 0 ),
By Matching Columns( :Individual_Claim_Number_ID_Full = :Individual_Claim_Number_ID_Full ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 1),
Preserve main table order( 1 ),
Output Table( "Upload" )
);
dbc = Create Database Connection(
"Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101"
);
sqlreturn = Execute SQL(
dbc,
"INSERT Upload INTO [dbo].ALL_CUSTOMERS"
);
Close Database Connection( dbc );
Accès aux donnéesRe : Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptUtilisez la commande show() ou write() pour afficher l'instruction SQL dans la fenêtre Journal.Copiez/collez cela dans un frontal SQL Server (par exemple, SQL Management Studio) - cela devrait vous donner de meilleurs messages d'erreur.Je soupçonne que les blancs sont ce qui vous pose problème.Découvrez comment le faire "manuellement" dans SQL Server et vous pourrez le faire fonctionner à partir de JSL.Je n'ai pas SQL Server, donc je ne peux pas résoudre les problèmes au-delà de cela.
Re : Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptBonjour pmroz,
Je me suis fatigué de plusieurs façons, il n'y a pas de message d'erreur. Mais les données ne sont pas insérées dans la table SQL.
J'ai utilisé les mêmes scripts pour une autre table, cela fonctionne bien. Les données de la ligne ont été correctement ajoutées dans la table de la base de données. Mais cette table n'a que 2 colonnes (champs). Peut-être que cela fonctionne correctement.
Mais quand je me suis fatigué pour l'insertion dans "ALL_CUSTOMER", les scripts fonctionnent correctement mais les données non ajoutées dans la base de données ont été insérées. En temps réel, j'ai beaucoup de blancs dans les valeurs, peut-être (pas sûr) parce que l'insertion ne fonctionne pas ? Ici, je joins des scripts complets, des propriétés de colonne SQL et des données prêtes à être téléchargées (fichier JMP) dans la table SQL pour votre référence.
Pouvez-vous également vérifier les dates, en cas d'erreur.
J'ai terminé 90 % des scripts, luttant pour le téléchargement de données vers SQL, ce qui rend le projet terminé à 100 %.
Merci pour votre aide.
Re : Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptQuelque chose comme ça fera ce que vous voulez.Je ne gère pas les dates - cela nécessitera une logique supplémentaire.Vous ne savez pas comment le serveur SQL gère les dates pour les insertions.
dt = data table ("Upload");
col_list = dt << get column names(string);
col_names = concat items(col_list, ", ");
insert_prefix = evalinsert(
"INSERT INTO [dbo].[ALL_CUSTOMERS] (^col_names^) VALUES ");
dbc = create database connection("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101");
for (i = 1, i <= nrows(dt), i++,
for (k = 1, k <= ncols(dt), k++,
one_col = col_list[k];
one_value = column(dt, one_col)[i];
// Surround strings with single quotes
if (type(one_value) == "String",
one_value = "'" || one_value || "'";
,
// Convert numeric to string, handle missing values (.)
one_value = char(one_value);
if (one_value == ".", one_value = "NULL");
);
if (k == 1,
sql_string = one_value;
,
sql_string = sql_string || ", " || one_value;
);
);
insert_sql = insert_prefix || "(" || sql_string || ")";
show(insert_sql);
// Do the insert. Execute SQL does an implicit commit
execute sql(dbc, insert_sql);
);
close database connection(dbc);
Re : Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptMerci..
Pouvez-vous me montrer SQL avec exécuter SQL avec un exemple. afin que je puisse suivre votre démarche et créer des scripts selon les vôtres.
Re : Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptJe pense que SAVE DATABASE écrase la table.Si vous souhaitez ajouter des données, vous pouvez créer une chaîne SQL pour plusieurs insertions et exécuter le SQL avec EXECUTE SQL.
Re : Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptDésolé, je n'ai pas ajouté de script complet ni de tableau de données qui est prêt à être ajouté à ma question initiale.
Ici, j'ai joint le script et la table de données pour l'ajout dans le serveur SQL.
La table de données a 224 colonnes et également dans le bon ordre en fonction de la table SQL avec le même nom de champ. Le nombre de lignes changera à chaque fois, donc ajoutez les données à SQL par instruction basée sur les lignes de la table upload.jmp.
//Table de données "Télécharger" prête à être ajoutée à SQL Server
dt << Save DataBase("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101", "dbo.ALL_CUSTOMERS");
INSÉRER DANS [dbo].[ALL_CUSTOMERS],
(col1, col2)
VALEURS
(col1_value1, col2_value1),
(col1_value2, col2_value2),
Re : Comment insérer (ajouter/écrire) des données dans la base de données SQL Server dans la table à partir de JMP dataTable via un scriptSQL n'a aucune idée de ce qu'est le téléchargement,
Vous pourrez peut-être faire
dt = Data Table( "ServerData" ) << Join(
With( Data Table( "DataProcessed" ) ),
Merge Same Name Columns,
Copy second table formula( 0 ),
Suppress main table formula evaluation( 0 ),
By Matching Columns( :Individual_Claim_Number_ID_Full = :Individual_Claim_Number_ID_Full ),
Drop multiples( 0, 0 ),
Name( "Include non-matches" )(0, 1),
Preserve main table order( 1 ),
Output Table( "Upload" )
);
dt << Save DataBase("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=MAWA_REP;Data Source=USFLI-WAS101", "dbo.all_customers");
Mais je suis à peu près sûr que cela écraserait votre table sql.
Vous pouvez écrire le sql dynamiquement.Juste pour passer par votre table pour mettre toutes les valeurs dans une chaîne SQL que vous pouvez ensuite exécuter.
INSERT INTO [dbo].[ALL_CUSTOMERS]
(col1, col2)
VALUES
(col1_value1, col2_value1),
(col1_value2, col2_value2),