基于B/S体系结构开发应用系统(2)
2017-09-21 06:16
导读:_RecordsetPtr pRecordSet=NULL,pRecordSetClone=NULL; BSTR bstrDSN=::SysAllocString(LProvider=SQLOLEDB.1;Persist Security Info=True;\ Password=;Initial Catalog=pubs;Data Source=zhudamiing;User ID=sa); B
_RecordsetPtr pRecordSet=NULL,pRecordSetClone=NULL;
BSTR bstrDSN=::SysAllocString(L"Provider=SQLOLEDB.1;Persist Security Info=True;\
Password=;Initial Catalog=pubs;Data Source=zhudamiing;User ID=sa");
BSTR bstrSQL;
try{
GetObjectContext(&m_spObjectContext);
pRecordSet.CreateInstance(__uuidof(Recordset));
//根据查询要求(查询所有课程、查询特定学期所有课程、查询指定课程、查询
//特定学期某一课程)进行不同操作生成相应SQL语句,程序具体处理从略
pRecordSet->CursorLocation = adUseClient;
pRecordSet->Open(bstrSQL,bstrDSN,adOpenKeyset,adLockOptimistic,adCmdText);
pRecordSet->PutRefActiveConnection(NULL);
pRecordSetClone = pRecordSet->Clone(adLockOptimistic);
pRecordSetClone->QueryInterface(IID_IDispatch, (void**)ppRecordset);
pRecordSet->Close();
pRecordSet = NULL;
::SysFreeString(bstrDSN);
::SysFreeString(bstrSQL);
//事物成功完成,则提交该事物
I f(m_spObjectContext-)
m_spObjectContext->SetComplete();
}
catch(_com_error &e){
if(m_spObjectContext) //事物失败,回滚事物处理
m_spObjectContext->SetAbort()
// 其他错误处理,从略
}
return hr;
}
RequeryAllScores()实现部分从略。另外ASP调用实现部分比较简单从略。
组件编译结束后可以用COM+组件服务管理工具来管理COM+组件及其所在的应用程序。COM+组件服务是个图形界面的管理工具,利用它可以安装和发布组件、配置组件及其所在应用程序的属性,以实现组件安全性、MTS支持、排对组件、设置组件构造参数等。
4。2 ActiveX技术应用
在本系统中许多报表的打印如学生成绩打印、学籍报表、学籍卡打印等需要特殊的格式。而浏览器所提供的打印功能无法实现。为此可采用ActiveX技术,实现在WEB环境下的本地端打印和报表生成。具体实现过程为:(1)WWW服务器在接到用户请求后调用WEB应用程序中的相应组件,通过组件访问数据库,对数据处理生成报表数据,以文件形式存储于WEB服务器中相应目录下。(2)WWW服务器向用户浏览器发送内嵌ActiveX控件的HTML页面,并在HTML页面里的(OBJECT)标志中的param属性里指明数据文件的URL地址。(3)HTML页面根据所提供的ActiveX标志从WWW服务器上下载ActiveX控件到本地端,并在浏览器里执行。ActiveX控件在客户浏览器里完成初始化工作以后,则需直接与服务器端联系,以获取报表数据。ActiveX控件与服务器端的连接采用HTTP协议所提供的GET方法,根据数据文件在WWW服务器上的URL地址,直接将数据文件从WWW服务器下载到本地端。(4)对数据文件进行解析,输入到控件的存储显示模块里,用以存储显示。(5)当用户按下打印按钮时,ActiveX调用打印模块进行打印输出。
(科教作文网http://zw.nseAc.com)
体系结构开发应用程序变为流行的方式。将组件技术应用到B/S体系结构中,实现业务逻辑封装,提高软件的可重性和可维护性。