当前位置: 主页 > 数据库

连接odbc数据库-odbc连接sql server

发布时间:2023-03-10 21:11   浏览次数:次   作者:佚名

《《odbc数据库编程》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《odbc数据库编程》PPT课件.ppt(41页珍藏版)》请在人人文库网上搜索。

1、第14讲基于ODBC的数据库操作,一. ODBC,1. ODBCOpen Database Connect ODBC是一种访问数据库的标准 2. 这个标准是通过一组ODBC API函数来实现的 3. 应用程序可以通过调用ODBC API函数操作支持ODBC的各种数据库,二.支持ODBC的数据库,1. 大型的数据库如: Oracle Informix Sybase 2. 其它的如SQL Server 6.5 Foxpro MS Access等等 3. 不同厂家的数据库操作函数是不同的,给数据库的操作带来不方便 4. 但几乎所有的数据库都支持ODBC标准,三.ODBC的工作原理,(见下图) 1.

2、有多个不同厂家数据库 DB1, DB2, DB3 2. 分别用不同的ODBC驱动程序driver1, driver2, driver3 3. 这些ODBC驱动程序有两端接口 4. 一端可以直接操作各自的数据库 5. 另一端执行ODBC的标准,与ODBC API函数有连接接口,Windows应用程序,DB2,DB3,DB1,驱动程序1,驱动程序2,驱动程序3,ODBC API,ODBC 驱动程序管理器,ODBC的工作原理图,四. ODBC API函数,1. ODBC API函数有两端接口 2. 一端对用户是透明的,用户可以直接使用这些API函数 另一端通过不同数据库数据库厂家的ODBC驱动程序d

3、river操作数据库,五. MFC封装了ODBC API,应用程序可以直接使用ODBC API函数操作各种数据库。 直接使用ODBC API函数操作各种数据库的工作比较复杂 在MFC中有封装了ODBC API函数的MFC中的类 4. 应用程序也可以使用封装了ODBC API函数的MFC中的类,应用这些类可以方便的完成数据库应用程序的设计,六.封装了ODBC API函数的MFC中的类,1. 主要有两个: CRecordSet类 CDataBase类 2. 这两个类声明包含在头文件afxdb.h中 3. 使用这两个类的文件要 #include ,七. CRecordSet类,1. CRecordS

odbc连接sql server_连接odbc数据库_odbc数据源连接失败

4、et 类中封装了对Table(表)操作的各个ODBC API函数 2. 即CRecordSet 类中的成员函数是对表操作的 3. 可以将一个Table(表)映射为CRecordset类的数据成员 4. 通过CRecordset类的成员函数可以操作该类的数据成员(即Table(表),八. CDataBase 类,1. CDataBase 类中封装了对一个数据库操作的各个ODBC API函数 2. 即CDataBase类中的成员函数是对数据库操作的 3. 可以将一个数据库映射为CDataBase类的数据成员 4. 通过CDataBase类的成员函数可以操作该数据库 5. CDataBase类还支持

5、执行SQL语句,九. 例题: OdbcDemo,1. 建数据库和表 数据库名 : odbcdata 表1名为: test 字段两个:a1 char 10 (Primary Key) a2 char 10,2 . 用Microsoft Access,1.) 在d:odbc文件夹中 2.)新建表 Test,3.建数据源,1.) 主要用控制面板中的ODBC数据源管理器 2.) 也可以用其他应用程序自带的的ODBC数据源管理器 3.) 重要的是必须有相应的数据库厂家的ODBC驱动程序driver,4. ODBC数据源管理器,1.)启动ODBC数据源管理器 2.) 选择“User DSN ”标签 3.)

odbc数据源连接失败_连接odbc数据库_odbc连接sql server

6、 “用户数据源”列表框中的是已创建的ODBC数据源 4.) 选择“添加 ”按钮 5.)选择相应的数据库的ODBC驱动程序“Microsoft Access Driver(*.mdb)”,4. ODBC数据源管理器,6.)在ODBC Configration的对话框中填写: Data Source Name: MyMDB_DSN User ID : Password : Database Name: 选择一个MDB数据库文件,5.创建基于ODBC的数据库应用程序,1.) 用MFC AppWizard生成MFC应用程序 2.)在第二步时重要: what Database Support would

7、 you like to include? 3.)提供了四种选择: None: Header files only: Database View Without file support: Database View With file support:,5.创建基于ODBC的数据库应用程序,4.) 选择第三种: Database View Without file support: 5.) “Data Source.”按钮有效 6.)在“Database options”对话框中: ODBC: MyMDB_DSN 7.) 在“select database tables”对话框中: 选择DB

odbc数据源连接失败_连接odbc数据库_odbc连接sql server

8、A.test 8.)注意:在第六步,视类的基类是: CRecordView 类,6. 数据库应用程序框架,1.) 用Workspace的ClassView工具 发现:有 C*App类 CMainFrame类 C*Doc类 C*View类 各类的作用已介绍 2. )增加了一个类C*Set 这个类由CRecordSet派生: 由两各相关的文件描述,7 . 记录集合类C*Set,1.) 记录集合类C*Set的数据成员可以看作数据库中表Test的Map 2.) 在这个类中的数据成员 CStringm_aa; CStringm_bb; 同中表Test的字段相对应 3.) C*Set类由CRecordSe

9、t派生: CRecordSet类包含了对数据库表的所有操作的 ODBC API函数,8. 数据库中表的一般操作过程,1.) 打开表 2.) 编辑表 a.) insert a record b.) edit a record c.) delete a record d.) 移动 3.)关闭表 CRecordSet类包含这些对数据库表的操作函数 4.) C*Set类管理对表的操作,9. C*Doc类,在文档类中定义了一个C*Set类的对象 public: CODBCTestSet m_oDBCTestSet;,10 .C*View类,1.) 在视类中定义了一个C*Set类的指针 public: C

odbc数据源连接失败_odbc连接sql server_连接odbc数据库

10、ODBCTestSet* m_pSet; 2.) void CODBCTestView:OnInitialUpdate() m_pSet = 指针m_pSet被指向了文档对象中的C*Set类的对象m_oDBCTestSet,11 .连接数据源,1.) 在视类中定义了一个C*Set类的指针 public: CODBCTestSet* m_pSet; 2.) 当调用CRecordSet类的Open()函数时,连接数据源 3.) m_pSet-Open( ) ; 执行这条命令时;将调用C*Set类的成员函数 CString CODBCTestSet:GetDefaultConnect() retur

11、n _T(ODBC;DSN=test); ,11 .连接数据源,4.)或者加上用户名和口令 CString CODBCTestSet:GetDefaultConnect() return _T(ODBC;DSN=test;UID=DBA;PWD=SQL); ,12 . 创建记录集合,1.) 当调用CRecordSet类的Open()函数时,连接数据源,也创建记录集合 2.) m_pSet-Open( ) ; 执行这条命令时;将调用C*Set类的成员函数 CString CODBCTestSet:GetDefaultSQL() return _T(DBA.test); 3.) 这个函数相当于SQ

连接odbc数据库_odbc连接sql server_odbc数据源连接失败

12、L命令: select * from test; 表示选择表中的所有内容创建记录集合,13 .C*Set类的数据成员与记录集合的数据交换,1.) 通过文档类或视类可以操作C*Set类的数据成员 2.) C*Set类对象完成管理记录集合的功能。 C*Set类的对象可以看作一个记录指针连接odbc数据库,能够指向记录集合的一条记录。 3.) 当指向记录集合的一条记录时,可以将这条记录的各个字段与C*Set类的相应的数据成员相互交换数据 4.) 交换通过,13 .C*Set类的数据成员与记录集合的数据交换,1.) void CODBCTestSet:DoFieldExchange(CFieldExchange* pF

13、X) /AFX_FIELD_MAP(CODBCTestSet) pFX-SetFieldType(CFieldExchange:outputColumn); RFX_Text(pFX, _T(aa), m_aa); RFX_Text(pFX, _T(bb), m_bb); /AFX_FIELD_MAP ,14 . 打开和关闭记录集合对象,通过MSDN查CRecordSet类的成员函数 1.) m_pSet-Open( ); 2.) m_pSet-Close( );,15 . 增加新记录,1 .) 在当前记录集合中增加一条新记录,并将记录指针指向这条新增加的记录 if(m_pSet-CanApp

14、end( ) m_pSet-AddNew( ); else . 2.) 修改数据源的内容,以上操作在记录集合中增加一条新记录,但没有修改通过ODBC连接的数据源中的数据表。 3.) 使用m_pSet-Update( )可以完成修改数据源的内容,15 . 增加新记录,if(m_pSet-IsOpen( ) if(m_pSet-CanAppend( ) m_pSet-AddNew( ); else . m_pSet-Update( ),16.修改记录,1 .) 同增加新记录类似 if(m_pSet-CanAppend( ) m_pSet-Edit( ); else . 2.) 使用m_pSet-U

15、pdate( )可以完成修改数据源的内容,17. 删除记录,m_pSet-Delete( ); m_pSet-MoveNext(); if(m_pSet-IsEOF( ) m_pSet-MoveLast(); if(m_pSet-IsBOF( ) m_pSet-SetFieldNull(NULL);,18. CRecordView视类,1.) CRecordView视类是从CFormView类派生的连接odbc数据库,称为表单视图 2.) 它与对话框资源连接,可以对对话框资源进行可视化设计 3.) 对话框资源进行可视化设计,19 . CRecordView视类对象记录集合对象的连接,主要指CRecordView

16、类和C*Set类的连接,前面已介绍,20. 用MFC ClassWizard管理CRecordView类,1.)同前例,21 打开和关闭记录集合对象,通过MSDN查CRecordSet类的成员函数,对对话框进行编辑,能够显示数据 CDialog类的成员函数: UpdateData(TRUE); UpdateData(FALSE);,表的操作过程,1. 打开 2. 操作 3. 关闭 help 找CRecordset类的成员函数,表操作的问题,一个表对应一个CRecordset类,数据库的操作过程,1. 打开 2. 操作 3. 关闭 help 找CDatabase类的成员函数,CDatabase类的打开和关闭,CDatabase database; if(database.IsOpen()database.Close(); database.Open(NULL,FALSE,FALSE,ODBC;DSN=demo;UID=DBA;PWD=SQL;DATABASE=odbcdata); database.Close();,