Erreur dbexpress

Résolu
kdidier51 Messages postés 1 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 25 mars 2008 - 25 mars 2008 à 08:40
tilab Messages postés 95 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 26 octobre 2009 - 25 mars 2008 à 20:11
bonjour,
je souhaite transférer les enregistrements de tables dbase pour les mettre dans des tables Mysql.
la structure du programme est la suivante :
com_2004.active := true  //la table dBase
com_2004.first;
while not com_2004.eof do
   begin
   SQLQuery1.SQL.Clear;
   SQLQuery1.SQL.add('INSERT into communes (departement, libellé) values ('+
      quotedstr(com_2004.fieldbyname('DEP').text)+', '+quotedstr(com_2004.fieldbyname('LIBELLE').text)+')');
   SQLQuery1.execSQL();
   com_2004.next;
end;

SQLQuery1 est rattaché à un SQLConnection de type dBExpress.
Je travaille avec Delphi 7

Mon problème : il y a 38000 communes dans la table dBase. Quand le programme a réalisé environ 2000 requêtes, il y a une erreur : "erreur dBexpress : opération non supportée". La connexion au serveur SQL est arrêtée.

J'ai essayé sur plusieurs postes en XP uniquement. J'ai essayé avec une connexion locale et avec une connexion réseau. Le résultat est le même.

Quelqu'un aurait-il une idée à me proposer ?
Merci
Didier CABY
Reims

1 réponse

tilab Messages postés 95 Date d'inscription mercredi 25 octobre 2006 Statut Membre Dernière intervention 26 octobre 2009 4
25 mars 2008 à 20:11
Salut,
Essaye cette modification peut-être tu comprendras le problème et le programme ne devrait pas se bloquer.

Alex

com_2004.active := true  //la table dBase
com_2004.first;
while not com_2004.eof do
   begin
   SQLQuery1.SQL.Clear;
   SQLQuery1.SQL.add('INSERT into communes (departement, libellé) values ('+
      quotedstr(com_2004.fieldbyname('DEP').text)+', '+quotedstr(com_2004.fieldbyname('LIBELLE').text)+')');
    try
       SQLQuery1.execSQL();
    except
       showmessage(SQLQuery1.SQL.text);
    end;
   com_2004.next;
end;
3
Rejoignez-nous