II. TRUY XUẤT DỮ LIỆU DỉNG ODBC: 1.Giới Thiệu Về ODBC :
Driver Manager
Driver: Xử lý cõc lời gọi hỏm ODBC, truyền cõc yởu cầu đến cõc data source chỉ định, vỏ trả kết quả về cho ứng dụng. Nếu cần, driver đụ cụ thể sữa đổi yởu cầu của ứng dụng để yởu cầu đụ phỳ hợp với cỷ phõp được hỗ trợ bởi DBMS đụ.
Data source: Bao gồm dữ liệu mỏ người dỳng muốn truy xuất vỏ hệ điều hỏnh kết hợp với nụ, DBMS, vỏ mạng (nếu cụ) đuwọc dỳng để truy xuất DBMS.
Đối với một ứng dụng, Driver Manager vỏ driver như lỏ một đơn vị xử lý cõc lời gọi hỏm ODBC.
Sơ đồ biểu diễn mối quan hệ giữa cõc phần:
Application
Driver Manager
Driver Driver Driver
Data Source Data Source Data Source
ODBC API
KILOB OB OO KS .CO M
−Multiple driver vỏ datasource cụ thể tồn tại cho phờp ứng dụng truy xuất dữ liệu từ nhiều datasource.
−ODBC API được sử dụng ở hai nơi : giữa Application với Driver Manager, giữa Driver Manager với mỗi driver. Giao tiếp giữa Driver Manager vỏ driver cụ khi được xem như lỏ Service provide interface hoặc SPI với ODBC API vỏ SPI lỏ giống nhau.
∗.Nhiệm vụ của cõc phần:
Application :
Lỏ một chương trớnh gọi ODBC API để truy xuất data. Mặc dỳ cụ nhiều loại ứng dụng nhưng được phón thỏnh ba loại như sau :
−Generic Application : lỏ những ứng dụng shrinkứwrapped hoặc off –theứshell. Generic Application được thiết kế để lỏm việc với những DBMS khõc nhau. Vợ dụ : bảng tợnh hoặc gụi tĩnh (statictics pakage) sử dụng DBMS để nhập data cho những phón tợch về sau vỏ một word processor sử dụng ODBC để lấy dah sõch cõc thư từ một database.
Một phạm trỳ con quan trọng của Generic Application lỏ mừi trường phõt triển ứng dụng, chẳng hạn như Power Builder hoặc Microsof Visual Basic. Mặc dỳ ứng dụng được tạo với những mừi trường sẽ chỉ lỏm việc với những DBMS đơn, bản thón mừi trường cần lỏm việc với multi DBMSs.
−Vertical Application : biểu hiện một loại cừng việc đơn, chẳng hạn như yởu cầu dữ liệu vỏ lỏm việc với một sơ đồ database được điều khiển bởi người phõt triển ứng dụng. Vợ dụ : một doanh nghiệp nhỏ dỳng ứng dụng với dBase trong khi một doanh nghiệp lớn dỳng ứng dụng với Oracle.
Ưng dụng sử dụng ODBC theo cõch mỏ ứng dụng bị rỏng buộc vỏo bất cứ một DBMS nỏo mặc dỳ cụ thể bị rỏng buộc với một số giới hạn do DBMS.
−Custom Application : được sử dụng để thực hiện những cừng việc đặc biệt trởn một cừng ti đơn.
Một ứng dụng sử dụng giao diện ODBC thực hiện những nhiệm vụ sau, khừng quan tóm chỷng dỳng loại DBMS nỏo:
+Yởu cầu kết nối với data source.
+Gởi cõc yởu cầu SQL tới data source đụ.
+Định nghĩa vỳng lưu trữ vỏ cõc dạng dữ liệu cho cõc kết quả trả về từ cõc yởu cầu.
+Lấy kết quả. +Xử lý lỗi.
KILOB OB OO KS .CO M +Bõo kết quả cho user nếu cần.
+Chấp nhận hoặc hủy bỏkết quả cho cõc điều khiển giao dịch. +Kết thỷc kết nối tới data source.
Driver Manager:
Lỏ thư viện quản lý việc liởn lạc giữa ứng dụng vỏ driver. Trong nến Windows, Driver Manager lỏ thư viện liởn kết động (dynamic link library viết tắt lỏ dll).
Sự tồn tại của Driver Manager rất tiện lợi cho người viết ứng dụng vỏ giải quyết một số vấn đề chung đối với tất cả cõc ứng dụng bao gồm xõc định driver nỏo được nạp hay gỡ bỏ vỏ gọi hỏm trong driver.
Họy xem điều gớ xảy ra nếu ứng dụng gọi hỏm một cõch trực tiếp trong driver. Trừ khi nụ được liởn kết tới một driver cụ thể, nụ sẽ phải tạo một bảng những con trỏ trỏ tới những hỏm trong driver đụ vỏ gọi những hỏm thừng qua con trỏ. Sử dụng cỳng một source code cho nhiều driver tại một thời điểm sẽ góy phức tạp, ứng dụng phải thiết lập con trỏ hỏm trỏ tới những hỏm trong driver tương ứng vỏ gọi hỏm thừng qua con trỏ.
Driver Manager giải quyết vấn đề trởn bằng cõch cung cấp một nơi để gọi mỗi hỏm. Ưng dụng được liởn kết với Driver Manager vỏ gọi những hỏm ODBC trong Driver Manager chứ khừng phải trong driver.
Ưng dụng xõc định driver đợch vỏ datasource với một thẻ kết nối (connection handle) khi nụ nạp Driver, Driver Manager sẽ tạo một bảng những con trỏ trỏ tới những hỏm trong driver đụ vỏ nụ dỳng thẻ kết nối để tớm địa chỉ của hỏm trong driver vỏ gọi hỏm đụ thừng qua địa chỉ.
Như vậy, nhiệm vụ của Driver Manager như sau:
−Sử dụng file ODBC.INI để õnh xạ một tởn của data source thỏnh một thư viện liởn kết động driver.
−Xử lý cõc lời gọi khởi động ODBC.
−Cung cấp cõc điểm nhập tới cõc hỏm ODBC cho mỗi driver. −Cung cấp cõc tham số vỏ chuỗi hợp lệ cho cõc lời gọi ODBC.
Driver :
Lỏ những thư viện hiện thực cõc hỏm trong ODBC API vỏ mỗi ODBC API tương ứng với một DBMS riởng biệt. Vợ dụ 1 driver cho Oracle khừng thể truy cập trực tiếp data trởn một DBMS Informix. Driver cho thấy khả năng của DBMS lớp dưới. Driver khừng bị đúi hỏi phải hiện thực những khả năng khừng được hỗ trợ bởi DBMS.
KILOB OB OO KS .CO M
−Fileứbased driver : driver truy cập data vật lý một cõch trực tiếp. Trong trường hợp nỏy driver hoạt động vừa lỏ driver vừa lỏ datasource, nghĩa lỏ nụ xử lý lời gọi ODBC vỏ cóu SQL.
−DBMSứbased driver : driver truy xuất dữ liệu vật lý thừng qua một cơ chế database riởng biệt. Trong trường hợp nỏy driver chỉ xử lý cóu ODBC, vỏ gởi cóu SQL sang cơ chế database xử lý.
Một driver thực hiện những nhiệm vụ sau để đõp ứng tới cõc lời gọi hỏm từ một ứng dụng:
−Thiết lập một kết nối tới một data source. −Gởi cõc yởu cầu tới data source.
−Chuyển đổi dạng dữ liệu tới hoặc từ cõc dạng khõc, nếu ứng dụng yởu cầu. 6 Trả kết quả cho ứng dụng
−Định dạng cõc lỗi thỏnh cõc mọ lỗi chuẩn để trả về cho ứng dụng. −Khai bõo vỏ thao tõc cõc cursor nếu cần. for access to a cursor name.) −Khởi tạo cõc giao dịch nếu data source yởu cầu.
Data source:
Một datasource đơn giản lỏ nguồn dữ liệu, cụ thể lỏ một file, một database trởn một DBMS. Mục đợch của datasource lỏ tập trung tất cả thừng tin cần thiết để truy xuất data : drivername, địa chỉ network, networdsoftware. Như vậy một data source lỏ một thể hiện (instance) của một kết hợp giữa một DBMS vỏhệ điều hỏnh cỳng với mạng cần để truy xuất nụ.
Một ứng dụng kết nối với một DBMS trởn một hệ điều hỏnh nỏo đụ, được cho phờp truy xuất bởi một mạng nỏo đụ. Vợ dụ:
−Một DBMS Oracle chạy trởn hệ điều hỏnh Windows NT , được truy xuất thừng qua mạng Windows