-
INSERT INTO imposant
Bonjour à tous,
Si je me suis trompé d'endroit, merci de me le signaler pour que je puisse modifier la destination de mon sujet.
Dans ma base de données Firebird, j'ai plusieurs tables qui font plus de 150 champs.
Dans mon code source, je dois insérer une requête de type "INSERT INTO" avec ces 150 champs.
Le problème, c'est que le type "string" de delphi semble trop petit pour contenir ma requête : "La propriété fetchBlob doit être activé pour utiliser cette méthode". Lorsque je réduit la taille de la requête cela fonctionne parfaitement.
J'ai trouvé une solution pas très jolie qui consiste à ajouter les 10 premiers champs avec "INSERT INTO" et je mets à jour la ligne avec des "UPDATE" poru les 140 champs par pas de 10 :
INSERT INTO ...
UPDATE ...
UPDATE ...
...
UPDATE ...
Avez-vous une autre solution "plus jolie" à me proposer ?
le type blob n'existe pas sous Delphi ?
Merci d'avance pour vos réponses (en espérant avoir été le plus clair possible)
-
peut etre en revoyant la structure de ta table. 150 champs ca me parait enorme ! n'aurais tu pas moyen de reduire ce nombre ?
-
Il me semble qu'il faut déclarer une WideString. Mais je ne sais pas si le compilo ne gère pas directement la redéclaration d'une String en WideString ?
-
Merci beaucoup pour vos réponses.
Tout d'abord pour répondre à guillemouze, une solution consisterait à fractionner les tables présentant plus ou moins 50 champs. Mais j'aimerai m'y attarder à l'avenir car l'application est assez conséquente, la base de données aussi.
archonte, j'ai testé ta solution mais ne fonctionne pas. L'erreur se produit à l'exécution du programme à la ligne présentant l'importante requête. Donc que ce soit "string" ou "WideString", cela ne change rien.
Edit : C'est bon, j'ai la solution. Avant de faire ma requête d'insertion, je réalise une requête de sélection mais un des champs est de type Blob. Donc forcement ca coince un peu avec string et blob.
Encore merci pour votre aide !