Bonsoir,
J'ai besoin d'aide pour faire fonctionner un bout de code tcl et mettre à jour une base de données sqlite.
La base de données contient deux tables : maj et chemin
les champs en cause ici sont maj.m_path et chemin.c_id, chemin.c_path
La table chemin existe et est vide lorsque je lance le script.
le code que j'ai écris doit
faire
lire une ligne de la table maj
je recupère le champ m_path dans la variable $m_path
je récupèrer c_id dans la table chemin si chemin.c_path = maj.m_path
si c_id existe pas
il faut saisir un nouvel enregistrement dans la table chemin ayant c_id et m_path
boucler sur ligne suivante.
Voici ce script :
package require sqlite3
# Recherche du fichier de la BDD
set f "bdd/partitions.db"
if { ![file exists $f]} {
puts stderr "Erreur accès à la base partitions."
exit 1
}
# Ouverture de la BDD
sqlite3 db1 $f
# Itération de mise à jour table chemin
set idc 1
db1 eval {SELECT * FROM maj} {
puts "maj : $m_path"
db1 eval {SELECT * FROM chemin WHERE c_path = $m_path} {
puts "chemin $m_path"
if {$c_id eq ""} {
puts "chemin vide"
db1 eval {INSERT INTO chemin($idc, c_path) VALUES($Idc, $m_path)}
incr idc
} else {
puts "chemin existant: $c_id"
}
}
}
J'ai placé des puts dans mon code...et a aucun moment je passe dans les puts notés chemin.
Merci pour votre aide.
Partager