Delphi (copier des tables)

Delphi (copier des tables) - Delphi/Pascal - Programmation

Marsh Posté le 13-10-2004 à 17:11:56    

voir en bas :o
 
 
la seule facon que jai trouver pour le moment c de faire  

Code :
  1. //pour chaque table
  2. AdoTable1.Close;
  3. ADOTable1.TableName:=tablenamelist[l];
  4. AdoTable1.Open;
  5. //puis pour chaque champ
  6. ADOTable1.fields.Fields[loopC]


 
 
existe til une methode qui permet de faire ca mais d'un seul coup pour toute la bd et non pas table par table ?( comme ADOconnection.GetFieldNames)
 
jviens de verifier, ca prend surtout du temps pour les tables ou il y a beaucoup de record donc le open va chercher toutes ces infos et c cela qui prend du temps (alors que je nai besoin que de la structure)


Message édité par red faction le 11-11-2004 à 12:15:54
Reply

Marsh Posté le 13-10-2004 à 17:11:56   

Reply

Marsh Posté le 14-10-2004 à 11:46:41    

Une solution est d'utiliser un TADOQuery et de faire un truc genre :
SELECT * FROM LaTable WHERE 0 = 1
ça te retournera un truc vide, mais t'as quand même accès aux champs


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-10-2004 à 17:11:11    

ok c ce a quoi javais pense mais je trouvais ca un peu sale...

Reply

Marsh Posté le 15-10-2004 à 17:32:46    

jai encore 2 questions :

- si je veux changer le type dun champ il a ya moyen de le faire de delphi ou il faut y aller a coup de requete SQL????  
 
- DataSize renvoie parfois zero parfois renvoie une valeur erronée, ca change selon

 

Code :
  1. ADOQuery.FieldDefList.FieldDefs
  2. ADOQuery.Fields.Fields


 
faut absolument switcher entre les 2 tout le temps?


Message édité par red faction le 17-10-2004 à 15:34:31
Reply

Marsh Posté le 15-10-2004 à 18:25:22    

red faction a écrit :

ok c ce a quoi javais pense mais je trouvais ca un peu sale...


 
Bah c'est nettement plus propre que d'ouvrir la table, vu que l'ouverture de la table va lire toutes les données qui sont dedans [:mlc]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-10-2004 à 15:34:43    

[:yoyoz]

Reply

Marsh Posté le 10-11-2004 à 16:56:58    

[:yoyoz] pour eviter de recreer un topic pour rien
 
je voudrais copier plusieurs tables d'une database a lautre en utilisant ADO sous delphi.
 
je doit generer du sql puis lenvoyer au serveur (create table 'test' (xxx varchar ...) et reinserer les données a chaque fois ou il y a une methode plus appropriée (en utilisant directement l'api par exemple)?


Message édité par red faction le 10-11-2004 à 20:06:58
Reply

Marsh Posté le 10-11-2004 à 21:36:40    

Ça dépend des SGBD...  
A priori la recréation de la table et le remplissage c'est ce qu'il y a de plus simple/standard je pense.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-11-2004 à 21:49:46    

Je pars d'un fichier sauvé grace a la methode saveToFile dun objet TADOQuery (donc chaque table se retrouve dans un fichier) ... peut etre quil existe une facon dexporter une database?
par la suite jaimerai reecree c tables vers une base de données MsAccess/sql server sans avoir a creer des commandes sql puis faire des execute a chaque fois, mm chose pour changer le type dun champ (je doit comparer deux database en fait)


Message édité par red faction le 10-11-2004 à 21:50:00
Reply

Marsh Posté le 10-11-2004 à 22:55:32    

Je savais même pas qu'il y avait un SaveToFile pour les query :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 10-11-2004 à 22:55:32   

Reply

Marsh Posté le 10-11-2004 à 22:58:31    

ca maide bcp http://forum.hardware.fr/icones/message/icon14.gif

Reply

Marsh Posté le 11-11-2004 à 12:40:55    

[:yoyoz]

Reply

Sujets relatifs:

Leave a Replay

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