50分求解 jBuilder中用控件操作数据库问题
我用QueryDataSet组件操作Access数据源,这条语句老是有问题。 num是ParameterRow的一个参数名字。
SELECT books.book_name,borrow.borrow_date,customer.cust_name FROM books,borrow,customer WHERE books.book_id=borrow.book_id and customer.cust_id = borrow.cust_id and DateDiff( "d ",borrow.borrow_date,date( ))> :num
看提示,应该是DateDiff( "d ",borrow.borrow_date,date( ))的问题,但这条语句在Access中运行没有问题
------解决方案--------------------多表连接注意事项:
多个表连接时,每增加一个表,增加一对(),如下:
select
from ((A
inner join B on A.id=B.id)
inner join C on A.id=C.id)
inner join D on A.id=D.id
Access使用的是Jet-SQL,SQL Server使用的是T-SQL,两者用法上相差很大。
JET SQL 帮助(jet4 access2000)下载地址
http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=
------解决方案----------------------参考VBA处理方式,把参数连接到SQL串中:
Dim strSQL As String
Dim intDays As Integer
intDays = 5
strSQL = " SELECT books.book_name,borrow.borrow_date,customer.cust_name " _
& " FROM books, borrow, customer " _
& " WHERE books.book_id = borrow.book_id " _
& " and customer.cust_id = borrow.cust_id " _
& " and DateDiff( 'd ',borrow.borrow_date,date())> " & intDays
------解决方案--------------------估计是参数问题,到相应的语言版块去问吧。