truy nhập cơ sở dữ liệu trong visual basic.doc

49 2K 2
truy nhập cơ sở dữ liệu trong visual basic.doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

truy nhập cơ sở dữ liệu trong visual basic

Trang 1

III/ Truy cập cơ sở dữ liệu trong Visual Basic

1/ Giới thiệu ODBC (Open Database Connectivity)

Khái niệm

 ODBC là một chuẩn do Microsoft đưa ra để truy cập dữ liệu Phát triển ODBC, Microsoft muốn xây dựng một Application Programming Interface ( API ) duy nhất có thể sử dụng để truy cập cơ sở dữ liệu trên nhiều hệ quản lý cơ sở dữ liệu khác nhau Có 2 ưu điểm mà ODBC tận dụng được là :

• ODBC cung cấp một giao diện duy nhất để truy cập đến nhiều cơ sở dữ liệu khác nhau, nhờ đó giảm bớt thời gian nghiên cứu cơ sở dữ liệu mới cho bạn và cho nhà phát triển

• ODBC cho phép phát triển ứng dụng Client độc lập với Server cuối

 ODBC là thành phần tối quan trọng cho phép bạn sử dụng Visual Basic để phát triển các ứng dụng Client / Server

 Cấu trúc của ODBC gồm 4 phần chính :

Application (ứng dụng) : là giao diện để người dùng làm việc

với ứng dụng Nó sử dụng API ( Application Programming Interface) với ODBC để xây dựng kết nối đến cơ sở dữ liệu và điều khiển dữ liệu thông qua các câu lệnh SQL.

Driver Manager ( trình quản lý điều khiển ) : là trung gian

giữa ứng dụng và trình điều khiển đã được xác định để truy cập từng loại cơ sở dữ liệu Còn đối với dữ liệu , nó chỉ yêu cầu kết

Trang 2

nối đến DataSource , không cần thiết một liên kết đến trình điều khiển.

Driver (trình diều khiển ) :bổ sung cho ODBC API một hệ

thống quản lý cơ sở dữ liệu bằng cách xây dựng mối quan hệ đến server, chịu sự điều khiển của các điều lệnh SQL sau đó trả kết quả về, hay thông báo lỗi cho ứng dụng

DataSource ( nguồn dữ liệu ) : đây là sự kết nối giữa hệ

quản trị cơ sở dữ liệu với hệ điều hành từ xa hay mạng được yêu cầu để truy cập một cơ sở dữ liệu riêng nào đó chẳng hạn :

Oracle chạy dưới Open VMS được truy cập

thông qua Path Works / DECNet.

DB2 chạy dưới MVS được truy cập thông qua

một cổng

Paradox hay Foxpro truy cập cơ sở dữ liệu cục

bộ nên không đòi hỏi hệ điều hành từ xa hay mạng nào

 Thực chất ODBC là các tập tin DLL do các nhà cung cấp xây dựng và thông qua một giao diện nào đó, người dùng sẽ cung cấp các thông số cho các tập tin này để nó thực hiện nhiệm vụ.

 Ta có thể mô tả cấu trúc ODBC theo hình vẽ như sau :

Trang 3

 ODBC được bổ sung như là một các file có thể thi hành được, như các file INI, DLL ( Dynamic Link Libraries) như sau :

• ODBC Administrator (ODBCADM EXE) : là chương trình thuộc nhóm CONTROL PANEL , cho phép cái đặt các trình điều khiển ODBC mới và định nhgĩa

Trang 4

DataSource mới Việc cài đặt sẽ chi tiết hơn trong

ODBCINST INI , và DataSource cũng rõ ràng hơn trong ODBC INI

• Drive Manager (ODBC DLL) : quản lý trình điều khiển, chịu trách nhiệm kết nối DataSource đến các trình điều khiển Khởi động các trình điều khiển ODBC khác nhau và khởi động kích hoạt khác.

• Drivers : Các trình điều khiển tự chúng bao gồm một hay nhiều DLLs cũng như hỗ trợ các file INI , tùy thuộc vào các trình bổ sung của các nhà cung cấp

 Trước khi có thể truy cập đến một cơ sở dữ liệu thông qua ODBC , cần phải định nghĩa DataSource để ODBC biết được cần kết nối đến đâu Có thể dùng một trong hai cách :

• Sử dụng ODBC Administrator để định nghĩa Data Source.

• Sử dụng hàm RegisterDatabase của Visual Basic để định nghĩa theo chương trình Data Source

 Chẳng hạn làm việc với Microsoft SQL Server ta phải biết một số thông tin sau

• Tên DataSource

• Mô tả về DataSource

• Tên Server trên mạng nơi có chứa cơ sở dữ liệu.

• Tên cơ sở dữ liệu.

Trang 5

Ví dụ : Để truy cập cơ sở dữ liệu Nwind , ta cần định nghĩa Data Source

như sau

• Tên DataSource : NWIND.

• Mô tả về DataSource : Nothwind Database

• Tên của Server : Query_1.

• Tên của cơ sở dữ liệu : Northwind.

 Sử dụng ODBC Administrator để định nghĩa DataSource

• Các bước thực hiện:

 Kích hoạt ODBC Administrator thông qua Control Panel

 Nhắp vào nút lệnh Add từ cửa sổ chính của ODBC Administrator để thêm DataSource mới.

Trang 6

 ODBC sẽ cung cấp một danh sách các trình điều khiển đã được cài đặt sẵn nhằm kết nối với các cơ sở dữ liệu khác nhau:

Trang 7

 Điền tiếp các thông tin về DataSource vào hộp thoại của ODBC sau khi đã chọn loại một trình điều khiển để kết nối Giả sử ta đã chọn SQL Server :

 Thực hiện xong các bước này khi về cửa sổ chính ta sẽ thấy được tên DataSource và loại trình điều khiển kết nối đến Tức là DataSource đã được định nghĩa trong ODBC Administrator :

Trang 8

 Sử dụng RegisterDatabase để định nghĩa DataSource :

Visual Basic cung cấp phương thức RegisterDatabase để có thể định

nghĩa theo chương trình Data Source Phương thức này gồm có 4 tham số sau :

• Data Source Name

• Trình điều khiển được sử dụng để kết nối cơ sở dữ liệu

• Một biểu thức số cho biết hộp thoại trình điều khiển ODBC có nên hiển thị hay không

• Một chuỗi chứa tất cả các thông tin khác được yêu cầu bởi trình điều khiển

Ví dụ : Trong file INI cho Data Source của NWIND mà ta vừa tạo sẽ

thấy :

[NWIND]

Trang 9

Từ đó ta có thể thấy tên DataSource là NWIND , trình điều khiển là c:\WIN95\SYTEM\sqlsrvr.dll lấy được các thông tin trên ta sẽ tạo mã lệnh có tác dụng tương đương l à:

2/ DAO (Database Access Object)

Khái niệm

 DAO : Các đối tượng truy xuất dữ liệu, cho phép những ứng dụng khác giao tiếp với hệ thống cơ sở dữ liệu như Microsoft Access và

Microsoft FoxPro.

Private Sub cmdRegDatabase_Click()

Dim Attribs As String

Attribs = “ Description = Northwind Database “ & Chr$ (13) Attribs = Attribs & “ Server = QUE_1” & Chr$ (13)

Attribs = Attribs & “Database = Northwind”

DBEngine.RegisterDatabase “NWIND”,“SQL Server”,True,Attribs

End Sub.

Trang 10

 Là một thư viện đối tượng có khả năng mở rộng khá tốt cho phép người triễn khai thao tác nhiều loại cơ sở dữ liệu

 Cung cấp các khớp nối đến các chức năng của Jet Engine từ Visual Basic và Microsoft Access.

 Dùng DAO có thể xử lý mỗi đối tượng cá biệt như Workspace, Database,

TableDef, Field … bằng cách tạo một biến đối tượng và qui định biến đó biểu thị một đối tượng nào muốn xử lý, giúp cho việc truy cập cơ sở dữ liệu dễ dàng hơn.

Mở một cơ sở dữ liệu đã có sẵn

 Khai báo các biến đối tượng cơ sở dữ liệu bằng lệnh Dim

 Dùng các biến đối tượng cơ sở dữ liệu để liên kết đến các cơ sở dữ

• Tạo biến đối tượng Recordset.

• Xác định các fields và records trong một bảng, hay mối liên kết của các record giữa các bảng với nhau.

• Các loại recordsets :

Recordset Type Definition

Table Cho phép thao tác trực tiếp trên bảng của dữ liệu đang

Trang 11

Dynaset Tập hợp các con trỏ đến dữ liệu được mở.

Snapshot Dữ liệu được lưu trữ trong bộ nhớ Chỉ được phép đọc  Định vị Record

 Khi di chuyển từ record này sang record khác trong tập hợp recordset, Jet Database Engine cung cấp các phương pháp để thực hiện như sau:

Phương pháp Move Thay đổi vị trí con trỏ từ record hiện tại sang record khác Phương pháp Find Xác định record kế tiếp thỏa điều kiện cần tìm Được áp

dụng cho dynasets và snapshots

Phương pháp Seek Tìm record đầu tiên của bảng thỏa điều kiện yêu cầu Thuộc tính Bookmark Đánh dấu vị trí của một record xác định.

Thêm records (AddNew Records)

 Dùng phương pháp AddNew để thiết lập một record mới Thực chất phương pháp AddNew là xóa vùng nhớ tạm để thêm các thông tin của record mới Dữ liệu trong các field của một record sẽ được chấp nhận sau khi dùng phương pháp Update.

Cấu trúc lệnh : recordset AddNew

Chuẩn bị thay đổi Records (Edit Records)

 Chép record hiện thời vào vùng nhớ tạm Dữ liệu sau khi thay đổi trong các field của một record sẽ được chấp nhận sau khi dùng phương pháp Update.

Cấu trúc lệnh : recordset Edit

Trang 12

Cập nhật (Update Records)

 Lưu dữ liệu từ vùng nhớ tạm vào cơ sở dữ liệu,chèn nội dung mới vào record hiện thời hoặc thêm vào một record mới.

Cấu trúc lệnh : recordset Update (type, force )

Xóa Records

 Xóa record hiện thời.

Cấu trúc lệnh : recordset Delete

3/ RDO (Remote Data Object )So sánh RDO và DAO

 RDO: Remote Data Objects : cung cấp các phương pháp truy cập đến cơ sở

dữ liệu Nhìn chung RDO và DAO tương tự nhau, tuy nhiên dùng RDO sẽ làm cho ứng dụng nhanh hơn, đơn giản vì nó dùng các hàm hệ thống ở mức thấp hơn Tuy nhiên có trở ngại là việc hiển thị kết quả khi dùng phương pháp này không được hổ trợ như DAO.

 Có thể so sánh tương quan giữa RDO và DAO như sau :

Trang 13

rdoParameter Parameter

 Các kiểu hỗ trợ của rdoResultset, giống như của Recordset.

rdoResultset TypesRecordset Types

Forward-only Forward - only

 rdoResultset của RDO không trả kết quả về dạng bảng  Các phương pháp :

RdoCreateEnviroment rdoEngine CreateWorkspacce DBEngine

OpenConnection rdoEnviroment OpenDatabase Workspace

CreateQuery rdoConnection CreateQueryDef Database

OpenResultset rdoConnection OpenResultset Database

Cả DAO và RDO cùng có chung các phương pháp sau :

• AddNew : thêm một hàng (record)

• Delete : xóa hàng (record) mà con trỏ đang trỏ đến.

• Edit : chuẩn bị thay đổi hàng (record) mà con trỏ đang trỏ đến.

• MoveFirst : di chuyển về record đầu tiên.

Trang 14

• MoveLast : di chuyển về record cuối cùng.

• MoceNext : di chuyển đến record tiếp sau.

• MovePrevious : di chuyển đến record trước đó.

• Update : cập nhật những thay đổi trên record.

4/ RDC (Remote Data Control )

 Kết nối đến dữ liệu thông qua ODBC Đây là một công cụ tương đối tốt vì được hổ trợ hiển thị kết quả chẳng hạn dùng Dbgrid, qua thử nghiệm cho thấy tốc độ khá nhanh so với các phương pháp khác Ví dụ : dùng RDC để kết nối đến Oracle thông qua DSN có tên ora

Trang 15

RDC PropertyData Control Property

5/ ADO (ActiveX Data Object)

ADO là phương pháp truy cập dữ liệu thông qua OLE DB Đến VB 6 thì đây được xem như là phương pháp truy cập dữ liệu chủ yếu Nó được hổ trợ mạnh bằng các thành phần mới có ghi chú (OLEDB) Việc hiển thị dữ liệu cũng như các tập hợp hết quả trả về đều tiện lợi  Các thành phần của ADO:

 ADO cung cấp các phương pháp :

• AddNew : thêm một hàng (record)

Trang 16

• Delete : xóa hàng (record) mà con trỏ đang trỏ đến.

• Close : đóng sự kiện mở một một recordset.

• Move : di chuyển đến vị trí hiện thời của record

• MoveFirst : di chuyển về record đầu tiên.

• MoveLast : di chuyển về record cuối cùng.

• MoceNext : di chuyển đến record tiếp sau.

• MovePrevious : di chuyển đến record trước đó.

• Update : cập nhật những thay đổi trên record.

• CancelUpdate : hủy bỏ sự thay đổi của một record hiện thời hay thêm một record mới.

• Open : mở record mới ngay vị trí con trỏ hiện thời.

• Requery : cập nhật dữ liệu trong tập recordset bằng câu lệnh

Trang 17

ado.RecordSource = "Select * from hoso" ado.Refresh

Hoặc dùng cách

Set conn = New ADODB.Connection

conn.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.3.51; DataSource=c:\Nwind.mdb"

conn.Open

Set rado = New ADODB.Recordset

rado.Open "Select * from hoso", conn, adOpenKeyset, adLockPessimistic,

adCmdText Set ado.Recordset = rado

6/ ODBC API Function

Đây là phương pháp dùng trực tiếp các hàm ODBC cấp thấp để truy cập dữ liệu

♦ Declare Function SQLAllocEnv Lib "odbc32.dll" (env As Long) As Integer

♦ Declare Function SQLAllocConnect Lib "odbc32.dll" (ByVal env As Long, hdbc As Long) As Integer

♦ Declare Function SQLConnect Lib "odbc32.dll" (ByVal hdbc As Long, ByVal Server As String, ByVal serverlen As Integer, ByVal uid As String, ByVal uidlen As Integer, ByVal pwd As String, ByVal pwdlen As Integer) As Integer

♦ Declare Function SQLFreeConnect Lib "odbc32.dll" (ByVal hdbc As Long) As Integer

Trang 18

♦ Declare Function SQLDisconnect Lib "odbc32.dll" (ByVal hdbc As Long) As Integer

♦ Declare Function SQLAllocStmt Lib "odbc32.dll" (ByVal hdbc As Long, hstmt As Long) As Integer

♦ Declare Function SQLFreeStmt Lib "odbc32.dll" (ByVal hstmt As Long, ByVal EndOption As Integer) As Integer

♦ Declare Function SQLExecDirect Lib "odbc32.dll" (ByVal hstmt As Long, ByVal sqlString As String, ByVal sqlstrlen As Long) As Integer

♦ Declare Function SQLSetConnectOption Lib

"odbc32.dll" (ByVal hdbc&, ByVal fOption%, ByVal vParam&) As Integer

♦ Declare Function SQLSetStmtOption Lib

"odbc32.dll" (ByVal hstmt&, ByVal fOption%, ByVal vParam&) As Integer

♦ Public Declare Function SQLDriverConnect Lib "odbc32.dll" (ByVal hdbc&, ByVal hWnd As Long, ByVal szCSIn$, ByVal cbCSIn%, ByVal szCSOut$, ByVal cbCSMax%, cbCSOut%, ByVal fDrvrComp%) As Integer

♦ Public Declare Function SQLCancel Lib "odbc32.dll" (ByVal hstmt&) As Integer

Vì sử dụng hàm cấp thấp nên tất nhiên tốc độ sẽ nhanh nhất, tuy nhiên đòi hỏi phải xử lý rất phức tạp Do đó chỉ được dùng khi thật cần thiết.

Trang 19

7/ Hiển thị dữ liệu :

Hộp liệt kê (List box)

 Dùng tính chất Text để hiển thị thông tin đã được lưu trữ dưới dạng chuỗi.

 Tính chất List : một mảng chuỗi chứa mọi mục, dùng để khởi tạo các mục trong hộp liệt kê.

 Để chọn một mục trong hộp liệt kê ta nhắp chuột lên mục đó thông qua sự kiện Click hay Double - Click.

 Để thêm một phần tử vào danh sách, có thể dùng hộp property của List box hay dùng : object AddItem item, index

 Khi xóa một phần tử trong danh sách cần biết giá trị index của phần

tử đó trong danh sách,có thể dùng : object Remove Item, index

 Nếu xóa tất cả các phần tử trong danh sách thì dùng: object .Clear

Hộp combo

 Tính chất Style : định dạng của hộp combo

Style= 0 (drop down combo ), bao gồm một text box và một

danh sách các chọn lựa thả sẵn xuống

Style = 1 (simple combo box), hiển thị dưới dạng một text

box và một danh sách nhưng không thả xuống

• Các giá trị này có được bởi sự kiện Change.

Style = 2 (drop down list ), một danh sách thả sẳn xuống.

 Các mục trong hộp sẽ được sắp xếp theo thứ tự ASCII khi chọn tính chất

Trang 20

Sorted = True Nếu không chọn, giá trị mặc định của tính chất Sorted =False, danh sách các mục tùy thuộc vào danh sách đã đặt trong hộp liệt kê.

 Dùng tính chất Text để hiển thị thông tin đã được lưu trữ dưới dạng chuỗi.

 Tính chất List : một mảng chuỗi chứa mọi mục, dùng để khởi tạo các mục trong hộp liệt kê.

Để thêm một phần tử vào danh sách, có thể dùng hộp property của

List box hay dùng : object AddItem item, index

 Khi xóa một phần tử trong danh sách cần biết giá trị index của phần tử

đó trong danh sách,có thể dùng : object Remove Item, index

 Nếu xóa tất cả các phần tử trong danh sách thì dùng: object .Clear

 Các phương pháp này tương tự như các phương pháp dùng cho List box.

Data Control

 Dùng để điều khiển dữ liệu Cho phép thao tác trên record và hiển thị dữ liệu thông qua bound controls.

 Các sự kiện của Data Control

VbDataActionCancel 0 Hủy bỏ các sự kiện của Data control VbDataActionMoveFirst 1 Di chuyển đến record đầu tiên

VbDataActionMovePrevious 2 Di chuyển đến record trước đó VbDataActionMoveNext 3 Di chuyển đến record kế tiếp VbDataActionMoveLast 4 Di chuyển đến record cuối

Trang 21

VbDataActionAddNew 5 Thêm record

VbDataActionUpdate 6 Thay đổi, định nghĩa record VbDataActionDelete 7 Xóa một record

VbDataActionFind 8 Tìm kiếm một record VbDataActionBookmark 9 Tạo Bookmark

VbDataActionClose 10 Đóng Data control VbDataActionUnload 11 Đóng một Form

Datacontrol có hình dạng:

Data Bound Grids

 Dùng để hiển thị cùng lúc nhiều records với các field của nó trong tập các recordset theo dạng hàng (record) và cột (field).

 Để hiển thị cần xác định DataSource là tên điều khiển dữ liệu, chẳng hạn Datacontrol và xác định RecordSource = dữ liệu nguồn.

 Thêm một record (hàng) : object AllowAddNew [= value].

• Value = True : cho phép thêm record vào dưới DBGrid

• Value = False : không cho phép thêm record vào dưới DBGrid

 Xóa một record (hàng) : object AllowDelete [= value]

• Value = True : cho phép xóa record vào dưới DBGrid

• Value = False: không cho phép xóa record vào dưới DBGrid  Thay đổi, định nghĩa các record : object AllowUpdate [= value]

• Value = True : cho phép thay đổi, định nghĩa dữ liệu trong DBGrid

Trang 22

• Value = False: không cho phép thay đổi, định nghĩa dữ liệu trong DBGrid

 Dbgrid hỗ trợ cho datacontrol hay RDC, tuy nhiên việc hiển thị dữ liệu của cộng cụ này đôi khi không chính xác.

 Dbgrid có hình dạng :

Data Grid

 VB 6 hỗ trợ công cụ datagrid cho việc hiển thị dữ liệu do ADO cung cấp Công cụ này tương tự như dbgrid, nhưng việc hiển thị có vẽ chính xác hơn.

 Datagrid có hình dạng :

IV/ SQL

1/ Giới thiệu chung về SQL ( Structered Query Language )

 Ngôn ngữ truy vấn có cấu trúc, được dùng trong hầu hết các hệ cơ sở dữ liệu quan hệ.

 SQL là một ngôn ngữ tựa tiếng Anh, nó sử dụng các từ select, insert, delete trong tập lệnh.

Trang 23

 SQL là ngôn ngữ phi thủ tục (non - procedure language), chỉ cần cho biết thông tin cần truy xuất mà không cần chỉ ra cách thực hiện để có được các thông tin đó.

 SQL xử lý các tập hợp mẫu tin ở cùng một thời điểm, dạng chung nhất của mẫu tin là một bảng (table).

 Dùng SQL có thể :

• Truy vấn dữ liệu.

• Thêm vào, cập nhật và hủy bỏ các hàng của bảng.

• Tạo mới, thay đổi và hủy bỏ các đối tượng cơ sở dữ liệu.

• Kiểm soát truy vấn đến cơ sở dữ liệu và các đối tượng cơ sở

3 lệnh này được dùng để thêm các hàng mới,sử đổi và hủy bỏ các hàng của các bảng trong cơ sở dữ liệu Các lệnh này còn được gọi là các lệnh DML ( Data Manipulation Language)

Create Alter Drop

Các lệnh này được dùng để thiết lập, thay đổi và hủy bỏ một cấu trúc dữ liệu Chúng còn được gọi là lệnh DDL (Data Definition Language )

Graint Revoke

Các lệnh này được dùng để gán và hủy bỏ các quyền truy xuất đến dữ liệu và cấu trúc bên trong.

Trang 24

2/ So sánh SQL của Oracle và SQL Server

Các kiểu dữ liệu dùng trong SQL

Ngày đăng: 25/08/2012, 11:29

Hình ảnh liên quan

Cấu hình ODBC - truy nhập cơ sở dữ liệu trong visual basic.doc

u.

hình ODBC Xem tại trang 3 của tài liệu.
 Thông tin hệ thống của Oracle server được lưu trữ trong các bảng. Chẳng hạn để lấy thông tin về các users ta select trong bảng all_users - truy nhập cơ sở dữ liệu trong visual basic.doc

h.

ông tin hệ thống của Oracle server được lưu trữ trong các bảng. Chẳng hạn để lấy thông tin về các users ta select trong bảng all_users Xem tại trang 34 của tài liệu.
 Bảng tóm tắt - truy nhập cơ sở dữ liệu trong visual basic.doc

Bảng t.

óm tắt Xem tại trang 45 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan