ADO连接数据库实验报告
- 格式:doc
- 大小:468.00 KB
- 文档页数:6
连接数据库首先编辑UDL文件。
新建一个txt文件,将其后缀名改为udl即可配置;在头文件中加入:#pragma warning(disable:4146)#import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")#pragma warning(default:4146)using namespace ADODB;#include "icrsint.h"#include "comutil.h"//对COM组件进行初始化#include "comdef.h"在cpp文件中:_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;if FAILED(::CoInitialize(NULL)){CATDlgNotify * pPromptBox = newCATDlgNotify((CATApplicationFrame::GetApplicationFrame())->GetM ainWindow(), "提示", CATDlgNfyInformation);pPromptBox->SetText("初始化COM库失败!!");pPromptBox->SetVisibility(CATDlgShow);return ;HRESULT hr;if(FAILED(m_pConnection.CreateInstance("ADODB.Connection"))) //ADODB.Connection或__uuidof(Connection){cout<<"Error, Unicom: Create the InstanceFailed!"<<endl;CATDlgNotify * pPromptBox = newCATDlgNotify((CATApplicationFrame::GetApplicationFrame())->GetM ainWindow(), "提示", CATDlgNfyInformation);pPromptBox->SetText("创建_ConnectionPtr对象失败!");pPromptBox->SetVisibility(CATDlgShow);m_pConnection->Release();return ;}try{m_pConnection->ConnectionString="File Name=C:/ado.udl";m_pConnection->ConnectionTimeout = 20;///设置超时时间为20m_pConnection->Open("","","",adModeUnknown);}catch(_com_error a_pComError){AfxMessageBox(a_pComError.Description());CATDlgNotify * pPromptBox = newCATDlgNotify((CATApplicationFrame::GetApplicationFrame())->GetM ainWindow(), "提示", CATDlgNfyInformation);pPromptBox->SetText("数据源连接失败,请检查您的数据服务是否正常!!");pPromptBox->SetVisibility(CATDlgShow);m_pConnection.Release();return;}hr=m_pRecordset.CreateInstance(__uuidof(Recordset));//初始化Recordset指针_CommandPtr m_pCommand;m_pCommand.CreateInstance(__uuidof(Command));m_pCommand->ActiveConnection = m_pConnection;m_pCommand->CommandText = thecommandtext; //select * from 表名m_pRecordset = m_pCommand->Execute(NULL, NULL,adCmdText);CATUnicodeString type;int Thecountofm_pRecordset=0;while(!m_pRecordset->adoEOF){_variant_t var;var = m_pRecordset->GetCollect("TYPE_NAME");if (var.vt!=VT_NULL){type=(LPCSTR)_bstr_t(var);//转换成CATUnicodeStringcPublic::AddNewItemToCombo(type,Combo);}m_pRecordset->MoveNext();}m_pRecordset->Close();m_pConnection->Close();::CoUninitialize();。
Vc++利用ado连接数据库目录目录 (2)_com_error &e (4)Ado库的智能指针 (4)ADO ConnectionPtr (4)例子 (4)ADO _RecordsetPtr指针 (5)BOF 和EOF属性 (5)Move (5)GetCollect (5)Recordset15::Open (5)while(!m_pRecordset->adoEOF) (6)例子 (7)_RecordsetPtr和数据库的聚组函数max/count (7)Recordset15::GetCollect() 异常 (7)ADO _CommandPtr: (8)C++编程—>_bstr_t ——>ado编程(COM编程) (8)_bstr_t转换为char* 和wchar_t* (8)char* 和wchar_t*转换为_bstr_t (9)C++编程<—_variant<——ado编程(COM编程) (9)_variant_t转换成CString (9)CString 转为_variant_t: (9)Ado数据库函数参数/返回值类型接口VARIANT (9)ADO组件动态访问excel表格(步骤及说明:如下) (10)1.在StdAfx.h头文件中,用#import指令引入ADO类型库 (10)2. COM库的初始化 (10)3. //创建Connection对象并连接数据库 (10)4. 创建记录集对象 (11)5. 获取表格数据 (11)6、设置表格数据 (12)引入ADO类 (12)(1)、引入ADO类 (12)(2)、初始化COM (12)(3)#import 包含后就可以用3个智能指针了 (12)1.连接和关闭数据库 (12)(1)连接 (12)(2)关闭 (13)2.打开一个结果集 (13)(1)打开 (13)(2)关闭结果集 (14)3.操作一个结果集 (14)(1)遍历(读取) (14)(2)、添加 (15)(3)、修改 (15)(4)、删除 (15)4.直接执行SQL语句,除了要用到结果集其余的大部分功能都可以直接用SQL语言实现 (15)(1)、用_CommandPtr和_RecordsetPtr配合 (15)(2)、直接用_ConnectionPtr执行SQL语句 (16)5.调用存储过程 (16)6.遍历数据库中的所有表名 (16)7.遍历一个表中的所有字段 (17)ADO执行存储过程 (18)一: 执行不带返回参数(Input)的存储过程 (18)二:执行带返回参数(Output)的存储过程 (19)ADO调用存储过程(传入参数、输出参数、返回值) (21)Vc++ 数据集的使用 (22)一个例子 (23)ado例子 (23)在VC中用ADO调用sqlserver存储过程时怎样传递参数? (26)_ParameterPtr (28)Vc++连接oracle,连接字符串 (29)ADO类导出成DL (29)error C2011: “LockTypeEnum”: “enum”类型重定义 (29)VC2010 _com_error 返回的错误信息 (31)ADO操作ACCESS数据库,报BOF或EOF中有一个是真,是怎么回事啊 (32)_com_error &e首先_com_error这是一种数据类型.就好比int,char这类的数据类型一样.&e是表示是这种类型的引用如是定义变量的话就要马上初始化._com_error a;_com_error &e=a;Ado库的智能指针ADO中最重要的对象有三个:Connection、Recordset和Command,分别表示连接对象、记录集对象和命令对象。
ADO、ODBC连接数据库ASP连接数据库可以使用驱动程序,也可以使用数据源(DateSource,需要在Windows操作系统的控制而板里建立,如果ASP服务器更换需要重新配置才能访问数据库)。
不过建议使用驱动程序连接,因为使用驱动程序非常简单,也不会因为ASP移植到其他计算机而重新配置。
一般情况下,大多数用户都使用Access数据库来进行测试,所以这里给出一个标准的连接Access 数据库的方法:Dim connSet conn = Server.CreateObject(“adodb.connection”)Conn.open = “Drive r={microsoft access driver (*.mdb)};dbq=”& Server.mapPath(“/db/bbs.mdb”) & “;UID=用户名;PWD=密码;”注意:第二个“driver”和后面的括号之间有一个空格,此空格不能去掉。
SQL Server连接方法:Dim connSet conn = Server.CreateObject(“adodb.connection”)Conn.open = “Drive r={sql server}; servername=location; database=test ;UID=用户名;PWD=密码;”Recordset对象方法Open方法:recordset.Open Source,ActiveConnection,CursorType,LockType,OptionsSourceRecordset对象可以通过Source属性来连接Command对象。
Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored Procedure。
假如省略这个参数,系统则采用Recordset对象的Source属性。
ActiveConnectionRecordset对象可以通过ActiveConnection属性来连接Connection对象。
ADO连接SQL Server 2008 Express方法总结使用ADO连接微软SQL Server数据库,根据连接的类型有多种连接字符串,并且有些字符串的效果是一样的。
目前已经经过VS2008测试成功的连接字符串说明如下:(1)第一种:指定SQL Server 2008 Express安装的计算机名称“Provider=SQLNCLI10;Server=Hostname\\SQLEXPRESS;Database=DBName; Uid=UserName;Pwd=Password”其中:SQLNCLI10也可以替换为SQLOLEDB。
Hostname为安装了SQL Server 2008 Express的计算机名称,\\SQLEXPRESS 是安装SQL Server 2008 Express的实例名称,数据库安装时将用SQLEXPRESS 作为缺省的实例名称,如果指定了其它实例名,则需要做相应的替换。
DBName为要连接的数据库名称。
UserName和Password分别为连接数据库的用户名和密码。
如果指定信任连接,则可以在最后增加字符串“;Integrated Security=SSPI”或者“;Trusted_Connection=yes”。
(2)第二种:指定SQL Server 2008 Express安装的计算机IP地址直接将上面字符串中的Hostname替换为对应的IP地址(如192.168.1.5)即可,如果IP地址为127.0.0.1,则连接本地的SQL Serve 2008且实例名为SQLEXPRESS的数据库服务器。
需要特别注意的是,此种情况只在SQL Server Browser服务启动时有效。
需要注意的几点:(1)可能由于版本为EXPRESS的缘故,在连接字符串中必须指定形式为HostName\\实例名或者IPAddress\\实例名的形式,否则连接不成功,这可能区别于其它版本的数据库连接方式。
综合设计I开放数据库互连(ODBC)是Microsoft引进的一种早期数据库接口技术。
它实际上是我们要在本章后面加以讨论的ADO的前身。
Microsoft引进这种技术的一个主要原因是,以非语言专用的方式,提供给程序员一种访问数据库内容的简单方法。
换句话说,访问DBF文件或其他数据库以得到数据库中的数据时,无需懂得数据库程序设计语言。
一.实验目的1.掌握客户端访问数据库的方法。
2.掌握常用数据感知元件的应用。
3、DELPHI程序的基本设计方法。
二.实验内容1.ADO简介ADO是Active Data Objects(活动的数据对象)的简称,是Microsoft用来访问数据库接口,也称OLE DB(对象链接和嵌入数据库)。
Delphi提供了一组ADO元件,可以通过在ADO中将ADOConnection拖入FORM1中,并单击设置ConnectionString→Build→提供者选择。
for SQL Server;连接选择:数据库、用户。
;高级设置:连接超时30秒。
测试并确定。
3.使用ADOTable来连接表同样设置ADOTable,Connection属性为以上设置的ADOConnection1,在TableName 中选择连接的表名。
设置Active为true。
4.使用DBGrid显示表先Data Access中选择设置Data Source的DataSet属性为ADOTable1。
然后再在Data Controls中,选择设置DBGrid(方法同上)DataSource属性为Data Source1。
5.使用数据库导航器(DBNavigator)在Data Controls中,选择设置DBNavigator 的DataSource属性为Data Source1。
6.实现在同一窗体中显示多表内容,并能用数据库导航器进行增加、删除等操作。
7、主界面的制作缺省状态下,工程中创建并保存的第一个窗体将成为工程的主窗体,若要改变工程的主窗体,操作如下:1)选择Project/Options,然后选中Forms页面。
MFC中用ADO连接数据库(2012-04-12 15:50:06)分类:MFC标签:mfc杂谈一、数据库操作准备1、导入ADO动态链接库在工程的stdafx.h中加入如下语句:#import "c:\program files\common files\system\ado\msado15.dll" no_namespace\rename("EOF","adoEOF")这一语句有何作用呢?其最终作用同我们熟悉的#include类似,编译的时候系统会为我们生成msado15.tlh和msado15.tli两个C++头文件来定义ADO库,即加载ADO动态库(msado15.dll)。
其中,no_namespace表明不使用命名空间,rename("EOF","adoEOF")表明把ADO中用到的EOF改为adoEOF,防止发生命名冲突。
注意:该代码需要在一行中完成,如果写成两行或者多行,行末要加上“\”符号,表示把这几行看成一行,如本例。
2、初始化OLE/COM库环境在基于MFC的应用里,初始化OLE/COM库环境的一个比较好的位置是在应用类的InitInstance成员函数中,而且直接使用AfxOleInit,在退出应用时,该函数也负责COM资源的释放,将此函数添加在InitInstance中的如下位置:BOOL CExpApp::InitInstance(){AfxEnableControlContainer();//初始化OLE DLLsif(!AfxOleInit()){AfxMessageBox("初始化OLE DLL失败!");Return FALSE;}......}说明:也可以在InitInstance中使用::CoInitialize初始化OLE/COM库环境,但须在ExitInitInstance中使用::CoUninitialize释放占用的COM资源,显然使用AfxOleInit更为方便。
第七章任务一
实验目的:学习网页和SQL Server数据库建立连接实验要求:
1.将网页和SQL Server数据库建立连接
2.向学生数据库中的学生表中输入数据
3.使用Response输出学生表中所有数据
4.使用GridView控件输出学生表中的所有数据
实验步骤:
第一步:建立个数据库
第二步:连接起来
第三步:编写处理代码
实验结果:
详细代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection SunCon = new SqlConnection("Data Source=djsw43;Initial Catalog=学生管理;Integrated Security=True");
SunCon.Open();
string StuSQL;
StuSQL = "INSERT INTO 学生(学号,姓名,性别,籍贯,班级,电话)";
StuSQL = StuSQL + "VALUES('"+ TextBox1.Text + "','" + TextBox2.Text;
StuSQL = StuSQL + "','" + TextBox3.Text + "','" + TextBox4.Text;
StuSQL = StuSQL + "','" + TextBox5.Text + "','" + TextBox6.Text + "')";
SqlCommand StuIns = new SqlCommand(StuSQL , SunCon);
StuIns.ExecuteNonQuery();
SunCon.Close();
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("sun7_1a.aspx");
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Redirect("sun7_1b.aspx");
}
}
sun7_1a.aspx.cs 代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class sun7_1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection SunCon = new SqlConnection("Data Source=djsw43;Initial Catalog=学生管理;Integrated Security=True");
SunCon.Open();
string StuSQL;
StuSQL = "SELECT 学号,姓名,性别,籍贯,班级,电话 FROM 学生";
SqlCommand StuIns = new SqlCommand(StuSQL, SunCon);
SqlDataReader SunDa = StuIns.ExecuteReader();
while (SunDa.Read())
{
Response.Write(SunDa.FieldCount);
Response.Write(SunDa.GetString(0) + " ");
Response.Write(SunDa.GetString(1) + " ");
Response.Write(SunDa.GetString(2) + " ");
Response.Write("<br/>");
}
SunCon.Close();
}
}
sun7_1b.aspx.页面中插入GridView按钮代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class sun7_1b : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection SunCon = new SqlConnection("Data Source=djsw43;Initial Catalog=学生管理;Integrated Security=True");
SunCon.Open();
string StuSQL;
StuSQL = "SELECT 学号,姓名,性别,籍贯,班级,电话 FROM 学生";
SqlCommand StuIns = new SqlCommand(StuSQL, SunCon);
SqlDataReader SunDa = StuIns.ExecuteReader();
GridView1.DataSource = SunDa;
GridView1.DataBind();
SunCon.Close();
}
}。