数据库系统概论实验报告4Word格式.docx

上传人:b****4 文档编号:7443814 上传时间:2023-05-08 格式:DOCX 页数:16 大小:923.96KB
下载 相关 举报
数据库系统概论实验报告4Word格式.docx_第1页
第1页 / 共16页
数据库系统概论实验报告4Word格式.docx_第2页
第2页 / 共16页
数据库系统概论实验报告4Word格式.docx_第3页
第3页 / 共16页
数据库系统概论实验报告4Word格式.docx_第4页
第4页 / 共16页
数据库系统概论实验报告4Word格式.docx_第5页
第5页 / 共16页
数据库系统概论实验报告4Word格式.docx_第6页
第6页 / 共16页
数据库系统概论实验报告4Word格式.docx_第7页
第7页 / 共16页
数据库系统概论实验报告4Word格式.docx_第8页
第8页 / 共16页
数据库系统概论实验报告4Word格式.docx_第9页
第9页 / 共16页
数据库系统概论实验报告4Word格式.docx_第10页
第10页 / 共16页
数据库系统概论实验报告4Word格式.docx_第11页
第11页 / 共16页
数据库系统概论实验报告4Word格式.docx_第12页
第12页 / 共16页
数据库系统概论实验报告4Word格式.docx_第13页
第13页 / 共16页
数据库系统概论实验报告4Word格式.docx_第14页
第14页 / 共16页
数据库系统概论实验报告4Word格式.docx_第15页
第15页 / 共16页
数据库系统概论实验报告4Word格式.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库系统概论实验报告4Word格式.docx

《数据库系统概论实验报告4Word格式.docx》由会员分享,可在线阅读,更多相关《数据库系统概论实验报告4Word格式.docx(16页珍藏版)》请在冰点文库上搜索。

数据库系统概论实验报告4Word格式.docx

,'

数据库'

5'

4);

2'

数学'

NULL,2);

3'

信息系统'

4'

操作系统'

6'

3);

数据结构'

7'

数据处理'

PASCAL语言'

8'

DB_DESIGN'

2);

 

--表的结构'

sc'

CREATETABLEsc(

Snochar(9)NOTNULLDEFAULT'

'

Cnochar(4)NOTNULLDEFAULT'

GradesmallintDEFAULTNULL,

PRIMARYKEY(Sno,Cno),

INSERTINTOsc(Sno,Cno,Grade)VALUES

200215121'

92);

85);

88);

200215122'

90);

80);

----------------------------------------------------------

student'

CREATETABLEstudent(

Snochar(9)NOTNULL,

Snamechar(20)DEFAULTNULLUNIQUE,

Ssexchar

(2)DEFAULTNULL,

SagesmallintDEFAULTNULL,

Sdeptchar(20)DEFAULTNULL,

PRIMARYKEY(Sno),

INSERTINTOstudent(Sno,Sname,Ssex,Sage,Sdept)VALUES

李勇'

男'

20,'

CS'

);

刘晨'

女'

19,'

200215123'

王敏'

18,'

MA'

200215125'

张立'

IS'

200215128'

陈冬'

--限制表'

ALTERTABLEcourse

ADDCONSTRAINTcourse_ibfk_1FOREIGNKEY(Cpno)REFERENCEScourse(Cno);

ALTERTABLEsc

ADDCONSTRAINTsc_ibfk_1FOREIGNKEY(Sno)REFERENCESstudent(Sno);

ADDCONSTRAINTsc_ibfk_2FOREIGNKEY(Cno)REFERENCEScourse(Cno);

2.在应用程序App类的InitInstance()函数中添加如下语句,初始化COM库

AfxOleInit();

3.在stdafx.h中加入如下语句引入ADO类库

#import"

c:

\programfiles\commonfiles\system\ado\msado15.dll"

no_namespacerename("

EOF"

"

adoEOF"

几点说明:

(1) 

msado15.dll所在的目录 

(2) 

在编译的时候肯能会出现如下警告,对此微软在MSDN中作了说明,并建议我们不要理会这个警告。

msado15.tlh(405) 

:

warning 

C4146:

unary 

minus 

operator 

applied 

to 

unsigned 

type, 

result 

4.在应用程序的Dlg类的定义中增加三个成员变量:

_ConnectionPtrm_pConnection;

_RecordsetPtrm_pRecordset;

_CommandPtrm_pCommand;

5.在应用程序的Dlg类的OnInitDialog()函数中末尾添加如下语句:

HRESULThr;

try

{

hr=m_pConnection.CreateInstance("

ADODB.Connection"

///创建Connection对象

if(SUCCEEDED(hr))

{

hr=m_pConnection->

Open("

Driver=SQLServer;

Server=localhost;

Database=scdb;

UID=sa;

PWD=abc"

"

adModeUnknown);

}

}

catch(_com_errore)///捕捉异常

CStringerrormessage;

errormessage.Format("

连接数据库失败!

\r\n错误信息:

%s"

e.ErrorMessage());

AfxMessageBox(errormessage);

///显示错误信息

}

注意:

上面语句中的数据库的名称和用户名密码要根据实际情况来填写。

m_pConnection->

上述函数中参数ConnectionString为连接字串;

参数UserID是用户名;

参数Password是登陆密码;

在本例子中,数据库的用户名和密码均没创建,所以去空值””。

参数Options是连接选项,用于指定Connection对象对数据的更新许可权,一般情况下Options可以是如下几个常量:

adModeUnknown 

缺省。

当前的许可权未设置 

adModeRead 

只读 

adModeWrite 

只写 

adModeReadWrite 

可以读写

adModeShareDenyRead 

组织其他Connection对象以读权限打开连接 

adModeShareDenyWrite 

阻止其它Connection对象以写权限打开连接 

adModeShareExclusive 

阻止其它Connection对象以读写权限打开连接 

adModeShareDenyNone 

阻止其它Connection对象以任何权限打开连接。

6.在对话框上添加三个按钮,设置按钮上的标题分别为:

“使用Connection对象访问数据库”、“使用Command对象访问数据库”和“使用RecordSet对象访问数据库”。

7.分别双击三个按钮,进入到每个按钮的事件处理函数中,添加如下语句,测试与数据库的查询。

(1)Connection对象

_variant_tRecordsAffected;

m_pRecordset=m_pConnection->

Execute("

SELECTCOUNT(*)FROMstudent"

&

RecordsAffected,adCmdText);

_variant_tvIndex=(long)0;

_variant_tvCount=m_pRecordset->

GetCollect(vIndex);

///取得第一个字段的值放入vCount变量

m_pRecordset->

Close();

///关闭记录集

CStringmessage;

message.Format("

共有%d条记录"

vCount.lVal);

AfxMessageBox(message);

///显示当前记录条数

(2)Command对象

m_pCommand.CreateInstance("

ADODB.Command"

_variant_tvNULL;

vNULL.vt=VT_ERROR;

vNULL.scode=DISP_E_PARAMNOTFOUND;

///定义为无参数

m_pCommand->

ActiveConnection=m_pConnection;

///非常关键的一句,将建立的连接赋值给它

CommandText="

SELECT*FROMstudent"

;

///命令字串

m_pRecordset=m_pCommand->

Execute(&

vNULL,&

vNULL,adCmdText);

///执行命令,取得记录集

_variant_tvName,vAge,vDept,vSex;

while(!

m_pRecordset->

adoEOF)///这里为什么是adoEO而不是EOF呢?

还记得rename("

)这一句吗?

vName=m_pRecordset->

GetCollect(_variant_t((long)1));

///取得第1列的值,从0开始计数,你也可以直接给出列的名称,如下一行

vAge=m_pRecordset->

GetCollect("

sage"

///取得username字段的值

vDept=m_pRecordset->

sdept"

vSex=m_pRecordset->

ssex"

///在DEBUG方式下的OUTPUT窗口输出记录集中的记录

if(vName.vt!

=VT_NULL&

&

vAge.vt!

vDept.vt!

vSex.vt!

=VT_NULL)

TRACE("

姓名:

%s,性别:

%s,年龄:

%d,所在系:

%s\r\n"

(LPCTSTR)(_bstr_t)vName,

(LPCTSTR)(_bstr_t)vSex,

vAge.lVal,

(LPCTSTR)(_bstr_t)vDept);

m_pRecordset->

MoveNext();

///移到下一条记录

(3)RecordSet对象

m_pRecordset.CreateInstance("

ADODB.Recordset"

_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

adoEOF)///这里为什么是adoEOF而不是EOF呢?

///添加1条新记录并赋值

try{

AddNew();

///添加新记录

PutCollect("

sno"

_variant_t("

201400015"

));

sname"

李四4"

男"

_variant_t((long)18));

CS"

}

AddNew!

Move(1,_variant_t((long)adBookmarkFirst));

///从第一条记录往下移动一条记录,即移动到第二条记录处

PutCollect(_variant_t("

),_variant_t((long)46));

///修改其年龄

Update();

///保存到库中

//m_pRecordset->

/*m_pRecordset->

MoveLast();

///移到首条记录

try{

Delete(adAffectCurrent);

///删除当前记录

删除!

}*/

出现的问题

1.数据库链接不成功

2.格式不正确,编写代码有误

3.通过接收编辑框中的数据然后和数据库中的sno进行比对,如果正确即输出sno,得不到正确结果

CoInitialize(NULL);

_ConnectionPtrpConn(__uuidof(Connection));

_RecordsetPtrpRst(__uuidof(Recordset));

pConn->

ConnectionString="

Provider=SQLOLEDB.1;

PersistSecurityInfo=False;

UserID=sa;

InitialCatalog=chl"

adConnectUnspecified);

pRst=pConn->

select*fromchl"

NULL,adCmdText);

GetDlgItem(IDC_EDIT3)->

GetWindowText(ch1);

_variant_tvar1=pRst->

pRst->

rsEOF&

ch1==var1.vt)

{

((CListBox*)GetDlgItem(IDC_LIST1))->

AddString((_bstr_t)pRst->

sdate"

pRst->

}

pRst.Release();

pConn.Release();

CoUninitialize();

解决方案

1.重新设置密码,改名。

2.由于软件版本不同导致编写出现问题,根据情况修改语句。

3.从数据库里获得的字符串中含有一些空格。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2