|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天ado|数据|数据库|数据库毗连这些天一向在进修ADO数据库毗连,感到对照庞大,以是一边进修,一边利用,一边做了一些条记,上面的一些器材就是我总结的一些关于ADO数据库毗连方面的器材,由于是条记,以是纷歧定很有序,贴出来的意义一方面是能够给人人一个参考,一边也有但愿人人一同来完美的意义,个中毛病和不敷的地方固然但愿人人能够实时地关照我,在贴下去的时分,我有一个设法,由于我在利用的过程当中,老是会赶上一些莫明其妙的毛病,以是我想人人有大概也会赶上,因而,我给出了一个毛病总结,固然这里就必要人人一同来完美了,假如人人有甚么心得和看法,但愿在批评中留言,我会实时地承受人人的定见并把他们加出去(固然是在失掉您的同意的情形下)
1、导进库文件
利用ADO前必需在工程的stdafx.h文件最初用间接引进标记#import引进ADO库文件,以使编译器能准确编译。代码以下:
#import"C:ProgramFilescommonfilessystemadomsado15.dll"no_namespacerename("EOF","EndOfFile")rename("BOF","FirstOfFile")
ADO类的界说是作为一种资本存储在ADODLL(msado15.dll)中,在其外部称为范例库。范例库形貌了自治接口,和C++利用的COMvtable接口。当利用#import指令时,在运转时VisualC++必要从ADODLL中读取这个范例库,并以此创立一组C++头文件。这些头文件具有.tli和.tlh扩大名,读者能够在项目标目次下找到这两个文件。在C++程序代码中挪用的ADO类要在这些文件中界说。
程序的第三行唆使ADO工具不利用称号空间。在有些使用程序中,因为使用程序中的工具与ADO中的工具之间大概会呈现定名抵触,以是有需要利用称号空间。假如要利用称号空间,则可把第三路程序修正为:rename_namespace("AdoNS")。第四行代码将ADO中的EOF(文件停止)改名为adoEOF,以免与界说了本人的EOF的其他库抵触。
2、初始化COM情况
(1)::CoInitialize(NULL);//初始化OLE/COM库情况
::CoUninitialize();//既然初始化了情况,固然就有需要开释他了
(2)也能够挪用MFC全局函数
AfxOleInit();
3、三年夜工具的界说和创立实例
(1)_ConnectionPtrpConnection("ADODB.Connection");
_RecordsetPtrpRecordset("ADODB.Recordset");
_CommandPtrpCommand("ADODN.Command");
(2)_ConnectionPtrpConnection;
_RecordsetPtrpRecordset;
_CommandPtrpCommand;
pConnection.CreateInstance(__uuidof(Connection));
pRecordset.CreateInstance(__uuidof(Recordset));
pCommand.CreateInstance(__uuidof(Command));
(3)_ConnectionPtrpConnection;
_RecordsetPtrpRecordset;
_CommandPtrpCommand;
pConnection.CreateInstance("ADODB.Connection");
pRecordset.CreateInstance("ADODB.Recordset");
pCommand.CreateInstance("ADODB.Command");
4、翻开一个毗连
pConnection->Open(ConnectionString,"","",adModeUnknown);///毗连数据库
下面的毗连字符串ConnectionString依据分歧的数据源,分离对应分歧的写法
1)会见Access2000
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=databaseName;UserID=userName;Password=userPassWord"
2)会见ODBC数据
"Provider=MADASQL;DSN=dsnName;UID=userName;PWD=userPassword;"
3)会见Oracle数据库
“Provider=MSDAORA;DataSourse=serverName;UserID=userName;Password=userPassword;"
3)会见MSSQL数据库
"Provider=SQLOLEDB,DataSource=serverName;InitialCatalog=databaseName;UserID=userName;Password=userPassword;"
4、实行SQL命令
SQL命令对照多,可是不往思索细节,这里只说出通用的办法
CStringstrSQL;//界说SQL命令串,用来保留SQL语句
strSQL.Format("SQLstatement");
然后在每一个要用到SQL命令串的办法中,利用strSQL.AllocSysString()的办法举行范例转换
5、com的公用数据范例
variant,bstr,SafeArray
variant变量的局限包含良多,利用_variant_t举行办理
bstr是一种字符串变量,利用_bstr_t举行办理
6、封闭毗连
if(m_pConnection->State)//不克不及屡次封闭,不然会呈现毛病
m_pConnection->Close();
7、布局化非常处置
ADO封装了COM接口,以是必要举行毛病处置
以下例:
HRESULThr;
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");///创立Connection工具
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=test.mdb","","",adModeUnknown);///毗连数据库
///下面一句中毗连字串中的Provider是针对ACCESS2000情况的,关于ACCESS97,必要改成:Provider=Microsoft.Jet.OLEDB.3.51;}
}
catch(_com_errore)///捕获非常
{
CStringerrormessage;
errormessage.Format("毗连数据库失利!
毛病信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显现毛病信息
}
8、毛病缘故原由的剖析
(1)不撑持接口,多是不克不及拔出空值
好了,但愿人人能够跟我一同完美这篇总结!
ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用 |
|