What is wrong with this query and what is the correct syntax

SELECT OrderID, cdate([OrderDate]), ShipCity FROM [Copy Of dbo_Orders] WHERE (([OrderDate] >= ?) AND ([OrderDate] <=?))

If I enter 10/1/2008 and 10/10/2008 I get back the correct date range BUT I get every record for every year!

[Copy Of dbo_Orders].[OrderDate] is Type Text and I thought doing the conversion with cdate would clean up the results.
[Copy Of dbo_Orders] is a copy of the Orders table from a SQL NORTHWND database.
If I run the query against [dbo_Orders] ([OrderDate] being DateTime) it returns the correct data so it seems the problem comes from [OrderDate] being Text.

Solution: What is wrong with this query and what is the correct syntax

try query2 or query3

query2  converts to real date

query3  as is (text)