20
Kết nối CSDL với Kết nối CSDL với VC6.0 VC6.0 Giảng viên : Trần Anh Tuấn A Giảng viên : Trần Anh Tuấn A Bộ Môn : Ứng dụng tin học Bộ Môn : Ứng dụng tin học

Kết nối CSDL với VC6.0

  • Upload
    rianna

  • View
    83

  • Download
    2

Embed Size (px)

DESCRIPTION

Kết nối CSDL với VC6.0. Giảng viên : Trần Anh Tuấn A Bộ Môn : Ứng dụng tin học. Nội dung. Truy xuất với ODBC/DAO Truy xuất với OLEDB Truy xuất với ADO. Truy xuất với ODBC/DAO. Cấu trúc ODBC :. Truy xuất với ODBC/DAO. Cách dùng : New Class đặt tên CTestSet (base : CRecordSet) - PowerPoint PPT Presentation

Citation preview

Page 1: Kết nối CSDL với VC6.0

Kết nối CSDL với Kết nối CSDL với VC6.0VC6.0

Giảng viên : Trần Anh Tuấn AGiảng viên : Trần Anh Tuấn A

Bộ Môn : Ứng dụng tin họcBộ Môn : Ứng dụng tin học

Page 2: Kết nối CSDL với VC6.0

Nội dungNội dung

►Truy xuất với ODBC/DAO Truy xuất với ODBC/DAO ►Truy xuất với OLEDB Truy xuất với OLEDB ►Truy xuất với ADO Truy xuất với ADO

Page 3: Kết nối CSDL với VC6.0

Truy xuất với ODBC/DAOTruy xuất với ODBC/DAO

►Cấu trúc Cấu trúc ODBC :ODBC :

Page 4: Kết nối CSDL với VC6.0
Page 5: Kết nối CSDL với VC6.0
Page 6: Kết nối CSDL với VC6.0
Page 7: Kết nối CSDL với VC6.0

►Cách dùng :Cách dùng : New Class đặt tên CTestSet (base : New Class đặt tên CTestSet (base :

CRecordSet)CRecordSet) Chọn DB Access muốn truy xuấtChọn DB Access muốn truy xuất Trong CTestView thêm biến : CTestSet* Trong CTestView thêm biến : CTestSet*

m_pSetm_pSet Trong CTestDoc thêm biến :CTestSet Trong CTestDoc thêm biến :CTestSet

m_TestSetm_TestSet

Truy xuất với ODBC/DAOTruy xuất với ODBC/DAO

Page 8: Kết nối CSDL với VC6.0

►Khởi Tạo Kết Nối :Khởi Tạo Kết Nối :

Truy xuất với ODBC/DAOTruy xuất với ODBC/DAO

void CTestView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal(8000, 10500); SetScrollSizes(MM_HIENGLISH, sizeTotal); m_pSet = &GetDocument()->m_TestSet; // Remember that documents/views are reused in SDI applications! if (m_pSet->IsOpen()) { m_pSet->Close(); } m_pSet->Open(); }

Page 9: Kết nối CSDL với VC6.0

►Truy Xuất Dữ Liệu :Truy Xuất Dữ Liệu :void CEx31aView::OnDraw(CDC* pDC) { TEXTMETRIC tm; pDC->GetTextMetrics(&tm); int nLineHeight=tm.tmHeight+tm.tmExternalLeading; CPoint pText(0,0); int y = 0; CString str; if (m_pSet->IsBOF()) { // detects empty recordset return; } m_pSet->MoveFirst(); // fails if recordset is empty while (!m_pSet->IsEOF()) { str.Format("%ld", m_pSet->m_StudentID); pDC->TextOut(pText.x, pText.y, str); pDC->TextOut(pText.x+1000, pText.y, m_pSet->m_Name); str.Format("%d", m_pSet->m_GradYear); pDC->TextOut(pText.x+4000, pText.y, str); m_pSet->MoveNext(); pText.y -= nLineHeight; } }

Page 10: Kết nối CSDL với VC6.0

Truy xuất với ODBC/DAOTruy xuất với ODBC/DAO

Page 11: Kết nối CSDL với VC6.0

Truy xuất với ODBC/DAOTruy xuất với ODBC/DAO

► Cách dùng DAOCách dùng DAO CDaoDatabase aDB;CDaoDatabase aDB; COleVariant var;COleVariant var; aDB.Open(“C:\\.......\\SinhVien.mdb”,FALSE,TRUE)aDB.Open(“C:\\.......\\SinhVien.mdb”,FALSE,TRUE) CDaoRecordset aRS(&aDB);CDaoRecordset aRS(&aDB); aRS.OpenaRS.Open(AFX_DAO_USE_DEFAULT_TYPE,(AFX_DAO_USE_DEFAULT_TYPE,

””Select * From ……”Select * From ……” , 0 ); , 0 ); While(!While(!aRS.IsEOF()aRS.IsEOF())) {{

► Var = Var = aRS.GetFieldValue(0);aRS.GetFieldValue(0);► CString Str = (LPCSTR)var.bstrVal;CString Str = (LPCSTR)var.bstrVal;► aRS.MoveNext();aRS.MoveNext();

}} aRS.Close() ; aDB.Close();aRS.Close() ; aDB.Close();

Page 12: Kết nối CSDL với VC6.0

Truy Xuất OLEDBTruy Xuất OLEDB

► OLEDB (Object Linking and Embedding Data Base )OLEDB (Object Linking and Embedding Data Base )

► OLEDB là một tập hợp các giao diện truy xuất dữ OLEDB là một tập hợp các giao diện truy xuất dữ liệu thông qua COM.liệu thông qua COM.

► Cấu trúc :Cấu trúc : Enumerators: có tác vụ tìm các nguồn dữ liệu khả dụngEnumerators: có tác vụ tìm các nguồn dữ liệu khả dụng Data source objects: Data source objects chứa các cơ chế Data source objects: Data source objects chứa các cơ chế

kết nối tới nguồn dữ liệukết nối tới nguồn dữ liệu Sessions: Sessions thể hiện một kết nối(phiên làm việc) Sessions: Sessions thể hiện một kết nối(phiên làm việc)

đến nguồn dữ liệuđến nguồn dữ liệu Transaction: là đối tượng quản lý các thao tác truy xuất dữ Transaction: là đối tượng quản lý các thao tác truy xuất dữ

liệu và bảo đảm an toàn dữ liệuliệu và bảo đảm an toàn dữ liệu Commands: là đối tượng cho phép thực thi các lệnh SQLCommands: là đối tượng cho phép thực thi các lệnh SQL

Page 13: Kết nối CSDL với VC6.0

► ADO là một tập hợp ADO là một tập hợp các giao diện truy các giao diện truy xuất dữ liệu thông xuất dữ liệu thông qua COM (tương tự qua COM (tương tự như OLEDB nhưng sử như OLEDB nhưng sử dụng đơn giản hơn). dụng đơn giản hơn).

► ADO đóng vai trò ADO đóng vai trò trung gian tương tác trung gian tương tác với chương trình ứng với chương trình ứng dụng và cơ sở dữ dụng và cơ sở dữ liệu, được thể hiện liệu, được thể hiện

như hình sau:như hình sau:

Truy Xuất ADOTruy Xuất ADO

Page 14: Kết nối CSDL với VC6.0

►Cấu trúc ADO Cấu trúc ADO Connection: là đối tượng quản lý các tác vụ truy cập/kết nối cơ sở dữ liệu.

Command: là đối tượng quản lý các tác vụ cập nhật dữ liệu

Recordset: là đối tượng quản lý dữ liệu truy vấn được

Error: là đối tượng quản lý lỗi xãy ra

Truy Xuất ADOTruy Xuất ADO

Page 15: Kết nối CSDL với VC6.0

► Cách truy xuất : Xem cụ thể trong fileCách truy xuất : Xem cụ thể trong file► Khai báo chuỗi connection :Khai báo chuỗi connection :

// Kết nối đến Access: // Kết nối đến Access: m_szConnection="Provider=Microsoft.JET.OLEDB.4.0;Datasource=xm_szConnection="Provider=Microsoft.JET.OLEDB.4.0;Datasource=x

xx”; xx”;

// Kết nối đến SQL Server: // Kết nối đến SQL Server: m_szConnection="Provider=SQLOLEDB;Datasource=my_server_nam_szConnection="Provider=SQLOLEDB;Datasource=my_server_na

me;me;

//Visual Fox Pro//Visual Fox Pro strConnection = _T("Driver={Microsoft Visual Foxpro Driver};UID=;" strConnection = _T("Driver={Microsoft Visual Foxpro Driver};UID=;"

SourceType=DBC;SourceDB=C:\\DatabasePath\\SourceType=DBC;SourceDB=C:\\DatabasePath\\MyDatabase.dbc;Exclusive=No"); MyDatabase.dbc;Exclusive=No");

Truy Xuất ADOTruy Xuất ADO

Page 16: Kết nối CSDL với VC6.0

► ////ODBC Driver for OracleODBC Driver for Oracle► strConnect = _T(“strConnect = _T(“

Driver={Microsoft ODBC for Oracle}; Driver={Microsoft ODBC for Oracle}; Server=OracleServer.world;" Server=OracleServer.world;" "Uid=MyUsername;Pwd=MyPassword;“"Uid=MyUsername;Pwd=MyPassword;“

);); ► ////ODBC Driver for MySQLODBC Driver for MySQL► StrConnect = _T(StrConnect = _T(

"Driver={MySQL ODBC 3.51 Driver};Server=localhost;" "Driver={MySQL ODBC 3.51 Driver};Server=localhost;" "Database=MyDatabase;User=MyUserName;Password=MyPassw"Database=MyDatabase;User=MyUserName;Password=MyPassword;Option=4;“ord;Option=4;“

); ); …………..

Truy Xuất ADOTruy Xuất ADO

Page 17: Kết nối CSDL với VC6.0

Đưa ADO và OLE_DB vào Ứng Đưa ADO và OLE_DB vào Ứng dụngdụng

►Tạo project SDI với lớp cơ sở CFormViewTạo project SDI với lớp cơ sở CFormView►Đăng ký các ActiveX ControlsĐăng ký các ActiveX Controls

Page 18: Kết nối CSDL với VC6.0

Đưa ADO và OLE_DB vào Ứng Đưa ADO và OLE_DB vào Ứng dụngdụng

Page 19: Kết nối CSDL với VC6.0

Đưa ADO và OLE_DB vào Ứng Đưa ADO và OLE_DB vào Ứng dụngdụng

Page 20: Kết nối CSDL với VC6.0

Đưa ADO và OLE_DB vào Ứng Đưa ADO và OLE_DB vào Ứng dụngdụng

// Query DataUpdateData(TRUE);m_ado.SetRecordSource(m_query);m_ado.Refresh();

//Lấy từng dữ liệuC_Recordset cRS;cRS = m_ado.GetRecordset();