在SQL Server、Access、VFP三個數據庫中分別有以下的這樣一個表名都為“Employee”的數據表。如圖1所示。
圖1
訪問日期型字段的差別
在大多數情況下用SELECT語句分別去訪問這三個數據庫的這張表,沒有什么區別,即你若編寫了訪問SQL Server數據庫的SELECT語句,同樣可用于訪問Access數據庫或VFP數據庫,只要將連接的數據源改一改即可。但你若要對“出生年月”這一日期型字段進行查詢的話,問題就來了,例如要查詢1980年1月1日至1985年12月31日的員工資料,訪問SQL Server中的數據表的語句是:
Select * from employee where 出生年月 between '1980-01-01' and '1985-12-31'
如果想當然地用這條語句去訪問Access數據庫那就大錯特錯了,必須加上函數DateValue(),正確的寫法如下:
Select * from employee where 出生年月between DateValue('1980-01-01')and DateValue('1985-12-31')
如果要訪問VFP日期型字段又必須采用以下這種寫法:
select * from employee where 出生年月 between {^1980-01-01} and {^1985-12-31}
以上是SELECT語句對于訪問不同數據庫的日期型字段的差別,不了解這種差別,你會被搞得暈頭轉向,不知錯在哪里。
統計方面的差別
對上例的Employee數據表,按部門統計總工資和人數,就用VB來編寫一段統計和顯示的代碼,若已經建立了連接對象Conn,記錄集對象RS,并已連接到某一數據源,具體代碼如下所示:
打開連接對象Conn '可打開SQL Server、Access、VFP數據源
conn.CursorLocation = adUseClient '建立游標至客戶端
……
rs.Open "select 部門, sum(工資), count(*) from employee group by 部門", conn
Set DataGrid1.DataSource = rs
'將Rs綁定到DataGrid1控件并顯示
……
新聞熱點
疑難解答