Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
VFP Select statement does not work in Sql Server
Message
De
02/03/2010 01:24:11
 
 
À
02/03/2010 01:00:21
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9 SP2
Database:
Visual FoxPro
Divers
Thread ID:
01451907
Message ID:
01451915
Vues:
62
>>This query runs fine in VFP Sql, but it does not work when I try to use it against Sql Server.
>
>One thing I see at first is that you are using .f. syntax which is not supported. You would have to replace that with 0.

Yep.

Revised FixSql() method to handle that. Seems to work fine:
Lparameters tcSql

*-- 2010-02-28: Added this method to fix up my Sql statements...
*-- My Sql statements are written for VFP Selects, so when the run against Sql Server, they need a little work
*-- to adjust them to the correct syntax for Sql Server.

*-- See other ways to handle this here: http://www.west-wind.com/wwThreads/default.asp?Thread=2PP17MHZ0&MsgId=2PR1FFRHX

If this.nDataMode = 2
 tcSql = Strtran(tcSql, 'nvl(', 'IsNull(', 1, 999, 1)
 tcSql = Strtran(tcSql, '==', '=', 1, 999, 1)
 tcSql = Strtran(tcSql, 'substr(', 'SubString(', 1, 999, 1)

 tcSql = Strtran(tcSql, '.t.', '1', 1, 999, 1)
 tcSql = Strtran(tcSql, '.f.', '0', 1, 999, 1)

 tcSql = Strtran(tcSql, '.desc', '.[desc]', 1, 999, 1) && Sadly, some of my tables use these reserved words as field names
 tcSql = Strtran(tcSql, 'desc,', '[desc],', 1, 999, 1) 
 tcSql = Strtran(tcSql, 'as desc', 'as [desc]', 1, 999, 1) 
 tcSql = Strtran(tcSql, 'by desc', 'by [desc]', 1, 999, 1)

 tcSql = Strtran(tcSql, '.order', '.[order]', 1, 999, 1)
 tcSql = Strtran(tcSql, 'order,', '[order],', 1, 999, 1) 
 tcSql = Strtran(tcSql, 'as order', 'as [order]', 1, 999, 1)
 tcSql = Strtran(tcSql, 'by order', 'by [order]', 1, 999, 1)

 tcSql = Strtran(tcSql, '.view', '.[view]', 1, 999, 1) 
 tcSql = Strtran(tcSql, 'view,', '[view],', 1, 999, 1) 
 tcSql = Strtran(tcSql, 'as view', 'as [view]', 1, 999, 1)
 tcSql = Strtran(tcSql, 'by view', 'by [view]', 1, 999, 1)

 tcSql = Strtran(tcSql, ' ReadWrite', '', 1, 999, 1) && Strip this out. Sql Server queries are automatically ReadWrite.
EndIf

Return tcSql
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform