Bonjour à tous,

Je viens de constater un problème sur ma couche d'accès DAO, je fais une requête SQL avec des INNER JOIN, sauf que je viens de me rendre compte que mes INNER JOIN sont réalisés sur des tables non préfixés par le schéma.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
dbCommand.CommandText = " select u1.id_unit_prod, u1.datepoint, u1.volume, u1.updatedate, up.name, up.producteur, tf.type_desc" +
                                        " from " + this.STableName + " u1 " +
                                        " inner join gtm_unite_prod up on up.id_unit_prod = u1.id_unit_prod" +
                                        " inner join gtm_type_filiere_prod tf on tf.type_filiere_id = up.type_filiere_id" +
                                        " where datepoint between @DtStart and @DtEnd " +
                                        " and updatedate = (select max(u2.updatedate) " +
                                                          " from " + this.STableName + " u2 " +
                                                          " where u2.id_unit_prod = u1.id_unit_prod " +
                                                          " and u2.datepoint = u1.datepoint) " +
                                        " order by u1.id_unit_prod, u1.datepoint";
Quand je passe la requête brute dans un SQLSM, j'ai une erreur m'indiquant que la table n'existe pas, alors que dans ADO je n'ai aucune erreur mais un ralentissement assez considérable.
Visiblement il existerait une propriété sur le DBAdapter (MissingSchemaAction) qui par défaut est à "Add" et fait en sorte que ça fonctionne, mais je ne comprends pas comment ça marche exactement.

Avez vous une idée ? Visiblement c'est ce qui cause mon ralentissement.

Merci.