VB 6 0 與 SQL Server 的兩種連線

2022-05-06 14:12:09 字數 4945 閱讀 6970

visual basic 6.0與 sql server 的兩種連線

摘 要:本文介紹了visual basic 6.0應用程式通過ado連線microsoft sql server的兩種方法,即有源資料庫連線和無源資料庫連線,分別說明了兩種連線方法的內部機制,並以例項比較兩種方法的優缺點。

vb通過ado連線sql server資料庫可以分為有源資料庫連線和無源資料庫連線,區別它們看是否使用了dsn(資料來源名稱)來決定。

1無源資料庫連線

其實,「無源資料庫」連線也並不是說不需要資料來源,如果沒有資料來源則連線是紙上談兵,只是不需要配置odbc資料來源,利用ado就可通過**進行連線。

1.1 ado(activex data object)

在visual basic6.0中,資料訪問介面有三種:activex資料物件(ado)、遠端資料物件(rdo)和資料訪問物件(dao)。這三種介面的每一種都分別代表該技術的不同發展階段,最新的是ado,它比rdo和dao更加簡單,更加靈活。對於新工程,應使用ado作為資料訪問介面。

ado 是microsoft 資料庫應用程式開發的介面,是建立在ole db之上的高層資料庫訪問技術。它封裝了ole db所提供的介面,比起ole db提供者,ado的介面可以使程式設計師在更高階別上進行資料互動。ado技術不僅可以應用於關聯式資料庫,也可以應用於非關聯式資料庫。可以用統一的方法對不同的檔案系統進行訪問,大大簡化了程式編制,增加了程式的可移植性。

1.2建立無源資料庫連線

在連線資料庫前,首先要在visual basic 6.0選單中「工程」—「引用」中選擇microsoft activex data objects 2.6 library 和microsoft activex data objects recordset 2.6 library這兩個元件。

運用ado物件模型的主要元素:connection(連線)中的connectionstring屬性進行連線, connectionstring為可讀寫string型別,指定乙個連線字串,告訴ado 如何連線資料庫。

例項:以建立登陸系統為例,介紹無源資料庫連線。在microsoft sql server 2000 中建立乙個student 的資料庫,在student資料庫中建立login_user(name,password)的資料表,microsoft sql server伺服器的名為data_server。**如下:

option explicit

public loginsucceeded as boolean

'引用microsoft activex data objects 2.6 library

'定義連線物件和記錄集

dim conn as adodb.connection

dim rs as adodb.recordset

'對取消按鈕單擊事件的響應

private sub cmdcancel_click()

'設定全域性變數為 false

'不提示失敗的登入

loginsucceeded = false

me.hide

end sub

'對登入按鈕單擊事件的響應

private sub cmdok_click()

set conn = new adodb.connection 

set rs = new adodb.recordset

'建立無源資料庫連線

conn.connectionstring="driver=;server=data_server;uid=sa;pwd=;database=student"

conn.connectiontimeout = 50

conn.open

dim str as string

'連線連線物件

set rs.activeconnection = conn

'設定游標型別

rs.cursortype = adopendynamic

if trim(txtusername.text = "") then

msgbox "使用者名稱不能為空,請重新輸入使用者名稱!", vbokonly + vbexclamation, "警告"

txtusername.setfocus

else

'設定查詢字串

str = "select * from login_user where name ='" & trim(txtusername.text) & "'"

rs.open str

if rs.eof = true then

msgbox "沒有這個使用者,請重新輸入使用者名稱!", vbokonly + vbexclamation, "警告"

txtusername.setfocus

else

'登入成功,連線主視窗

if (trim(txtpassword.text) = trim(rs.fields("password"))) then

loginsucceeded = true

me.hide

main.show

else

msgbox "密碼不正確,請重輸入密碼!", , "警告"

txtpassword.setfocus

sendkeys "+"

end if

end if

end if

end sub

無源資料庫連線則不用配置odbc環境,可以省去手工設定dsn的麻煩,這種方法所編寫的軟體適應性廣,又符合專業軟體的要求。

2  有源資料庫的連線

有源資料庫連線的首要任務是要註冊資料來源名稱(dsn),通過配置odbc環境,進行資料來源的註冊,然後才能在對資料庫程式設計時,對資料來源進行連線、訪問和操作。

2.1odbc

odbc(open database connectivity,開放資料庫互連)是microsoft公司開發的一套開放資料庫系統應用程式介面規範,利用它可以在應用程式中同時訪問多個資料庫系統。由此可見,odbc的最大優點是能以統一的方式處理所有的資料庫。

2.2  dsn(資料來源名稱)

odbc資料來源分為以下三類:

(1)                使用者dsn:只有建立資料來源的使用者才可以使用他們自己建立的資料來源,而且只能在當前的計算機上使用。

(2)                系統dsn:任何使用你的計算機的使用者和程式都可以使用的dsn。

(3)                檔案dsn:除了具有系統dsn的功能之外,還能被其它使用者在其它計算機上使用。

2.3建立odbc資料來源的步驟

(1)         啟動控制面板。

(2)         雙擊odbc圖示,啟動odbc資料來源。

(3)         換到「使用者dsn」標籤,單擊「新增」。選擇sqlserver作為資料來源的驅動程式。

(4)         為資料來源命名,按提示操作即可建立odbc資料來源。

2.4建立有源資料庫連線

建立資料來源是進行有源資料庫連線的第一步,下面同樣是運用ado物件模型的主要元素connection(連線)進行源資料庫連線。

connectionstring是connection物件的屬性名稱,提供資料提供者或服務提供者開啟到資料來源的連線所需要的特定資訊,包括database、dsn、uid等。

(1)         database:字串表示式,指定伺服器上的資料庫名稱。

(2)         uid:字串表示式,為odbc資料來源指定使用者標識(使用者賬號名)。

(3)         pwd:字串表示式,為odbc資料來源指定使用者口令。

(4)         dsn:字串表示式,指定連線的odbc 資料來源名稱。

利用已配置好的odbc資料來源進行連線。

例項:以建立查詢系統為例,介紹有源資料庫連線。建立odbc資料來源名稱為stud,通過ado與資料庫student進行連線,**如下:

dim conn as adodb.connection

dim rs as adodb.recordset

private sub form_load()

set conn = new adodb.connection

set rs = new adodb.recordset

conn.connectionstring = "dsn=stud;uid=sa;pwd=;database=student"

conn.open

dim str as string

set rs.activeconnection = conn

rs.cursortype = adopendynamic

str = "select * from login_user"

rs.open str

txtusername.text = rs.fields("name")

txtpassword.text = rs.fields("password")

end sub

有源資料庫連線首先要配置odbc環境,註冊資料來源,這種方法有一定的侷限性,當程式最終完成並分發到使用者手中後,還需要為使用者配置odbc,而且由於引數內容不一,配置時不宜把握。

3結束語

ado封裝並且實現了microsoft強大的資料訪問介面ole db的所有功能,它具有通用性好,效率高的特點。通過ado進行無源資料庫連線,省去手工設定dsn的麻煩,使ado物件模型獲得更大的靈活性。

VB6 0與SQLSERVER2000連線的問題

我是菜鳥,最近在仿照書上說的練習做乙個物資管理系統,用的是vb6.0 sqlserver2000 其中在新增函式executesql時,出現了問題,函式內容如下 public function executesql byval sql as string,msgstring as string as...

VB6 0函式集合

一 型別轉換類函式 1.ctype x 格式 p cbool x 將x轉換為 布林 boolean 型別 p cbyte x 將x轉換為 位元組 byte 型別 p ccur x 將x轉換為 金額 currency 型別 p cdate x 將x轉換為 日期 date 型別 p cdbl x 將x轉...

VB6 0 程式設計入門

識別符號 使用者在程式設計時定義的名稱。關鍵字 vb中擁有固定含義 不能被重新定義的識別符號。常見關鍵字 as 定義乙個變數 date 日期函式 else 條件語句中的 否則 error 錯誤物件 let 屬性定義的關鍵字 me 當前物件 null 表示變數不包含有效資料 nothing 將物件變數...