Limitation de la propriété "CommandText" du composant "TADOCommand"

Signaler
Messages postés
129
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
25 juillet 2012
-
informatixo
Messages postés
129
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
25 juillet 2012
-
    Bonsoir le forum,

En utilisant le composant "TADOCommand" et sa propriété "Command Text" sur une base de données Access,  j'ai rencontré des difficultés.

En effet, je m'en suis servi pour créer une table via l'instruction "CREATE TABLE" que j'ai réalisé dynamiquement en parcourant les champs d'une table existante. Le but étant au final de copier une table de 131 champs d'une base de données Access à une autre base de données Access.

J'ai affecté le contenu de la variable de type String qui ma servi à construction dynamique de la requête à la propriété "CommandText".

Mais lors de l'exécution de la requête (via la méthode "Execute"), j'ai eu droit à l'erreur "L'enregistrement est trop long". J'ai fais quelques recherches et je me suis aperçu que l'erreur apparaît dès que le contenu de la propriété "CommandText" dépasse 12 000 octets (soit 4000 caractères pour un String).

Pour contourner le problème, je me suis plié à cette limite en créant la table en plusieurs fois (une fois CREATE TABLE et les fois suivantes avec ALTER TABLE) en stockant successivement les différentes chaînes de 4000 caractères dans un TStringList.

Ma première question est de savoir si la propriété "CommandText" possède bien une limite ou si c'est de mon côté que j'ai un problème ?

Ma seconde question est de savoir si ma solution de contournement est bien valable ?

Peut-être quelqu'un aurait-il une meilleure idée ?

Merci d'avance de l'aide que vous m'apporterez et de l'attention que vous porterez à ce message.

Cordialement,
informatixo

Que la force soit avec vous !

2 réponses

Messages postés
129
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
25 juillet 2012
1
Une erreur s'est glissé dans mon dernier message, 12 000 octets correspondent à 3 000 caractères car un String vaut 4 octets et non pas 4 000 caractères.

Que la force soit avec vous !
Messages postés
129
Date d'inscription
mercredi 4 février 2004
Statut
Membre
Dernière intervention
25 juillet 2012
1
Je me suis trompé car mon ALTER TABLE ne passe pas et j'ai encore droit à un "L'enregistrement est trop long".


N'y a t-il pas un moyen ?


Quelqu'un a bien du être dans le même cas que moi un jour, non ?


Je commence à désespérer !

Que la force soit avec vous !