Je rencontre un problème avec une table Informix liée dans MS SQL Server 2008r2. Quand j'interroge cette table, il semble ignorer certains des critères que je lui passe mais pas d'autres. Par exemple, si je mets une condition dans le champ rowdate, la partie de requête distante du plan d'exécution n'affiche aucune clause WHERE, mais si je mets des critères sur un autre champ tel que ACD, cela s'affiche.Table Informix liée dans MS SQL Server ignorant les critères?
Il semble qu'il ne passe aucun critère sur le champ rowdate mais sur tous les autres.
Je sais que le champ est indexé du côté d'Informix. Si cela aide la table que je lie est d'Avaya CMS et il est lié via le pilote OpenLink ODBC.
EDIT:
Pour autant que je sais qu'il est Informix Dynamic Server 2000 et il est sur Solaris. La colonne apparaît comme un type de données DATE correct. J'ai essayé de passer les critères comme '2010-08-03 00:00:00', '2010-08-03', CONVERT (date, '2010-08-03') et quelques autres variations. Lorsque les données sont renvoyées au serveur SQL, elles sont au format aaaa-mm-jj.
Lorsque je vois le plan d'exécution, je peux voir la requête distante avec tous les autres critères suivi d'un filtre pour le champ rowdate seulement.
Je sais que rowdate est indexé et que le conducteur ne communique normalement que les informations que nous utilisons dans d'autres applications (objets métier et MS Access) et ils n'ont pas un problème
Quelle version d'Informix sur quelle plateforme? Quel est le type de 'rowdate'? À une estimation, c'est DATE mais il pourrait être l'une des variantes de DATETIME telles que DATETIME YEAR TO DAY ou DATETIME YEAR TO SECOND. Est-ce que d'autres colonnes du même type sont traitées de la même manière par les pilotes? ** Superficiellement ** cela ressemble à un problème du côté «client»; c'est-à-dire que si le pilote n'envoie pas le critère, le serveur ne peut pas l'utiliser. Vous souhaiterez peut-être explorer comment exécuter SET EXPLAIN ON afin de voir ce que le SGBD Informix considère comme le SQL à des fins de comparaison avec ce que vous pensez qu'il devrait être vu. –