程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> Access數據庫入門 >> 談ADO訪問不同數據庫的差別

談ADO訪問不同數據庫的差別

編輯:Access數據庫入門

   Microsoft公司提供了統一的數據訪問接口ActiveX Data Object,簡稱ADO。但實際應用編程中,訪問不同的數據庫,如Access、SQL Server或VFP,會存在一些“細微”差別,常常有這樣的情況,用ADO對象訪問某一數據庫的程序都調試通過了,但用同樣的程序訪問其他數據庫就存在這樣或那樣的問題,反之也一樣。這種差別就筆者來看好像沒什麼意義,因為都是一個公司的產品;雖然這種差別不多,但要搞清它的來龍去脈,足以使用戶忙乎一陣子,a無端增加了用戶的負擔。下面,本文就談談有關SELECT語句在訪問不同數據庫方面的一些差別。

   在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控件並顯示

   ……

  • 首頁
  • 上一頁
  • 1
  • 2
  • 下一頁
  • 尾頁
  • 共2頁
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved