J'effectue des interrogations vers une base de donnée (oracle, 8i)
j'utilise les objets adodb connection et adodb.recordset
Mon problème (j'en ai eu d'autres mais celui-ci demeure) est que si, dans mon select, je fais appel à des colonnes dont le type est différent d'un type caractère (varchar2 par exemple), la requête plante.
Si j'appelle des colonnes qui contiennent des enregistrements de type entiers, décimaux ou numériques, ça ne passe pas et je suis obliger - dans la requête - de convertir ces colonnes en caractères (to_char).
C'est un peu lourd, non ?
Avez-vous déjà rencontré ce problème ? Comment puis-je le contourner ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 With MyConnect .ConnectionString = "ODBC;UID=DWH;PWD=DWH;DSN=S0156_XDWA;" .Open .CursorLocation = adUseClient End With MyRequete = "select " _ & "to_char(ID_RPN_NIV) niv," _ & "to_char(sum(decode(cd_rpn_grp_grp_pvt_cla,'G1',1))) G1," _ & "to_char(sum(decode(cd_rpn_grp_grp_pvt_cla,'G2',1))) G2," _ & "to_char(sum(decode(cd_rpn_grp_grp_pvt_cla,'G3',1))) G3 " _ & "FROM vw_pvt_classif_grp_pvt vw, tb_d_ref ref, tb_i_vte_ref_jou vte " _ & "WHERE vte.id_pvt=vw.id_pvt and vte.id_ref=ref.id_ref and " _ & "vte.id_tps_jou BETWEEN " & DtDeb & " AND " & DtFin & " " _ & "AND ref.cd_ref='" & RefAndre & "' and " _ & "id_rpn_niv = " & Str(idclaniv) & " " _ & "GROUP BY to_char(ID_RPN_NIV);" With MyRecSet .CacheSize = 50 .Open MyRequete, MyConnect, adOpenDynamic, adLockReadOnly End With
Partager