Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
SQL Pass Through issue
Message
 
 
À
28/08/2008 13:58:28
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Divers
Thread ID:
01342682
Message ID:
01342693
Vues:
11
You can not use { brakets. Use regular ( ) In your case I don't understand why do you need them at all. Also change GROUP BY to just use numbers.

Also instead of string concatenation use TEXT TO lcSQL NOSHOW

>I'm trying to get a SQL Statement that I got working in SQL 2000 Query analyzer:
>
>Declare @cCostCode varchar(30)
>SET @cCostCode = '11708'
>SELECT     TOP 100 PERCENT cast(dbo.EmployeeHours.EmployeeId as TinyInt) as EmployeeID, RTRIM(RTRIM(dbo.EmployeeList.FirstName) + ' ' + RTRIM(dbo.EmployeeList.LastName))
>                      AS Name, SUM(ROUND({ fn HOUR(dbo.EmployeeHours.TimeOut) } + CAST({ fn MINUTE(dbo.EmployeeHours.TimeOut) } AS DECIMAL) / 60, 2)
>                      - ROUND({ fn HOUR(dbo.EmployeeHours.TimeIn) } + CAST({ fn MINUTE(dbo.EmployeeHours.TimeIn) } AS DECIMAL) / 60, 2)) AS Hours1
>FROM         dbo.EmployeeHours INNER JOIN
>                      dbo.EmployeeList ON dbo.EmployeeHours.EmployeeId = dbo.EmployeeList.EmployeeId
>WHERE     (dbo.EmployeeHours.CostCode = @cCostCode)
>GROUP BY dbo.EmployeeHours.EmployeeId, RTRIM(RTRIM(dbo.EmployeeList.FirstName) + ' ' + RTRIM(dbo.EmployeeList.LastName))
>ORDER BY dbo.EmployeeHours.EmployeeId
>
>To work in VFP9sp2, my VFP Code looks like:
>
>
>cCostCode = '11708'
>m.nConnectionHandle = SQLCONNECT('TimeClockPlus')
>? SQLPREPARE(m.nConnectionHandle,;
>	"SELECT TOP 100 PERCENT cast(dbo.EmployeeHours.EmployeeId as TinyInt) as EmployeeID, RTRIM(dbo.EmployeeList.FirstName) + ' ' + RTRIM(dbo.EmployeeList.LastName);
>                      AS Name, SUM(ROUND({ fn HOUR(dbo.EmployeeHours.TimeOut) } + CAST({ fn MINUTE(dbo.EmployeeHours.TimeOut) } AS DECIMAL) / 60, 2);
>                      - ROUND({ fn HOUR(dbo.EmployeeHours.TimeIn) } + CAST({ fn MINUTE(dbo.EmployeeHours.TimeIn) } AS DECIMAL) / 60, 2)) AS Hours1;
>FROM         dbo.EmployeeHours INNER JOIN;
>                      dbo.EmployeeList ON dbo.EmployeeHours.EmployeeId = dbo.EmployeeList.EmployeeId;
>WHERE     (dbo.EmployeeHours.CostCode = ?cCostCode);
>GROUP BY dbo.EmployeeHours.EmployeeId, RTRIM(dbo.EmployeeList.FirstName)+' '+RTRIM(dbo.EmployeeList.LastName);
>	ORDER BY dbo.EmployeeHours.EmployeeId",;
>	'QueryName')
>
>SQLEXEC(m.nConnectionHandle)
>
>BROWSE LAST NOWAIT
>
>SQLDISCONNECT(m.nConnectionHandle)
>
>
>I get the error "Command contains unrecognized phrase/keyword." and VFP highlights "ORDER BY dbo.EmployeeHours.EmployeeId",;"
>
>It's been a while since I've done anything significant in VFP and I'd like to start getting back into it, but I'm spinning my wheels here.
If it's not broken, fix it until it is.


My Blog
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform