L
Ludovic Lemarinel
Bonjour,
J'ai developpé une application sous VB.Net qui utilise un datagrid .
Ce datagrid utilise un dataTable d'un DataSet comme datasource. ce dataset
est rempli de la sorte :
'Debut du code
requete = "SELECT ln_nomencdtl_articleentree as 'Article', CASE WHEN
e.en_item_key IS NULL THEN po_nstk_desc ELSE en_item_desc END as
'Désignation', CASE WHEN e.en_item_key IS NULL THEN 'UN' ELSE uom_key END as
'Unité', CASE WHEN en_type_key IN(2, 10) THEN CASE " & poidsun & " WHEN 0
THEN ln_nomencdtl_quantite ELSE ln_nomencdtl_quantite * " & poidsun & " END
ELSE CASE " & poidsun & " WHEN 0 THEN ln_nomencdtl_quantite ELSE
ln_nomencdtl_quantite * " & poidsun & " END END as 'Qté Unités', CASE WHEN
en_type_key IN(2, 10) THEN (ln_nomencdtl_quantite * 100) ELSE 0 END as
'Qté', en_type_key FROM ln_nomencdtl_tbl d LEFT JOIN en_item_tbl e ON
d.ln_nomencdtl_articleentree = e.en_item_key LEFT JOIN po_nstk_tbl ns ON
d.ln_nomencdtl_articleentree = ns.po_nstk_key AND d.gl_cmp_key =
ns.gl_cmp_key WHERE d.gl_cmp_key='" & pGL_CMP_KEY & "' AND sf_plant_key='" &
pUsine & "' AND ln_nomenchdr_articlesortie='" & tArticlePF.Text & "' AND
ln_nomenchdr_ver='" & NumVer & "' AND ln_machine_idmachine = " & idmachine
da = New SqlDataAdapter(New SqlCommand(requete, sqlcn))
ds.Tables.Clear()
da.Fill(ds)
'Fin du code
Avec les déclarations qui vont bien...
Tout ce code fonctionne à merveille sur un Serveur SQL Server 7 sous Windows
NT4.
Par contre, lorsque je lance mon appli en me connectant à un Serveur Windows
Server 2003 avec SQL Server 2000, rien ne va plus: ca fonctionne -presque-
bien, sauf qu'il y a un moment, ou ma requete me remplit mon dataTable avec
0 (zero) ligne, alors qu'en executant ma requete dans un analyseur de
requete, elle me renvoie 7 lignes.
La base de données installée sur le serveur SQL Server 2000 est la copie
conforme de la base installée sur le SQL Server 7, et j'ai essayé les
différents niveaux de compatibilité disponibles (de 6.5 à 8.0), sans
resultat...
Quelqu'un a-t-il déjà vécu ce probleme? et si oui, avez vous une solution ?
Merci.
J'ai developpé une application sous VB.Net qui utilise un datagrid .
Ce datagrid utilise un dataTable d'un DataSet comme datasource. ce dataset
est rempli de la sorte :
'Debut du code
requete = "SELECT ln_nomencdtl_articleentree as 'Article', CASE WHEN
e.en_item_key IS NULL THEN po_nstk_desc ELSE en_item_desc END as
'Désignation', CASE WHEN e.en_item_key IS NULL THEN 'UN' ELSE uom_key END as
'Unité', CASE WHEN en_type_key IN(2, 10) THEN CASE " & poidsun & " WHEN 0
THEN ln_nomencdtl_quantite ELSE ln_nomencdtl_quantite * " & poidsun & " END
ELSE CASE " & poidsun & " WHEN 0 THEN ln_nomencdtl_quantite ELSE
ln_nomencdtl_quantite * " & poidsun & " END END as 'Qté Unités', CASE WHEN
en_type_key IN(2, 10) THEN (ln_nomencdtl_quantite * 100) ELSE 0 END as
'Qté', en_type_key FROM ln_nomencdtl_tbl d LEFT JOIN en_item_tbl e ON
d.ln_nomencdtl_articleentree = e.en_item_key LEFT JOIN po_nstk_tbl ns ON
d.ln_nomencdtl_articleentree = ns.po_nstk_key AND d.gl_cmp_key =
ns.gl_cmp_key WHERE d.gl_cmp_key='" & pGL_CMP_KEY & "' AND sf_plant_key='" &
pUsine & "' AND ln_nomenchdr_articlesortie='" & tArticlePF.Text & "' AND
ln_nomenchdr_ver='" & NumVer & "' AND ln_machine_idmachine = " & idmachine
da = New SqlDataAdapter(New SqlCommand(requete, sqlcn))
ds.Tables.Clear()
da.Fill(ds)
'Fin du code
Avec les déclarations qui vont bien...
Tout ce code fonctionne à merveille sur un Serveur SQL Server 7 sous Windows
NT4.
Par contre, lorsque je lance mon appli en me connectant à un Serveur Windows
Server 2003 avec SQL Server 2000, rien ne va plus: ca fonctionne -presque-
bien, sauf qu'il y a un moment, ou ma requete me remplit mon dataTable avec
0 (zero) ligne, alors qu'en executant ma requete dans un analyseur de
requete, elle me renvoie 7 lignes.
La base de données installée sur le serveur SQL Server 2000 est la copie
conforme de la base installée sur le SQL Server 7, et j'ai essayé les
différents niveaux de compatibilité disponibles (de 6.5 à 8.0), sans
resultat...
Quelqu'un a-t-il déjà vécu ce probleme? et si oui, avez vous une solution ?
Merci.