supprimer un enregistrement vide dans une table oracle
Bonjour,
j'utilise le code suivant pour insérer des données lues dans un fichier texte dans une table oracle.
Les champs de la table compose la clé primaire et quand je rencontre une ligne double dans mon fichier j'insère une ligne vide sans insérer de données ce qui fait qu'après j'arrive plus à insérer parceque ne pouvant pas réinsérer une ligne vide à cause de la clé.
Et dans mon code je suis obligé d'insérer une ligne vide avant d'inséer des données.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
Try
with Form1.ADOTable1 Do
begin
// on insère un enregistrement vide
Append;
// qu'on remplit...
FieldValues['ch1'] := 'val1';
FieldValues['ch2'] := 'val2';
FieldValues['ch3'] := 'val3';
Post;
end;
nb_trait := nb_trait + 1;
Except
nb_doubl := nb_doubl + 1;
End; |
Donc j'ai pensé à supprimer la ligne courante à chaque fois que je suis au niveau de "l'exception" ce qui me permettrait d'insérer une ligne vide à la prochaine itération.
j'ai pensé à delete ou ExecSQL mais je ne vois pas comment l'uiliser .
Si quelqu'un a une idée.
Re: supprimer un enregistrement vide dans une table oracle
Citation:
Envoyé par shurized
Les champs de la table compose la clé primaire et quand je rencontre une ligne double dans mon fichier j'insère une ligne vide sans insérer de données ce qui fait qu'après j'arrive plus à insérer parceque ne pouvant pas réinsérer une ligne vide à cause de la clé.
Je ne pense pas que ce soit une bonne idée de prendre tous la combinaison de tous les champs comme clé primaire. Un index auto-incrémenté aurait pu t'épargner tous cà...
Sinon, tu peux utiliser une requête simple pour effacer les champs vides avant de poster un nouvel enregistrement.
Code:
1 2
|
Delete From NomTable Where ch1='' |
Un cours de SQL interessant en ligne:
:arrow: http://sqlpro.developpez.com/
A+