DataSet
Le
Gloup

Bonjours à tous.
J'ai une application qui doit faire une petite synchro entre 2 DB, une en
ASA6 et l'autre en SQL Server 2000.
C'est la même table des 2 côtés avec exactement la même structure.
J'imaginais (naïvement) qu'il était possible de faire un machin du genre:
.
//prendre les données du côté SQL server
sqlDataAdapter1.Fill(dsSQL);
//Faire un merge dans l'autre DataSet et faire un update
// en ASA6
dsASA.Merge(dsSQL.matable);
odbcDataAdapter1.Update(dsASA);
.
Je n'ai pas d'erreur, mais je n'ai absolument rien qui change dans la DB ASA
6. Le but du jeux est d'insérer des enregistrements du côté ASA (la table
est vide) en provenance de SQL Server sans faire de boucle.
Si quelqu'un a une idée sur la manière de faire, son aide sera très
appréciée. Et dans l'affirmative, un update fonctionnerait-il différemment
d'un insert?
Merci à tous.
JL
J'ai une application qui doit faire une petite synchro entre 2 DB, une en
ASA6 et l'autre en SQL Server 2000.
C'est la même table des 2 côtés avec exactement la même structure.
J'imaginais (naïvement) qu'il était possible de faire un machin du genre:
.
//prendre les données du côté SQL server
sqlDataAdapter1.Fill(dsSQL);
//Faire un merge dans l'autre DataSet et faire un update
// en ASA6
dsASA.Merge(dsSQL.matable);
odbcDataAdapter1.Update(dsASA);
.
Je n'ai pas d'erreur, mais je n'ai absolument rien qui change dans la DB ASA
6. Le but du jeux est d'insérer des enregistrements du côté ASA (la table
est vide) en provenance de SQL Server sans faire de boucle.
Si quelqu'un a une idée sur la manière de faire, son aide sera très
appréciée. Et dans l'affirmative, un update fonctionnerait-il différemment
d'un insert?
Merci à tous.
JL
en fait le datset met un flag devant ses lignes pour dire l'action a faire
dessus lors de la mise a jour
INSER, DELETE , UPDATE en sql
votre dataset provenant de sql n'a aucune ligne de flagué vous n'avez fais
que le charger donc d'après lui il n'y a pas d'action a faire si vous faites
if (MonDataSet.haschanges())
MessageBox.show("il y a des changements")
else
MessageBox.show("il n'y a pas de changement)
vous verrez apparaitre la deuxième boite , il faut passer toutes les lignes
du dataset en flag INSERTED topo le dataadapter opérera la commande sql
d'insert
a mon avis le mieu serait de prendre le deuxième dataset et de lui faire
insérer autant de ligne qu'il y en a dans le premier et ensuite de copier
les ligne une a une
parce que j'ai regardé et je n'ai pas trouvé où dire à une datatable que
toutes ses ligne doivent être considérée en insert
il faut aussi vérifier les données présente dans les dataset un petit
MoçnDataSet.WriteXLM(@"c:monfichier.xml") permettra d'écrire sur le disque
le dataset et de vérifier si tout est bon
Sebastien
"Gloup" news:
ASA
chose comme
for(int n;n < dsSQL.matable.Rows.Count;n++)
dsASA.matable.Rows.Add(dsSQL.matable.Rows[n].ItemArray);
odbcDataAdapter1.Update(dsASA);
Merci pour la réponse.
JL
#
faites
lignes
disque
en
genre:
table
différemment
ajoutées car il consomme beaucoup de temps machine autant attendre que tout
soit dans le dataset et le lancer en une fois
Sebastien
"Gloup" news:
faire
fais
copier
DB
Merci
JLE
tout
quelque
sql
faire
que
une
la
"Gloup" news:O%
lignes
n'avez
vous
petit
(la
très