数据仓库实验ODBC
- 格式:doc
- 大小:216.00 KB
- 文档页数:6
实验八访问数据库应用实例一.实验目的:能够熟练运用某种高级语言进行数据库编程二.实验内容:编写一个访问数据库的程序,要求该程序具备查询、插入、删除、修改四个基本功能。
三.实验过程:(将程序的实验过程简单描述并将相关界面截图,关键代码附在文中)本次实验我采用ODBC方式连接数据库,要求先创建ODBC数据源,应用程序通过数据源与数据库连接。
1.利用之前实验中已有的数据库student,其中student表中含有的学生信息2.创建ODBC数据源(1)“开始”—〉“设置”—〉“控制面板”—〉“管理工具”—〉“数据源(ODBC)”,打开之后出现如图所示窗口(2)点击“添加”按钮,出现下图(3)选择SQL Server,点击“完成”,出现下图(4)这里要更改默认的数据库,默认情况下数据源所连接的数据库为master,这里要改为student数据库(5)点击“测试数据源”,如果测试成功说明数据源已成功创建3.创建VC应用程序(1)打开VC6.0++,新建工程,选择MFC AppWizard(exe),添加5个BUTTON控件,其值分别为插入,修改,删除,查询,刷新,4个static控件,其值分别为学号,姓名,年龄,所在系,5个Edit Box控件,如图所示:(2)实验结果及相关代码:原数据库中student表插入void CMy123View::OnButton4(){// TODO: Add your control notification handler code here CString strAge;GetDlgItem(IDC_EDIT1)->GetWindowText(strAge);int nAge = atoi(strAge.GetBuffer(0));if(nAge<0 || nAge>120){AfxMessageBox("输入的年龄不符合实际!");return;}//呈编辑状态m_pSet->AddNew();UpdateData();//更新数据库m_pSet->Update();//重新获得记录集m_pSet->Requery();UpdateData(FALSE);}删除void CMy123View::OnButton5(){// TODO: Add your control notification handler code here m_pSet->Delete();m_pSet->Requery();UpdateData(FALSE);}刷新void CMy123View::OnButton3(){// TODO: Add your control notification handler code here CWnd* c1;c1= CWnd::GetDlgItem(IDC_EDIT5);//获得编辑框c1->SetWindowText("");//将编辑框置空c1= CWnd::GetDlgItem(IDC_EDIT6);c1->SetWindowText("");c1=CWnd::GetDlgItem(IDC_EDIT1);c1->SetWindowText("");c1= CWnd::GetDlgItem(IDC_EDIT2);c1->SetWindowText("");}修改void CMy123View::OnButton6(){// TODO: Add your control notification handler code here CString strAge;GetDlgItem(IDC_EDIT1)->GetWindowText(strAge);int nAge = atoi(strAge.GetBuffer(0));if(nAge<0 || nAge>120){AfxMessageBox("输入的年龄不符合实际!");return;}//呈编辑状态m_pSet->Edit();UpdateData();//更新数据库m_pSet->Update();//重新获得记录集m_pSet->Requery();UpdateData(FALSE);}四.实验总结这次实验通过VC++6.0工具和SQL Sever2005进行数据库编程,编程的过程最开始是建立数据库连接,有ODBC和ADO两种方法,我选的是ODBC来建立数据库,需要先建立数据源,编程的过程用到了一些控件,这些控件才使得界面设计很规范,在代码的设计上将数据库中一些查询,删除,修改,插入一起用到VC中,SQL Sever2005与高级语言有很好的兼容性,所以可以很好的完成这些操作,这次试验让我知道了SQL Sever2005的用处。
ODBC介绍一、什么是ODBCODBC(Open Database Connectivity)是“开放式数据库互连”的简称,由微软提出,是一种使用SQL的应用程序接口(API),用户可以添加数据库驱动程序,将您的应用程序链接到自己的数据库管理系统。
ODBC的最大优点是能以统一的方式处理所有的数据库,用它生成的程序与数据库无关。
二、ODBC驱动1.查看系统所安装的ODBC驱动程序:“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“驱动程序”。
2.若系统所安装的ODBC驱动程序里没有你想要的ODBC驱动,如Oracle的ODBC驱动,只需正常的安装ORACLE软件,系统会自动的将ORACLE对应的驱动程序加载到ODBC驱动程序里面。
三、数据源1.创建数据源“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“添加”数据源添加完成后,名称项下的所有项都为已创建好的数据源。
2. 配置数据源(修改数据源名、说明及所指数据库)“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“配置”根据选择的数据源,单击“配置”会打开数据源所对应的配置窗口(如下图)。
3. 删除数据源“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”/“删除”选择将要删除的数据源,单击“删除”,出现删除确认窗口,选择“是”则成功删除所选择的数据源。
实例1:为SQL数据库(FXBBDATA.MDB)创建ODBC数据源。
1、“开始”/“设置”/“控制面板”/“管理工具”/“数据源 (ODBC)”,出现“ODBC数据源管理器”窗口2、单击“添加”按钮,选择SQL驱动程序,单击“完成”3、出现“创建到SQL Server 的新数据源”窗口,输入数据源名称、描述、选择要连接到的SQL Server服务器,单击“下一步”4、出现“创建到SQL Server的新数据源”窗口,设置完后单击“下一步”注意:若在此处选择“使用用户输入登录ID和密码的SQL Server 验证”。
ODBC数据源一、概述ODBC(Open DataBase Connectivity,开放数据库连接)是一种开放的标准接口,用于通过SQL(Structured Query Language,结构化查询语言)访问数据库,并提供了跨平台、跨数据库的数据访问能力。
ODBC数据源是ODBC标准定义的一种数据源,它允许应用程序通过ODBC驱动程序连接和访问各种类型的数据存储。
二、ODBC驱动程序要访问ODBC数据源,必须安装相应的ODBC驱动程序。
ODBC驱动程序通常由数据库供应商或第三方开发者提供,用于建立应用程序与数据库之间的连接。
每个数据库都需要特定的ODBC驱动程序来实现与ODBC标准的兼容性。
三、ODBC数据源的类型ODBC数据源可以分为系统数据源和用户数据源两种类型。
1. 系统数据源系统数据源是在操作系统层面创建的,对所有用户都可见的数据源。
系统数据源通常由系统管理员或安装程序创建,并可以被系统中的任何应用程序访问。
系统数据源的配置信息存储在系统注册表或配置文件中。
2. 用户数据源用户数据源是在用户层面创建的,只对当前用户可见的数据源。
用户数据源通常由用户自己创建,并只能被创建该数据源的用户访问。
用户数据源的配置信息存储在用户的个人文件夹中。
四、ODBC数据源的配置配置ODBC数据源需要进行以下步骤:1. 安装ODBC驱动程序首先需要安装相应的ODBC驱动程序。
驱动程序的安装过程因供应商而异,可以根据提供的安装程序进行安装。
2. 创建数据源名称在配置ODBC数据源之前,首先需要确定数据源的名称。
数据源的名称是应用程序连接到数据源的标识符。
3. 配置系统数据源要配置系统数据源,可以打开ODBC数据源管理器(ODBC Data Source Administrator)。
在ODBC数据源管理器中,可以选择系统数据源标签,并点击“添加”按钮创建新的系统数据源。
在配置数据源时,需要指定驱动程序的名称和连接字符串等信息。
ODBC数据库接口的介绍什么是ODBCMcrosoft推出的ODBC(Open Database Connectivity)技术为异质数据库的访问提供了统一的接口。
ODBC基于SQL(Structured Query Language),并把它作为访问数据库的标准。
这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。
一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。
ODBC可以为不同的数据库提供相应的驱动程序。
ODBC的灵活性表现在以下几个方面:♦应用程序不会受制于某种专用的API;♦ SQL语句以源代码的方式直接嵌入在应用程序中;♦应用程序可以以自己的格式接收和发送数据;♦ ODBC的设计完全和ISO Call-Level Interface兼容;♦现在的ODBC数据库驱动程序支持55家公司的数据产品;ODBC的名词术语ODBC驱动程序:是一个动态链接库(DLL),用以将特定的开放式数据库连接的数据源和另一个应用程序(客户端)相连接。
ODBC数据源:作为数据源使用的数据库或数据库服务器。
ODBC数据源通过它们的数据源名称来引用,或者通过具体引用ODBC驱动程序和服务器名称来引用。
可以在Windows的控制面板中使用ODBC 管理程序或rdoRegisterDataSource(一个ODBC API)方法来注册命名的数据源。
ODBC驱动程序管理器:提供从主机语言到特定后端数据源驱动程序的接口。
ODBC API:数据库厂商为程序设计者提供的直接访问数据库的一组函数。
注意:这里要指出的是,虽然ODBC API提供了很多很方便而且强大的功能。
但是ODBC API都比较难学,而且使用很容易出错。
虽然允许用ODBC API来操作ODBC句柄,如果不正确使用ODBC API,可能会导致不可预知的错误。
配置ODBC数据源ODBC管理器(Administrator)它负责安装驱动程序,管理数据源,并帮助程序员跟踪ODBC的函数调用。
使用ODBCAPI连接数据库ODBC (Open Database Connectivity) API 是一个为了在不同的应用程序中连接数据库而设计的接口。
它提供了一个标准的方法来访问各种数据库管理系统(DBMS),包括微软的SQL Server、Oracle、MySQL等等。
ODBC API可以让应用程序开发者在不用修改代码的情况下,连接不同的数据库系统。
ODBCAPI的使用可以分为以下几个步骤:1. 安装ODBC驱动程序:首先,在开发机上安装数据库系统对应的ODBC驱动程序。
每个数据库系统都有自己的ODBC驱动程序。
例如,如果要连接MySQL数据库,可以安装MySQL Connector/ODBC驱动程序;如果要连接SQL Server数据库,可以安装SQL Server Native Client驱动程序。
2.配置ODBC数据源:在ODBC数据源管理器中配置ODBC数据源。
数据源是一个指向数据库的连接,它包含了连接数据库所需的信息,如数据库的名称、服务器的地址、登录名和密码等。
可以通过ODBC管理器创建用户数据源(只对当前用户可见)或系统数据源(对所有用户可见)。
3. 连接数据库:在应用程序中使用ODBC API连接数据库。
首先,需要调用`SQLAllocHandle`函数来分配一个ODBC环境句柄、连接句柄和语句句柄。
然后,使用`SQLSetEnvAttr`函数设置环境句柄的属性,如ODBC版本号。
接下来,使用`SQLConnect`函数连接到ODBC数据源。
此时需要提供数据源名称、登录名和密码等信息。
4. 执行SQL语句:连接成功后,就可以使用ODBC API执行SQL语句。
可以使用`SQLPrepare`函数准备SQL语句,然后使用`SQLExecute`函数执行它。
也可以直接使用`SQLExecDirect`函数准备和执行SQL语句。
执行完SQL语句后,可以使用`SQLFetch`函数获取查询结果集中的一行数据。
odbc原理ODBC(Open Database Connectivity)是一种用于数据库访问的标准接口,它提供了一种统一的方式来连接和操作不同数据库管理系统(DBMS)。
本文将介绍ODBC的原理及其在数据库访问中的作用。
一、ODBC的原理ODBC的原理基于客户端/服务器模型,客户端应用程序通过ODBC API(Application Programming Interface)与ODBC驱动程序进行交互,然后驱动程序将请求转发给相应的数据库管理系统(DBMS)进行处理。
ODBC通过使用SQL(Structured Query Language)来访问和操作数据库。
ODBC的核心原理在于提供了一种通用的接口,使得应用程序无需关心底层数据库的细节,只需通过ODBC API来进行数据库操作。
这样,应用程序可以与多种不同的数据库进行交互,而无需修改代码。
二、ODBC的作用1. 提供统一的数据库访问接口:ODBC为应用程序提供了一种统一的接口,使得开发人员可以使用相同的API来访问不同的数据库。
这样,开发人员无需学习和使用不同数据库特定的接口,提高了开发效率。
2. 实现跨平台数据库访问:由于不同数据库管理系统(DBMS)具有不同的API和协议,直接访问不同数据库可能会导致移植性问题。
而ODBC提供了一种跨平台的解决方案,使得应用程序可以在不同操作系统上访问同一种数据库,提高了应用程序的可移植性。
3. 支持多种数据库管理系统:ODBC支持多种不同的数据库管理系统,如Oracle、MySQL、SQL Server等。
这样,开发人员可以选择最适合自己需求的数据库,并且无需改变应用程序的代码。
4. 提供高性能的数据库访问:ODBC驱动程序负责将应用程序的请求转发给底层的数据库,通过优化查询和数据传输等操作,提高了数据库访问的性能。
5. 支持数据的事务处理:ODBC允许应用程序开启和提交事务,保证数据的一致性和完整性。
odbc 标准
ODBC(开放式数据库互连)是一个用于访问数据库的统一界面标准。
它实际上是一个数据库访问库,其最大的特点是应用程序不随数据库的改变而改变。
ODBC的工作原理是通过使用驱动程序(Driver)ODBC函数调用的模块,应用程序通过调用驱动程度所支持的函数来操纵数据库,不同类型数据库对应不同的驱动程序。
ODBC提供了一组API(应用程序接口),支持应用程序与数据库服务器之间的交互。
应用程序通过调用ODBC API,实现与数据库的连接,向数据库服务器发送SQL命令,一条一条的提取数据库检索结果中的元组传递给应
用程序的变量。
具体的DBMS提供一套驱动程序,即Driver库函数,供ODBC调用,以便实现数据库与应用程序的连接。
ODBC可以配合很多高级语言来使用,如C、C++、Visual Basic等。
通过ODBC,这些语言可以与数据库服务器进行通讯,实现数据的查询、插入、更新和删除等操作。
如需更多关于ODBC标准的信息,建议查阅相关资料或咨询专业技术人员。
odbc数据源名词解释ODBC(Open Database Connectivity)是一种开放的数据库连接标准,它允许不同的应用程序通过统一的接口来访问不同的数据库管理系统(DBMS)。
ODBC数据源是ODBC连接的一部分,它是一个指向特定数据库的指针,包含了连接数据库所需的信息,如数据库类型、服务器名称、数据库名称、用户名和密码等。
ODBC数据源可以分为两种类型:系统数据源和用户数据源。
系统数据源是在整个系统中都可用的数据源,它们通常由系统管理员创建和配置。
用户数据源是只对当前用户可用的数据源,它们通常由应用程序或用户自己创建和配置。
在创建ODBC数据源时,需要指定以下信息:1. 数据库类型:ODBC支持多种数据库类型,如Oracle、SQL Server、MySQL等。
2. 服务器名称:指定数据库所在的服务器名称或IP地址。
3. 数据库名称:指定要连接的数据库名称。
4. 用户名和密码:用于验证连接数据库的用户身份。
5. 其他选项:如连接超时时间、字符集等。
ODBC数据源的优点在于它提供了一种标准的接口,使得应用程序可以轻松地连接到不同的数据库管理系统,而无需了解每个DBMS的特定细节。
此外,ODBC数据源还可以提高应用程序的性能和可维护性,因为它们可以被多个应用程序共享,而不需要每个应用程序都单独配置数据库连接信息。
然而,ODBC数据源也存在一些缺点。
首先,它们需要在每个客户端计算机上进行配置,这可能会导致一些管理和维护问题。
其次,由于ODBC数据源是通过网络连接到数据库服务器的,因此它们可能会受到网络延迟和安全问题的影响。
总之,ODBC数据源是连接到数据库的重要组成部分,它们提供了一种标准的接口,使得应用程序可以轻松地连接到不同的数据库管理系统。
虽然它们存在一些缺点,但是它们仍然是许多应用程序的首选连接方式。
实验项目十三JDBC数据库编程一、实验目的及要求1、掌握创建ODBC数据源2、掌握创建一个Student表3、运用Type1(JDBC-ODBC桥)连接、访问数据库4、实现数据库的增删改查操作二、实验内容和要求1、在D盘建立sql文件夹,进入该文件夹建立名为stu.mdb的数据库,打开,设计表结构如下(参照P178表10-6),存盘,定表名为Students:打开表,可以添加2条记录如下:2、创建ODBC数据源开始-设置-控制面板-管理工具-数据源,选择“系统DSN”-“添加”,选第2项“Driver do Microsoft Access(*.Mdb)”(如下图):配置系统DNS(数据源):StudentSystem按照以下图例进行设置:数据源名,填StudentSystem,按“选择”,选d:\sql目录下的stu.mdb:再按“高级”按钮,登录名填sa,密码填sql,按“确定”。
记住数据源的名字System,表的名字Students,登录名sa,密码sql,编程会用到。
注意配置环境变量,Dos下加上 set path=C:\Program Files\Java\jdk1.6.0_20\bin3、运用Type1(JDBC-ODBC桥)连接、访问数据库//P179,操作1 创建一个类Student,与上面的表Student是对接:class Student{String No; //学号String Name; //姓名int Age; //年龄String Sex; //性别String Address; //住址String Email; //电子邮件String Phone; //联系电话//创建学生对象,封装数据//编写Student构造函数如下public Student(String No,String Name,int Age,String Sex,String Address,String Email,String Phone){this.No=No;=Name;this.Age=Age;this.Sex=Sex;this.Address=Address;this.Email=Email;this.Phone=Phone;}}编译情况如下:●运行结果●算法分析//P179,操作2 连接数据库:import java.sql.*; //导入包public class StudentSystem{Connection conn; //数据库连接对象Statement stm; //执行简单的SQL语句PreparedStatement pstm;//执行带有参数的SQL语句ResultSet rs; //保存查询结果StudentSystem()throws Exception{//加载驱动程序Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//连接数据库conn=DriverManager.getConnection("jdbc:odbc:StudentSystem","sa","sql"); }//操作3 :显示数据表的内容://查询并显示所有学生信息void selectAll()throws SQLException{stm=conn.createStatement();//创建Statement对象rs=stm.executeQuery("select * from Students");//执行SQL语句//判断是否有查询结果并显示while(rs.next()){printAll();System.out.println("------------------------------");}closeAll();//关闭Statement对象和ResultSet结果集//操作4 增:插入一条记录到数据表中://插入学生信息void insertStudent(Student s)throws SQLException{//创建带有参数的preparedStatement对象pstm=conn.prepareStatement("insert into Students values(?,?,?,?,?,?,?)"); //为参数赋值setValue(s);//执行SQL语句pstm.executeUpdate();//关闭preparedStatement对象pstm.close();}//操作5 删:删除满足条件的记录://删除指定学号的学生void deleteNo(String No)throws SQLException{pstm=conn.prepareStatement("delete from Students where StudentNo=?"); pstm.setString(1,No);pstm.executeUpdate();}//操作6 改:修改数据表的内容://修改指定学号的学生信息/* void updateStudent(Student s)throws SQLException{pstm=conn.prepareStatement("update Students setStudentNo=?,Name=?,Age=?,Sex=?,Address=?,Email=?,Phone=? where StudentNo=?"); setValue(s);pstm.setString(8,s.No);pstm.executeUpdate();pstm.close();}*///操作7 查:查找满足条件的记录://按照指定的学号查找特定学生信息void selectNo(String No)throws SQLException{stm=conn.createStatement();rs=stm.executeQuery("select * from Students where StudentNo='"+No+"'"); if(rs.next()){printAll();}closeAll();//操作8 综合处理://用来显示数据库中的数据private void printAll()throws SQLException{System.out.println("学号:"+rs.getString(1));System.out.println("姓名:"+rs.getString(2));System.out.println("年龄:"+rs.getInt(3));System.out.println("性别:"+rs.getString(4));System.out.println("地址:"+rs.getString(5));System.out.println("Email:"+rs.getString(6));System.out.println("电话:"+rs.getString(7));}//用来为参数设定值private void setValue(Student s)throws SQLException{pstm.setString(1,s.No); //pstm.setString("StudentNo",s.No);pstm.setString(2,); //pstm.setString("Name",);pstm.setInt(3,s.Age); //pstm.setInt("Age",s.Age);pstm.setString(4,s.Sex); //pstm.setString("Sex",s.Sex);pstm.setString(5,s.Address);//pstm.setString("Address",s.Address); pstm.setString(6,s.Email); //pstm.setString("Email",s.Email);pstm.setString(7,s.Phone); //pstm.setString("Phone",s.Phone);}//关闭结果集和Statement对象private void closeAll()throws SQLException{rs.close();stm.close();}//关闭连接void closeConn()throws SQLException{conn.close();}}将上述代码存入d:\j文件夹,名为StudentSystem.java,编译情况如下:●运行结果●算法分析4、实现数据库的增删改查操作//p181,主控程序class MainStudent{public static void main(String args[])throws Exception{//创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象Student s1=new Student("20053051103","李三",22,"男","河北","168755955@","12345908945");Student s2=new Student("20053051105","王五",21,"男","湖北","wangwu@","12345908846");Student s3=new Student("20053051106","刘萍",22,"女","江西","zsan@","12345908965");Student s4=new Student("20053051107","黄志彬",21,"男","湖北","huang@","12345778849");//将学生信息写入数据库ss.insertStudent(s1);ss.insertStudent(s2);ss.insertStudent(s3);ss.insertStudent(s4);//查找指定学号学生//ss.selectNo("20053051101");//修改学生信息//ss.updateStudent(s);//删除指定学号学生信息//ss.deleteNo("20053051102");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}增加4条记录并显示:查找学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//查找指定学号学生ss.selectNo("20053051106");ss.closeConn();}}删除学号为"20053051106" 的学生:class MainStudent{public static void main(String args[])throws Exception{ //创建数据库操作类实例StudentSystem ss=new StudentSystem();//创建学生对象//删除指定学号学生信息ss.deleteNo("20053051106");//显示所有学生信息ss.selectAll();//关闭数据库连接ss.closeConn();}}观察,学号为"20053051106" 的学生即“刘萍”被删除了。