山那边是海 发表于 2015-1-16 23:08:53

ASP网站制作之ADO编程使用(2)

asp,jsp,php是web开发的三大技术,asp简单易用且有microsoft做靠山,jsp功能强大是因为有java支持,php则开源跨平台.在国内,asp应用范围最广,jsp发展势头最猛,php则处于劣势.这可能与公司的支持以及技术的培训有关.ado|编程上面是一个复杂的接纳了#import办法的基于ADO使用的示例代码:
#include<windows.h>
#import<msado15.dll>rename(“EOF”,“adoEOF”)
voidmain()
{
HRESULThr=S_OK;
//由于没有在#import中指定no_namespace,以是必需接纳ADODB::如许的情势来界说变量范例
ADODB::_RecordsetPtrRs1=NULL;
//经由过程ODBC创建ADO毗连
_bstr_tConnect(“DSN=AdoDemo;UID=sa;PWD=;”);
_bstr_tSource(“SELECT*FROMAuthors”);
CoInitialize();
//初始化Rs1工具
hr=Rs1.CreateInstance(__uuidof(ADODB::Recordset));
//省略对前往值hr的判别
Rs1->Open(Source,
Connect,
ADODB::adOpenForwardOnly,
ADODB::adLockReadOnly,
-1);
//此处能够增加对纪录集Rs1举行操纵的代码
Rs1->Close();
Rs1=NULL;
::MessageBox(NULL,“Success!”,“”,MB_OK);
CoUninitialize();
}
2.用MFCOLE创立ADO使用
MFCOLE一样可以封装(wrapper)一个范例库,可是与#import分歧,它不克不及从范例库中发生列举范例。MFC类CString和COleVariant埋没了BSTRS和Variants的细节。由MFCOLE发生的类都承继了类ColeDispatchDriver,由ADO发生的失利的HRESULTS被封装在类ColeDispatchException中。
用MFCOLEClassWizard创立ADO使用的步骤以下:
●从Tools菜单中,选择Options选项中的Directoriestab条目,在ShowDirectories中的LibraryFiles中增添路径C:programfilescommonfilessystemado,设置包括ADO范例库的路径。
●从View菜单中,激活ClassWizard,点击AddClass按钮并选择“FromATypeLibrary...”选项,然后在TypeLibrarydialogbox对话框中,从C:programfilescommonfilessystemado当选择文件msado15.dll,在ConfirmClasses对话框中,选择一切列出的类并按OK按钮加入ClassWizard。如许,ClassWizard便天生了两个文件msado15.h和msado15.cpp。
上面是完成ADO使用的示例代码:
//初始化COM工具
AfxOleInit();
...
//界说数据集工具
_RecordsetRs1;
COleExceptione;
COleVariantConnect(“DSN=AdoDemo;UID=sa;PWD=;”);
COleVariantSource(“SELECT*FROMAuthors”);
//创立数据集工具
Rs1.CreateDispatch(“ADODB.Recordset.2.0”,&e);
Rs1.Open((VARIANT)Source,
(VARIANT)Connect,
0,1,-1);
//此处能够增加对了局集Rs1举行处置的代码
Rs1.Close();
Rs1.ReleaseDispatch();
AfxMessageBox(“Success!”);
3.用COMAPI创立ADO工程
#import和MFCOLE都环绕着一个给定的主动化工具发生了一个封装类,它们分离承继自_com_ptr_t和ColeDispatchDriver。实在也能够经由过程利用WindowsAPI函数间接初始化ADO工具。为了间接利用ADO和COM工具,必要增加两个头文件adoid.h和adoint.h,这两个头文件界说了CLSIDs、接口界说和操纵ADO范例库所必要的列举范例。别的,还必要增添头文件INITGUID.H。
为了可以编译用COMAPI创立的ADO工程文件,还必要在呆板中安装OLEDBSDK大概是MSDASDK工具。上面是使用API创立ADO的复杂的示例代码:
#include<windows.h>
#include<initguid.h>
#include“adoid.h”//ADO的GUIDs
#include“adoint.h”//ADO的类、列举等等
voidmain()
{
HRESULThr=S_OK;
//ADORecordset是在adoint.h中界说的
ADORecordset*Rs1=NULL;
VARIANTSource;
VARIANTConnect;
VariantInit(&Source);
VariantInit(&Connect);
Source.vt=VT_BSTR;
Source.bstrVal=::SysAllocString(L“SELECT*FROMAuthors”);
Connect.vt=VT_BSTR;
Connect.bstrVal=::SysAllocString(L“DSN=AdoDemo;UID=sa;PWD=;”);
hr=CoCreateInstance(CLSID_CADORecordset,
NULL,
CLSCTX_INPROC_SERVER,
IID_IADORecordset,
(LPVOID*)&Rs1);
if(SUCCEEDED(hr))hr=Rs1->Open
(Source,
Connect,
adOpenForwardOnly,
adLockReadOnly,
-1);
//对纪录集Rs1举行处置
if(SUCCEEDED(hr))hr=Rs1->Close();
if(SUCCEEDED(hr)){Rs1->Release();Rs1=NULL;}
if(SUCCEEDED(hr))::MessageBox(NULL,“Success!”,“”,MB_OK);
}
C++Extensions
假如用C++举行ADO使用程序开辟,应当利用ADOC++Extensions。我们晓得,用VB大概VBScript来操纵ADO长短常便利的,可是假如利用C++大概是Java,就必需要处置相似Variants如许的数据布局以完成和C++数据布局的转换,而这类处置无疑是一切C++开辟职员都很头疼的事变。但假如利用C++Extensions的话,ADO就不必要从数据供应者处失掉列信息,而是在计划时候利用开辟职员供应的列信息。以下是一个复杂的示例:
//创立和详细纪录绝对应的类
classCAuthor:publicCADORecordBinding
{
BEGIN_ADO_BINDING(CCustomRs1)
ADO_VARIABLE_LENGTH_ENTRY4(1,
adVarChar,m_szau_id,sizeof(m_szau_id),FALSE)
ADO_VARIABLE_LENGTH_ENTRY4(2,
adVarChar,m_szau_fname,sizeof(m_szau_fname),FALSE)
ADO_VARIABLE_LENGTH_ENTRY4(3,
adVarChar,m_szau_lname,sizeof(m_szau_lname),FALSE)
END_ADO_BINDING()
protected:
charm_szau_id;
charm_szau_fname;
charm_szau_lname;
};
voidFetchAuthorData()
{
CAuthorauthor;
//纪录集工具
_RecordsetPtrpRs;
IADORecordBinding*piAdoRecordBinding;
//猎取COM工具接口指针
pRs.CreateInstance(__uuidof(Recordset));
//失掉必要的纪录集
pRs->Open(“selectau_id,au_fname,au_lnamefromEmployees”,“Provider=SQLOLEDB;DataSource=sureshk1;Database=pubs;UserId=sa;Password=;”,
adOpenForwardOnly,
adLockReadOnly,
adCmdText);
//查询接口IADORecordBinding
pRs->QueryInterface(__uuidof(IADORecordBinding),(LPVOID*)&piAdoRecordBinding);
//绑定工具
piAdoRecordBinding->BindToRecordset(&autho</p>缺乏可以共同遵循的行业标准,ASP还处在发展初期,大家对它的理解不同,如产品和服务标准,收费标准等,不利于行业的健康发展。

若天明 发表于 2015-1-20 07:37:42

ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。

活着的死人 发表于 2015-1-24 16:02:56

ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。

小魔女 发表于 2015-2-2 09:09:21

学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。

金色的骷髅 发表于 2015-2-7 17:39:26

下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助...

谁可相欹 发表于 2015-2-22 17:49:49

下载一个源代码,然后再下载一个VBScript帮助,在源代码中遇到不认识的函数或是其他什么程序,都可以查帮助进行解决,这样学习效率很高。

蒙在股里 发表于 2015-3-7 01:09:59

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

老尸 发表于 2015-3-13 23:47:12

那么,ASP.Net有哪些改进呢?

乐观 发表于 2015-3-20 22:36:08

我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
页: [1]
查看完整版本: ASP网站制作之ADO编程使用(2)