insertion d'une date dans mysql

1
0
-1

Je suis en mesure d'enregistrer les données de type texte ou de type numérique en base de données. Mais je suis incapable de stocker une date saisie par l'utilisateur si je met de type string s’était récupéré mais j'aime utiliser le type "date" de bonita pour utiliser l'agenda prédéfini de bonita

d'aprés une petite recherche sur net ce que j'ai compris que la format date de bonita et format date de mysql incompatible l'un de forme anglais et l'autre de forme francais Ci-dessous est la requête que je utilise lors de la configuration du connecteur d'accès MS. INSERT INTO utilisateur (nom, prénom, date) VALUES ('$ {FirstName}', '$ {lastName}', '$ {date} '); merci d'avance

4 answers

1
+1
-1

Bonjour.

Le type date de Bonita ne correspond pas au type date de sql. Pour insérer une date dans une base de données, il faut transformer la date au bon format. Pour faire cela j'utilise un script java avant de faire ma requête sql :

import java.text.SimpleDateFormat;
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateAInsererDansBDD = formatter.format(dateDeBonita);

Avec ça tu vas pouvoir transformer ta date en une String qui va pouvoir être stockée dans ta base de données.

Comments

Submitted by foufoukahloun on Fri, 02/13/2015 - 14:00

bonjour ; merci pour la réponse , me comme je suis débutante en bonita ou je dois mettre ce syntaxe ? j'a utilisé ce syntaxe comme ca avant la saisie de requête lors de création d'un connecteur import java.text.SimpleDateFormat; SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String date= formatter.format(date); INSERT INTO exemple.client ( 'nom', 'date') VALUES ('${nom}', '${date}');

mais ca marche pas pour date (j'ai pas trouver la récupération de date dans base mysql ) en attente de votre explication merci

Submitted by yannick.lombardi on Fri, 02/13/2015 - 16:22

J'utilise la version anglaise de Bonita BPM, en français ça doit s’appeler différemment. Du coup un dessin vaut mieux qu'un long discours : Pour la solution 1, dans le connecteur, il faut cliquer ici : "Swith editor"

Après avoir cliqué sur le crayon, il faut entrer le script comme ceci : Script

Submitted by foufoukahloun on Fri, 02/13/2015 - 16:37

bonjour ; en fait j'ai déjà utilisé la première méthode directement dans le connecteur dans l'endroit requête ou script batch j'ai copier tous le corps mais vous m'avez dit de faire : il faut d'abord cliquer sur "Switch editor to create a condition..." puis cliquer sur le crayon pour ajouter un script je travaille sur bonita 6.3.1 et j'ai affecté ma variable "date_entrée " de type date dans bonita et de type date dans mysql

Submitted by yannick.lombardi on Tue, 05/26/2015 - 11:04

C'est normal que ça ne fonctionne pas de cette manière, il ne faut pas mélanger SQL et Java.

Il y a plusieurs endroit possible où intégrer le code que j'ai indiqué. 1) Soit directement dans le connecteur, dans la case "Query or Batch Script", il faut d'abord cliquer sur "Switch editor to create a condition..." puis cliquer sur le crayon pour ajouter un script. Dans ce cas, le script java sera quelque chose du genre : (peut aussi être écrit en Groovy mais je n'y connais pas grand chose)

    import java.text.SimpleDateFormat;
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    String dateAInsererDansBDD = formatter.format(date);
return "INSERT INTO exemple.client ( nom, date) VALUES ('"+nom+"', '"+dateAInsererDansBDD +"')";

2) Une autre possibilité serait de créer une variable "dateString" dans le processus, et de créer une tache de type script qui va retourner la date sous forme de String pouvant être insérée dans une requête SQL. Dans ce cas là, le code ressemblera à :

    import java.text.SimpleDateFormat;
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    return formatter.format(date);

Et ensuite dans le connecteur, il faudra juste mettre la requête :

INSERT INTO exemple.client ( nom, ddate) VALUES ('${nom}', '${dateString}');

1
0
-1

Bonjour, j'utilise un type date dans MySQL et un type date dans mon process.

Comments

Submitted by foufoukahloun on Mon, 03/09/2015 - 10:41

Bonjour louis; moi aussi j'ai choisi le type date pour bonita et mysql et j'ai bien suivi la première démarche mais j'arrive pas a récupérer ma variable et j'ai sais pas d'ou vient le problème (t'a changé quelque chose du corps de yannick sauf les noms des variables) !!! merci pour votre aide et explication

1
0
-1

Merci pour cette solution, cela fonctionne Louis

Comments

Submitted by foufoukahloun on Sun, 03/08/2015 - 11:56

bonjour louis ; stp quelle type que vous utiliser bans bonita et dans mysql pour votre variable car pour moi n'est pas fonctionnable

1
0
-1

merci yannick pour votre aide j'ai suivi cette démarche mais j'ai pas récupéré ma variable date dans mysql comme je vous informé que je choisi le type date dans bonita et dans mysql pour mon attribut que j'essaye a le récupérer D'ou vient le prob !! merci d'avance

Comments

Submitted by louis.fresneau on Mon, 03/09/2015 - 16:22

Bonjour, J'ai utilisé des types dates dans les deux. cordialement

Submitted by foufoukahloun on Tue, 05/26/2015 - 10:24

bonjour j'ai bien suivi la première démarche mais j'arrive pas a récupérer ma variable et j'ai sais pas d'ou vient le problème ci joint mon exemple sachant que (mon variable dans la base Mysql declaré datebdd de type date ) svp est-il possible de vous vérifiez avec moi d'ou vient le problème URGENT!!!! merci pour votre collaboration

exemple date

Submitted by yannick.lombardi on Tue, 05/26/2015 - 11:05

Je pense que l'erreur vient du script que tu as mal modifié.

Tu as :

return "INSERT INTO exemple.hh ('date') VALUES ('${datebdd}')";

Mais il faut :

return "INSERT INTO exemple.hh (date) VALUES ('"+datebdd+"')";

EDIT : Je viens de tester en corrigeant, c'est bien ça le probleme.

Submitted by foufoukahloun on Tue, 05/26/2015 - 11:46

bonjour Yannick ; merci pour votre aide j'ai déjà modifier mon code suivant votre remarque mais malheureusement j'avais toujours le même problème (pas de récupération dans la base mysql)
merci de me répondre exemple

Submitted by yannick.lombardi on Tue, 05/26/2015 - 12:02

Pour moi c'est tout correct. Ca va être très difficile de t'aider si tu ne mets pas tes logs ni l'erreur que tu rencontre.

Submitted by foufoukahloun on Tue, 05/26/2015 - 12:20

y a pas en fait aucune erreur lors de l’exécution s’était bien passé sauf que je ne trouve pas la valeur dans la base ci joint fichier log fichier log

Submitted by yannick.lombardi on Tue, 05/26/2015 - 13:40

Il y a plein d'erreur dans ce fichier log. Je lis par exemple :

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''exemple'.'hh' (date) VALUES ('2015-06-12 00:00:00')' at line 1

Pour cette erreur, la requête était :

INSERT INTO 'exemple'.'hh' (DATE) VALUES ('2015-06-12 00:00:00')

Je pense que le problème provient des apostrophes autour de exemple et hh. Il faudrait les enlever pour avoir la requête :

INSERT INTO exemple.hh (DATE) VALUES ('2015-06-12 00:00:00')
Submitted by foufoukahloun on Tue, 05/26/2015 - 14:04

merci pour votre aide je ne veux pas vous déranger plus mais s'étais juste un test de ma part pour ça INSERT INTO 'exemple'.'hh' (DATE) VALUES ('2015-06-12 00:00:00') lorsque cette façon ne marche pas INSERT INTO exemple.hh (DATE) VALUES ('2015-06-12 00:00:00') merci pour votre aide je veux essayer plus de trouver une solution

Notifications