Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 3 sur 3
Aller à la page: <  1, 2, 3
[R] batch de mise à jour d'une BDD à partir d'un csv
Auteur Message
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Revue du message précédent :

OK
ca marche nickel
dernière amélioration
lorsque je lance le bat
la fenêtre reste ouverte à la dernière action
comment demander à cette fenêtre de se refermer

EDIT C'est BON j'ai mis un exit après "command executed with succes" et ca me ferme la fenêtre

encore merci pour ta patience et ta réactivité




Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Le batch de flammrock marchant très bien, j'ai essayé la modif proposée par sachadee,
La deuxième ligne génère une erreur sur le chemin spécifié
C'est dommage car effectivement comme l'a suggéré sachadee cette méthode semble plus rapide dans son exécution
Si vous pouviez voir oú se situe l'anomalie ,cela serait top
Et encore un grand merci à tous les deux pour votre aide



Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Comment te montrer où ça cloche si tu ne montres pas ton code.



Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Le code est quelques post plus haut ainsi que la proposition de modif
En début de page 2



Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Ça ne dit pas comment tu l'as utilisée et ça ne donne pas non plus le contexte.



Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Tout est dit dès le premier post,
Le batch me permet le prendre la dernière ligne d'un csv et de l'envoyer vers ma table
Mis dans un planificateur, il met à jour la base pour chaque nouvelle ligne créée dans le csv toutes les 5 mn
Voilà voilà



Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Je parlais de la proposition de sacha. C'est pas grave Laughing



Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Comme mentionné dans son post, il propose de remplacer la ligne for par 2 lignes
Mais la seconde ligne génère une erreur de chemin et les données ne sont pas envoyées dans la table



Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
jay a écrit:
Comment te montrer où ça cloche si tu ne montres pas ton code.


Tu préfères blatérer dans le vide au lieu de montrer ton code entier tel qu'il est actuellement Question OK... Okay Rolling Eyes

Mort de Rire



Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Mon code est exactement celui qui est affiché dans le post page 2,



Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
J'ai la même erreur avec le code de sachadee, je l'ai adapté pour qu'il fonctionne :
Code:
for /f "delims=" %%i in ('find /C /V "" ^<"%~1"') do (
  set /a offset=%%i-1
  for /f "delims=" %%j in ('more +!offset! ^<"%~1"') do set %~2=%%j
)


Donc voici le code au complet avec la correction :
Code:
@echo off
setlocal EnableDelayedExpansion
 
 
set pathToCSV=c:\xnet_meteo\xnet_meteo.csv
 
call :getLastLineFile "%pathToCSV%" lastLine
echo;Last Line : !lastLine!
call :csvRowToMySQLRow lastLine MySQLRow ";"
echo;Row converted : !MySQLRow!
echo;--------------
call :MySQL ^
{ ^
    "path":"C:\wamp64\bin\mysql\mysql5.7.21\bin\mysql.exe" ^
    "host":"127.0.0.1" ^
    "user":"root" ^
    "password":"" ^
    "database":"donnees_meteo" ^
    "command":"INSERT INTO donnees2 (Date, Time, Pressure_Absolute, Pressure_Relative, Temperature_Indoor, Humidity_Indoor, DewPoint_Indor, Temperature_Outdoor, Humidity_Outdoor, DewPoint_Outdor, Wind_Chill, Wind_Direction, Wind_Gust, Wind_Speed, Rainfall_Absolute, Rainfall_Relative, Rainfall_1h, Rainfall_24h, Cloud_Base, Humidex, SolarRadiations, UVIndex, Temperature_2, Humidity_2, Temperature_3, Humidity_3, Temperature_4, Humidity_4, Temperature_5, Humidity_5, Temperature_6, Humidity_6, Temperature_7, Humidity_7, Temperature_8, Humidity_8, Temperature_9, Humidity_9, Temperature_10, Humidity_10, DewPoint_2, DewPoint_3, DewPoint_4, DewPoint_5, DewPoint_6, DewPoint_7, DewPoint_8, DewPoint_9, DewPoint_10, Heatindex_0, Heatindex_1, Heatindex_2, Heatindex_3, Heatindex_4, Heatindex_5, Heatindex_6, Heatindex_7, Heatindex_8, Heatindex_9, Heatindex_10, weather, forecast) VALUES (!MySQLRow!)" ^
}

rem Une fois que le call :MySQL est fini le programme reviens ici et là on lui dit se fermer
exit



rem ça c'est juste une sécurité au cas ou que tu enlèves le exit
pause>nul&exit
:getLastLineFile <Path> <Output>
  for /f "delims=" %%i in ('find /C /V "" ^<"%~1"') do (
    set /a offset=%%i-1
    for /f "delims=" %%j in ('more +!offset! ^<"%~1"') do set %~2=%%j
  )
goto :eof
:MySQL <Object>
  for %%p in (%*) do for /f "tokens=1,* delims=:" %%1 in ("%%~p") do (
    set key=%%~1&set key=!key:"=!
    if not "!key:{=}!"=="}" set "MySQL_!key!=%%~2"
  )
  set MySQL_pwd=
  if not "%MySQL_password%"=="" set "MySQL_pwd= -p%MySQL_password%"
  "%MySQL_path%" -h%MySQL_host% -u%MySQL_user%%MySQL_pwd% -D%MySQL_database% -e "%MySQL_command%" >nul && echo;mysql: Command executed with Success^^!
goto :eof
:csvRowToMySQLRow <CSV_ROW> <OutPut_MySQL_ROW> <DELIMITER>
  set rowcsv=!%~1!
  set %~2='!rowcsv:%~3=','!'
goto :eof



p.s : j'ai déplacé le exit que tu avais mis après Command executed with Success
je l'ai mis juste après le call :MySQL
c'est plus propre comme ça Mr. Green


p.s 2 : si ton problème est résolu n'hésite pas à mettre le sujet en résolu c'est-à-dire mettre [R] devant le nom du topic
pour faire ça tu retournes à la première page, tu édites ton premier message et tu peux changer le titre et là tu met [R] devant Okay



Dernière édition par Flammrock le Mer 2 Mai 2018 - 12:13; édité 1 fois

______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
Merci Flammrock
Je vais faire cela,
Et te tiens au courant



Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
nouveau batch testé avec succès
c'est parfait la fenêtre s'ouvre et se ferme immédiatement
la table est bien mise à jour Okay

félicitation et merci pour ce travail

PS en voyant l'heure de ton post, je m’excuse de t'avoir fait passer des nuits blanches



Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
ardigier a écrit:
nouveau batch testé avec succès
c'est parfait la fenêtre s'ouvre et se ferme immédiatement
la table est bien mise à jour Okay

félicitation et merci pour ce travail


De rien Mr. Green


ardigier a écrit:
PS en voyant l'heure de ton post, je m’excuse de t'avoir fait passer des nuits blanches


J'ai toujours fait ça xDD
Surtout que je travaille sur quelques projets alors avant d'aller au lit je suis passé sur le forum




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R] batch de mise à jour d'une BDD à partir d'un csv 
encore merci
mis dans le planificateur de tache
ma base se met à jour reguliérement
c'est topissime



Visiter le site web du posteur
Message [R] batch de mise à jour d'une BDD à partir d'un csv 


Montrer les messages depuis:
Répondre au sujet Page 3 sur 3
Aller à la page: <  1, 2, 3
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch