Bonjour,
J'utilise Firedac CData Excel pour tenter de remplir une feuille (tableau de code GS1)
(Delphi 10.3, FMX)
J'essaye de faire des insertions de données
Comme vous le constatez la première colonne B est un numérique (idem pour K)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 const GS1SQL = 'Insert into "Liste de produits" (B,C,D,K,L,N) values (?,?,?,?,?,?)'; .... GS1.ExecSQL(GS1SQL,[10001077, Format('%s %s %s Taille %s', [QArticle.FieldByName('NOM').asString, QArticle.FieldByName('ASSORTIMENT').asString, QArticle.FieldByName('DESCRIPTION').asString, pts]), Trim(QArticle.FieldByName('LIBELLE_MARQUE').asString), 1,'H87', format('%s%.3d',[FDQuery1.FieldByName('SKUCode').AsString, pt]) ], [ftInteger,ftString,ftString,ftinteger,ftstring,ftString]); // force le format des paramètres end; ...
La plupart du temps cela se passe correctement (test sur 1200 produits)
mais les premières lignes comporte des erreurs que je qualifierai pour l'instant d'aléatoires
![]()
Comme vous le constaterez sur cette image la première colonne est quelquefois transmise comme chaine '10001077 au lieu de nombreet, fait étonnant la colonne K à le comportement inverse
(à partir de la ligne 100 tout est en ordre)
Avez vous une idée de ce qui se passe ?
Je vais tenter deux autres approches :
- l'utilisation d'une requête au lieu d'un ExecSQL (pourtant pratique)
- le remplissage dans une feuille vierge
Mais si quelqu'un passe par là avant que je rapporte ce que ces deux essais vont donner, je prends toute suggestion
Idem si vous avez une idée pour transférer ces données dans le tableau.
Détails importants :
- je n'ai pas Excel sur mon poste (c'est un peu pourquoi j'utilise CData)
- je voudrais éviter une manipulation via CSV (pas tant pour moi que quand il s'agira d'utilisateur qui utiliseront le programme)
- comme il s'agit de Cdata, les fichiers Excel sont au format xlsx
Partager