inline CString VTOCSTR(VARIANT *v)
{
if(v->vt==VT_BSTR)
{
CString str((LPCWSTR)v->bstrVal);
return str;
}
else
{
return CString("");
}
}
#define VTOLONG(v)((v).vt==VT_I4 ? (LONG)(v).lVal:0L)
#define VTODATE(v)((v).vt==VT_DATE ? (CTime)(v).iVal:0L)
class CVar : public VARIANT
{
public:
CVar()
{
VariantInit(this);
}
CVar(VARTYPE vt, SCODE scode = 0)
{
VariantInit(this);
this->vt = vt;
this->scode = scode;
}
CVar(VARIANT var)
{
*this = var;
}
~CVar()
{
VariantClear(this);
}
// ASSIGNMENT OPS.
CVar & operator=(PCWSTR pcwstr)
{
VariantClear(this);
if (NULL == (this->bstrVal = SysAllocStringLen(pcwstr, wcslen(pcwstr))))
throw E_OUTOFMEMORY;
this->vt = VT_BSTR;
return *this;
}
CVar & operator=(VARIANT var)
{
HRESULT hr;
VariantClear(this);
if (FAILED(hr = VariantCopy(this, &var)))
throw hr;
return *this;
}
.
operator STR() const
{
if(VT_BSTR == this->vt)
return this->bstrVal;
else
return NULL;
}
operator LONG() const
{
if (VT_I4 == this->vt)
return this->lVal;
else
return NULL;
}
operator DATE() const
{
if (VT_DATE == this->vt)
return this->date;
else
return NULL;
}
operator CY() const
{
COleCurrency cyNULL;
cyNULL.SetCurrency(0,0);
if (VT_CY == this->vt)
return this->cyVal;
else
return cyNULL;
}
HRESULT Clear()
{
return VariantClear(this);
}
};
这是我在MSDN中整理并增强的一个类,希望对进行ADO操作数据库的伙计们有所帮助!
分享到:
相关推荐
在VC(Visual C++)中使用ADO(ActiveX Data Objects)操作数据库是一项重要的技术,尤其对于那些希望在Visual Studio平台上开发高效、稳定的数据库应用程序的开发者来说。本文将深入探讨如何在VC环境中利用ADO来...
以下是对“在VC中使用ADO操作数据库”的详细解析与知识点总结。 ### 一、ADO技术概述 ActiveX Data Objects,即ADO,是Microsoft推出的一种数据访问接口,它允许程序通过OLE DB提供者来访问不同的数据源,如SQL ...
在使用ADO操作数据库时,应充分考虑异常情况,使用`try-catch`块捕捉并处理可能发生的错误: ```cpp catch (_com_error &e) { MessageBox(hwnd, e.ErrorMessage(), "错误", 0); } ``` #### 四、总结 本文详细...
在Java编程环境中,连接数据库通常使用JDBC(Java Database Connectivity)接口,但有时开发者也会选择使用ADO(ActiveX Data Objects),这是微软提供的一个数据访问接口,主要针对.NET和旧版的Windows应用程序。...
为了能够操作数据库,首先需要创建一个`Connection`对象,并通过该对象连接到数据库。具体的代码实现如下: ```cpp BOOL CADOTest1Dlg::OnInitDialog() { CDialog::OnInitDialog(); HRESULT hr; try { hr = m_...
连接和关闭数据库是使用 ADO 的基本操作之一。 ##### 4.1 连接数据库 连接数据库的示例代码如下: ```cpp // 初始化 COM 环境 ::CoInitialize(NULL); CString strSQL; // 配置初始连接字符串 strSQL = "Provider=...
### 使用ADO操作数据库的方法步骤 #### 一、概述 在软件开发过程中,数据库操作是必不可少的一个环节。ADO(ActiveX Data Objects)作为一种广泛使用的数据访问技术,在.NET框架出现之前非常流行,尤其适用于...
### ADO操作数据库知识点详解 #### 一、ADO简介与特点 ADO(ActiveX Data Objects)是一种用于访问数据源的标准接口技术,它提供了一组简单易用的对象接口,用于封装通用的数据访问细节。通过ADO,开发者可以轻松地...
### VC使用ADO访问数据库全攻略 #### 一、ADO简介 **ADO**(ActiveX Data Objects)是Microsoft为简化OLE DB接口而设计的一组组件技术,主要用于应用程序与数据源之间的交互。ADO提供了一种轻量级的数据访问方式,...
在Microsoft Visual C++ (VC++) 开发环境中,ADO(ActiveX Data Objects)是一种常用的数据访问技术,用于连接和操作各种类型的数据库。这个示例将帮助我们理解如何在VC++项目中利用ADO接口来执行基本的数据库操作,...
本文将深入探讨如何在VC中利用ADO技术来连接和操作数据库,并分享一些实践中的经验和技巧。 #### 一、开启COM与ADO组件 在使用ADO之前,需要先初始化COM组件库,这是通过调用`AfxOleInit()`函数完成的。通常情况下...
本文详细介绍了如何在MFC项目中使用ADO操作Access数据库的方法,包括导入类型库、初始化组件以及如何使用核心对象进行数据库操作。通过这种方式,开发者可以更加高效地实现数据库相关的功能,提高应用程序的灵活性和...
本教程将深入探讨如何使用ActiveX Data Objects(ADO)类来实现简单的数据库访问。ADO是Microsoft提供的一个接口,允许程序员轻松地与各种数据库进行交互,包括SQL Server、Access等。 首先,我们来看"ado.cpp"和...
### VC++中使用MFC通过ADO连接数据库 #### 一、引言 在软件开发过程中,经常需要将应用程序与数据库进行交互,以便于存储或获取数据。Microsoft Foundation Classes (MFC) 是一种广泛应用于Windows平台上的C++类库...
### VC ADO 数据库解析全攻略 #### 一、ADO技术概述 ADO(ActiveX Data Objects)是微软推出的一种...对于那些希望在VC中实现数据库功能但又不想过多地陷入复杂细节的开发者来说,使用ADO无疑是一个非常好的选择。
在VC++中使用ADO进行数据库编程是一项基本技能。通过本文介绍的方法,初学者可以快速掌握如何使用ADO与数据库交互。理解并熟练运用Connection、Command和Recordset对象,是进行高效数据库编程的关键。此外,掌握SQL...
这就是在VC++中使用ADO操作Access数据库的基本流程。注意,根据实际需求,你可能需要处理错误,优化性能,或者使用参数化查询来防止SQL注入等安全问题。确保在实际应用中考虑这些因素,以构建健壮且安全的数据库应用...
- **定义**:ADO是一种用于访问数据库的COM(Component Object Model)对象集,它为开发人员提供了一个简单的接口来操作数据库。 - **优点**: - **简单性**:相比ODBC,ADO提供了更简洁的API,使得开发者可以更...
在Microsoft的ActiveX Data Objects (ADO)中,_variant_t是一种通用的数据类型,它能够存储各种类型...如果你在使用 ADO 进行数据库操作时遇到了 Variant 转换的问题,理解并应用这样的工具类将大大提高你的开发效率。