begin process at 2013 06 19 06:20:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

Autre

 > 

PB revopie base sqlite in-memory vers fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

PB revopie base sqlite in-memory vers fichier

mardi 5 mars 2013 à 19:44:28 | PB revopie base sqlite in-memory vers fichier

jaladuvar

Bonjour,

Je désire travailler sur une base sqlite 3, fichier situé sur mon disque dur.
Je parviens à créer son equivalent in-memory, sur laquelle je fais les actions demandées (tris, identifications de doublons, etc.)
Comme ma base contient plus de 10 000 enregistrement je préfère travailler in-memory...
Par contre lorsque j'ai terminé sur une table et que je veux la transférer de la base in-memory dans l'autre cela ne marche pas.
J'ai donc ma base sur fichier ouverte et une base in-memory créée par
Code PHP :
$file_db = new PDO('sqlite:monfichier.sqlite');
    // Set errormode to exceptions
    $file_db->setAttribute(PDO::ATTR_ERRMODE, 
                            PDO::ERRMODE_EXCEPTION);
$memory_db = new PDO('sqlite::memory:');
   // Set errormode to exceptions
   $memory_db->setAttribute(PDO::ATTR_ERRMODE, 
                              PDO::ERRMODE_EXCEPTION);
/**************************************
* Copie table en mémoire pour travail *
**************************************/
    $theresult = $memory_db->exec('ATTACH DATABASE "monfichier.sqlite" as filedb');
    $thequery = 'CREATE TABLE Travail_n AS SELECT * FROM filedb.Fichier_n';
    $theresult = $memory_db->exec($thequery);


J'ai créé cette table Travail_n dans ma base in-memory que je souhaite retransférer vers mon fichier après l'avoir modifiée.
plus loin mes instructions qui "coincent"
Code PHP :
$thequery = "ATTACH DATABASE ':memory:' as mem_base";
$thetst=$file_db->prepare($thequery);
$theresult = $thetst->execute();
echo '<br />attach : '.$theresult.'<br />';


me donne comme résultat
attach : 1
alors que ce devrait être 0 (si tout s'est bien déroulé)

Si j'enchaîne avec l'instruction qui m'intéresse (recopier la table dans le fichier du disque)
Code PHP :
$theresult = $file_db->exec('CREATE TABLE Travail_fini as Select * from mem_base.Travail_n');
echo '<br />Create table : '.$theresult.'<br />';


J'ai
SQLSTATE[HY000]: General error: 1 no such table: mem_base.Travail_n

Ce qui indique bien que la table n'a pas été créée, donc que mon attach n'a pas fonctionné.
J'ai vérifié que mon fichier était accessible en écriture à tous, donc je ne devrais pas avoir de problèmes d'accès.
Si j'agis directement sur la base $file_db tout se passe normalement...

Où ai-je faux ? Merci aux experts
mardi 5 mars 2013 à 23:05:16 | Re : PB revopie base sqlite in-memory vers fichier

stay


$theresult = $memory_db->exec('ATTACH DATABASE "monfichier.sqlite" as filedb');
$thequery = 'CREATE TABLE Travail_n AS SELECT * FROM filedb.Fichier_n';
$theresult = $memory_db->exec($thequery);



Tu initialisés la variable $theresult deux fois.
L'un n'écrase pas l'autre, est-ce normal ?


stéph
mardi 5 mars 2013 à 23:07:35 | Re : PB revopie base sqlite in-memory vers fichier

stay


J'imagine que oui car elle est exécuté sorry, j'ai été trop vite.

stéph


Cette discussion est classée dans : fichier, base, table, db, memory


Répondre à ce message

Sujets en rapport avec ce message

import d'un fichier excel dans une base de données [ par cacourli ] Bonjour a tous,J'aurais une petite question. Je suis entrain de réaliser un import d'excel vers ma base de données, pour cela pas de problème. J'ai co savoir si ma requete SQL a marché [ par meteor34 ] Bonjour,J'ai fait une requete pour savoir si le login et le mot de passe de la personne qui se connecte sont bien présent dans ma base de donnée, pour fichier dans une base MySql [ par GodFa69 ] Salut à tous , je voulais savoir si il était possible d'inclure des fichiers dans une base de donné MySql, et si oui, comment se passe alors la requêt Script vider table dans base de donnée [ par Tazleboss76 ] Bonjour à tous quelqu'un pourrait m'expliquer comment cvider une table dans une base de donnée grâce à un script merci d'avance à tous question chemin d'un fichier .doc ds une base de donne [ par mohamedjayed ] bonjourj'ai une question sur l'ouverture d'un fichier document  a partir de son chemin (nom fich) qui est stocké ds une base de donnée. afin que je pu Fonction de conversion d'un fichier excel vers une base mySQL [ par soulander ] bonjour je dois tranferer les données d'un fichier excel vers une base mySQL. Pour cela on m'a conseillé de convertir mon fichier excel en un fichier Optimisation de connection a une base de donn?|e SQL [ par Teclis01 ] Voil¨¤ en fait j aimerais savoir comment optimiser les connection a une bas de donn¨¦es SQL. J aimerais savoir ds quel cas on doit se reconnecter a un probleme d'incrementation dans une table MySql [ par nicofree ] salut a tous, et tout d'abord je veux dire merci a qui me repondra à l'avance, car j'ai la facheuse tendance a ne pas repondre quand mon probleme est  valeur et formulaire [ par sheorogath ] slt voila j'ai un probleme pour entrer des valeurs dans un base de donnees mysql nomme "sheorogath_db" sur une table (deja cree) appeler classement . Comment traduire, si rien dans la table d'une base, echo"rien dans la base" [ par daveda ] hello,j'ai une page web ecrit en php qui affiche ce que j'ai dans ma base de données access.et ce que je voudrai, c'est qu'il me mette "Aucun enregist


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Juin 2013
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 6,646 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales