Bonjour,
J'ai deux problèmes assez embêtant.
Le premier est la gestion de l'accès conurentiel sur une mise à jour de table dans la BD. Je précise que je ne lis et modifie aucun champs de format date ou de floatant. Le problème est différent.
Voilà j'utilise une base de données RDB (aucune importance) en ODBC.
Et j'ai une requête du type
Ma requête de select fonctionne bien et ma dataTable me retourne des valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 sqltext = "SELECT champs1, champs2, champs3 " + "FROM table " + "WHERE champs1 = ?"
Sauf que ... le champs 3 peut contenir une valeur NULL (j'ai le droit)
Du coup quand je fais
j'ai une exception de type Accès concurentiel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 bldr = new OdbcCommandBuilder(myDataAdapter) myDataAdapter.update(myDataSet.Tables[myTableToUpdate]
Je pense que c'est dans mon champs nul (même si je ne le met pasd à jour car la commande de mon OdbcBuilder fait une requete de type
Et Champs3 = null : je ne suis pas sur qu'il interprête ceci correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2"UPDATE table SET Champs1= ?, Champs2= ?, Champs3= WHERE ((Champs1= ?) AND (Champs2= ?) AND (Champs3= ?) "
Mon deuxième problème est une violation de contrainte.
En effet je veux mettre à jour plusieurs tables dans la meme transaction sauf que un des champs que je souhaite mettre à jour est un champs fils d'une table et je souhaite également mettre à jour le champs père de l'autre table.
Je me suis dit naïvement que si je traite cette mise à jour dans la meme transaction je n'aurai pas de problème de violation de contrainte ... Apparemment ce n'est pas le cas.
Quelqu'un peut il m'aider sur ces sujets ou à défaut me proposer un contournement.
Merci
Partager