Mettre en forme une valeur de date ou d’heure pour interroger une table SQL dans Visual FoxPro

Cet article explique comment interroger une valeur de date ou d’heure à partir d’une table SQL Server à l’aide d’une vue distante ou d’une requête directe SQL dans Visual FoxPro.

Version d’origine du produit : Visual FoxPro
Numéro de la base de connaissances d’origine : 145817

INTRODUCTION

Dans Visual FoxPro, vous pouvez mettre en forme les données d’entrée de type date en tant que {mm/jj/yy}. Ou, si vous tapez directement dans un champ de date, vous pouvez mettre en forme les données d’entrée de type de date en mm/jj/aa. Toutefois, si vous mettez en forme les données en tant que {mm/jj/aa} ou mm/jj/aa lorsque vous effectuez une requête distante sur une table SQL, vous rencontrez une erreur ODBC.

Informations supplémentaires

Si vous transmettez des valeurs de date, d’heure ou timestamp de valeurs dans une requête distante à une table SQL, vous devez mettre en forme les données à l’aide des clauses d’échappement suivantes :

  • Valeur de date : {d 'aaaa - mm - jj'}. Dans ce format, aaaa représente l’année, mm représente le mois et jj représente le jour.

  • Valeur de temps : {t’hh : mm : ss'}. Dans ce format, hh représente les heures, mm représente les minutes et ss représente les secondes.

  • Valeur d’horodatage : {ts 'aaaa - mm - jjhh : mm : ss'}.

Dans une requête directe SQL, vous pouvez utiliser la syntaxe suivante pour récupérer la valeur d’un champ de date :

 =SQLEXEC( nConnHandle, "SELECT * FROM TITLES WHERE
 Titles.pubdate<{ts '1995-06-12 12:55:00'}", 'MyCursor')

Vous pouvez utiliser la syntaxe suivante pour créer une vue distante qui interroge les informations de date et d’heure :

 CREATE SQL VIEW sqldate REMOTE CONNECTION sqldate AS SELECT * FROM ;
 dbo.titles WHERE Titles.pubdate<{ts '1985-06-12 12:55:00'}

Dans la Designer d’affichage, assurez-vous que les valeurs de date, d’heure ou d’horodatage sont mises en forme comme vous le souhaitez dans le champ Exemples de l’onglet Critères de sélection. Lorsque vous enregistrez la vue, les informations du champ Exemples sont enregistrées avec la vue. Si vous ouvrez puis modifiez l’affichage, les informations contenues dans le champ Exemples sont perdues. Si vous procédez ainsi, vous devez taper à nouveau les informations.

Remarque

Lorsque vous passez le nom du champ en tant que paramètre dans une requête distante au lieu de transmettre une valeur, vous ne rencontrez pas d’erreur ODBC, car Visual FoxPro effectue une conversion.

References

Odbc 2.0 Programmer’s Reference and SDK Guide, pp.50-52, Microsoft Press.