Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
SQL Pass Through issue
Message
 
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows XP SP2
Network:
Windows 2003 Server
Database:
MS SQL Server
Miscellaneous
Thread ID:
01342682
Message ID:
01342712
Views:
12
Jon,

For readability and easier maintenance use TextMerge. You can copy your query from QA verbatim and adjust a parameter
Also I would use DATEPART() instead of 'fn{}'.
TEXT TO lcSql NOSHOW PRETEXT 15
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
>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.
--sb--
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform