用connection加入一条纪录的方法:
// Write the SQL statement into a string
// Cast variant dates to bstr_t so they will be converted into a string
strSQLStatement << L"INSERT INTO ... // Parameters of execute statement
bstr_t strSQLStmt = strSQLStatement.str().c_str();
variant_t vntRecordsAffected; // Execute the SQL statement to create a payment record
pObjADO_Connection->Execute(strSQLStmt, &vntRecordsAffected, 1);_raw好像表示远程调用什么的,在使用过程中没有太多的区别。
// Write the SQL statement into a string
// Cast variant dates to bstr_t so they will be converted into a string
strSQLStatement << L"INSERT INTO ... // Parameters of execute statement
bstr_t strSQLStmt = strSQLStatement.str().c_str();
variant_t vntRecordsAffected; // Execute the SQL statement to create a payment record
pObjADO_Connection->Execute(strSQLStmt, &vntRecordsAffected, 1);_raw好像表示远程调用什么的,在使用过程中没有太多的区别。
第一种,使用ADO头文件和OLE DB SDK 的输入库,在源代码中包含ADO的头文件(adoid.h,adoint.h),并把ADO收入库adoid.lib加到连接器的输入中,这样就可以创建ADO对象的实例,并访问成员函数:
ADOConnection *piConnection;
CoCreateInstance(CLSID_CADOConnection,NULL,CLSIX_INPROC_SERVER,
IID_IADOConnection,(LPVOID *)&piConnection);
第二种,使用VC的#import指令,通过该指令使用ADO库,可以简化代码。这样就可以直接使用你所说的代下划线的类:
_ConnectPrt pConnection;
pConnection.CreateInstance(__uuidof(Connection));
这和上面的那段代码意义一样。带下划线的叫做“只能指针”,在程序中可以不必调用Release函数释放这些对象,而如果用的一种方法,你必须自己释放对象。(因为只能指针在超出自己范围之后,会自动调用Release函数),另外,你也不必再源代码中添加ADO的头文件包含。
#import示例:
#import “C:\program files\commom files\system\ado\msado15.dll” no_namespace rename(“EOF”,”adoEOF”)
但是
m_MyRecordset->AddNew 与 m_MyRecordset->raw_AddNew
m_MyRecordset->Update 与 m_MyRecordset->raw_Update
Index属性与 get_Index,put_Index方法 等等
的区别是什么呢?
还有我怎样能取得一个字段的类型?如果是字符型,我怎样取得它的字段长度?
多谢
当然,在ADO当中也可以使用执行SQL语句的方法来进行更新操作。