bonjour,

J'ai une TTable nomm�e TableTemporaire, je la remplis gr�ce � la m�thode BatchMove() qui a comme param�tre le r�sultat d'une requ�te SQL et l'attribut batCopy.
Querytempo est un composant TQuery. Quoi qu'il arrive les donn�es de cette base sont �cras�es lors de chaque requ�te.

Code C++ : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
 
TableTemporaire->Open();
TableTemporaire->BatchMove(Querytempo,batCopy);
TableTemporaire->Close();
Le code ci-dessus fonctionne tr�s bien si le fichier DB est pr�sent sur le disque dur. Par contre si mon fichier n'existe pas le programme plante car il ne trouve pas mon fichier DB.


J'ai cependant constat� que ce code (sans la m�thode open())
Code C++ : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
 
TableTemporaire->BatchMove(Querytempo,batCopy);
TableTemporaire->Close();
fonctionne tr�s bien que ma base de donn�es existe ou non.... Si mon fichier DB n'existe pas il est cr�� sur le disque lors du BatchMove().

D'o� ces questions :
  • est-ce que je peux me passer de la m�thode open() ? Car visiblement Batchmove() cr�� mon fichier DB s'il n'existe pas ou l'ouvre s'il existe.
  • est-ce que ce code :
    Code C++ : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    if (TableTemporaire->Exists)
    	        TableTemporaire->Open();
    TableTemporaire->BatchMove(Querytempo,batCopy);
    TableTemporaire->Close();
    est un bon compromis finalement ?
  • quel est le r�le de la m�thode open() dans ce cas l� ?