Créer/Manipuler base de données à partir d'un fichier .db

Créer/Manipuler base de données à partir d'un fichier .db - SQL/NoSQL - Programmation

Marsh Posté le 21-04-2008 à 17:56:28    

Bonjour à tous !
 
Je joue souvent au poker avec un logiciel sous windows, et le logiciel me cree un fichier .db qui regroupe l'ensemble des données correspondants à mon compte (tournois joués, etc...). J'aimerais pouvoir manipuler ce fichier pour pouvoir avoir une base de données qui contienne ces données.
 
Quand j'ouvre ce fichier avec le bloc note, la plupart des caractères sont illisibles, les autres on peut lire le nom de certaines tables et champs de la base de donnée. J'ai déjà travaillé sur des BDD avec easyphp, donc sous mysql/phpmyadmin, et aussi consulter la base avec des pages php, donc le mieux ce serait que j'arrive à convertir ce fichier .db en fichier .sql par exemple, mais même en cherchant sur google je n'ai pas arrivé un logiciel qui pouvait faire ca. J'ai aussi essayé d'ouvrir ce fichier avec acces mais sans succès.
 
Ce fichier .db est modifié régulièrement, à chaque fois que j'utilise le logiciel, donc une fois l'histoire de la base réglée, il faudrait que je puisse aussi trouver un système pour utiliser ce fichier automatiquement dans le meilleur des cas.
 
Je vous remercie pour vos réponses ou toutes vos suggestions ! :hello:

Reply

Marsh Posté le 21-04-2008 à 17:56:28   

Reply

Marsh Posté le 21-04-2008 à 19:40:49    

tu dois trouver de quel type de db il s'agit en premier.

Reply

Marsh Posté le 21-04-2008 à 19:59:21    

casimimir a écrit :

tu dois trouver de quel type de db il s'agit en premier.


Il y a un moyen de reconnaitre le type de db que c'est ? Si oui comment ?

Reply

Marsh Posté le 21-04-2008 à 20:04:44    

Ah ! j'ai trouvé :)
A la première ligne, il y a marqué : "SQLite format 3"
Ca aide ?

Reply

Marsh Posté le 21-04-2008 à 20:36:48    

oui. c'est du sqlite.:D


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-04-2008 à 20:39:53    

et il existe un logiciel pour manier graphiquement la BDD ?

Reply

Marsh Posté le 21-04-2008 à 20:42:03    

Ooo base sait certainement faire ça.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 21-04-2008 à 21:38:12    

merci pour ta réponse. Alors j'ai téléchargé le logiciel, et quand j'ouvre BDD.db, il me dit de choisir un filtre entre bdd odf, starchart, ooo diagramme, help content, diagramme odf, ou rapport de bdd odf.
 
Si je choisis le premier, cad bdd odf, je retrouve les cadres taches requetes et base de données mais vide je sais pas si c'est normal, et quand je clique sur Tables j'ai l'erreur "impossible d'etablir la connexion avec la source de données BDD. The driver " could not be loaded"
 
Je vois pas trop quoi faire

Reply

Marsh Posté le 22-04-2008 à 20:30:32    

Je suis arriver à ouvrir le fichier et donc créer la base avec sqlite manage et Wamp, par contre j'aimerais savoir s'il existe un moyen de mettre à jour automatiquement la base de donnée car le fichier BDD.db va etre régulièrement et j'ai pas trop envie de recréer une base à chaque fois :S
 
Merci

Reply

Marsh Posté le 03-05-2008 à 13:17:36    

J'ai du nouveau !
 
J'ai installé wamp, et ouvert le fichier bdd.db avec sqlitemanager, et peux voir correctement toutes les tables. Ensuite j'ai essayé de créer une page php pour gérer les données de la base justement, mais j'ai plusieurs problèmes au lancement de la page :  
 
Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database in C:\Program Files\Wamp\www\untitled.php on line 306
Warning: sqlite_query() expects parameter 1 to be resource, string given in C:\Program Files\Wamp\www\untitled.php on line 334
Warning: sqlite_error_string() expects exactly 1 parameter, 0 given in C:\Program Files\Wamp\www\untitled.php on line 334
 
Voici les lignes correspondantes à ces erreurs :  
Ligne 306 :  

Code :
  1. function connect()
  2. {
  3.   $conn = sqlite_open("C:/Program Files/.../bdd.db" );
  4.   return $conn;
  5. }


Ligne 334 :  

Code :
  1. $res = sqlite_query($conn, $sql) or die(sqlite_error_string());


 
Voila j'espère que vous pourrez m'aider à résoudre ces problèmes.
 
Bonne journée

Reply

Marsh Posté le 03-05-2008 à 13:17:36   

Reply

Marsh Posté le 08-05-2008 à 19:24:08    

Up!
 
S'il vous plait, je dois pas être le seul à avoir ce genre de problèmes, j'ai cherché sur google mais rien trouvé de vraiment utile ou en tout cas quelque chose qui résolvait mon problème.
 
Au pire des cas je sais pas si c'est possible de migrer une base de données de sqlite vers mysql, c'est faisable ?
 
Bonne soirée :jap:

Reply

Marsh Posté le 27-02-2009 à 11:39:37    

J'ai une solution sous DOS, mais c'est sous php que je la veux, donc elle ne me convient pas.
 
Il existe un programme sqlite3.exe, téléchargeable sur Internet.
Dans une fenêtre DOS, il est possible avec ce programme de convertir le fichier machin.db en un fichier machin.sql, qui est en fait un fichier texte pour générer la base et ses données. Il suffit de parcourir ce fichier pour y retrouver les quelques données que l'on souhaite récupérer.
Supposons que tout est sous c:\temp (programme et fichier).
Voici la suite des instructions :
 
Démarrer -> Exécuter -> cmd
c:
cd \temp
sqlite3.exe machin.db
.output machin.sql (ou .output trucmuche.txt si on veut)
.dump
.output stdout
.exit
 
Ne pas oublier les "." !
Ceci génère le fichier en mode texte qui permet de créer les tables et de les recharger avec les données existantes. Mais on peut aussi se contenter de lire le fichier et de récupérer les quelques données dont on a besoin.
 
J'aurais aimé faire un batch qui automatise tout cela, mais je ne trouve pas la bonne syntaxe, si toutefois c'est possible.
Sous php, a priori, il faudrait recréer la base et ensuite en extraire les données, mais dans mon cas, cela pose un problème car je peux avoir des traitements qui se chevauchent avec les mêmes tables venant d'utilisateurs différents, et un gros sac de nœuds à l'arrivée.

Reply

Marsh Posté le 27-02-2009 à 12:16:57    

J'ai pu faire un fichier batch qui fonctionne :
 
Il contient ceci :
sqlite3.exe machin.db .out > machin.sql
rem Vérification du résultat :
type machin.sql
 
Reste à voir si php va accepter de lancer ce batch :
<?php
exec('test.bat');
?>
 
Et le tour est joué. Il reste à paramétrer les noms de fichiers en entrée et en sortie en se rappelant les vieilles commandes apprises du temps de MS/DOS :
sqlite3.exe %1.db .out > %1.sql
rem Vérification du résultat :
type %1.sql
 
Sous DOS, on lance test machin
Sous php :
<?php
$monFichier = "machin";
exec('test.bat '.$monFichier);
?>
 
Il reste seulement à mettre les bons chemins pour que tout ne traîne pas dans le répertoire courant et à écrire le programme qui lira le fichier texte machin.sql pour en extraire les données voulues ou pour le modifier.


Message édité par Kiosquec le 27-02-2009 à 14:28:04
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed