能不能也给我一份呀?[email protected]
解决方案 »
- 纹理合成 图像类比 艺术风格 学习
- 哪里有好的 曲线绘制类
- 在一程序里用FindWindow找到了另一程序的句柄pWnd,然后怎样可以把找到的这个程序关闭?
- 某进程启动会触发什么消息?
- 想写一个NT状态调用的dll,该看些什么资料??
- 如何切换用CSplitterWnd切分的某一个窗口??
- 一个内存的问题??
- 关于vc怎样使用mts?
- 问天天不应,问地地不语,问峨嵋的猴大哥他也不理。结论:
- 大家说说VS2010中的C++有什么改进呀?、那位用过呢
- 请问如何使检查框作为ListCtrl的最后一个子项(或出现在最后一个子项里)?
- 问高手:怎样在程序中实现贴大量位图时候的速度,因为一个一个读文件太慢了
in ado:
//After declaration
try
{
hr=m_pConnection.CreateInstance(__uuidof(Connection));
hr=m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(Connect,"","",-1);//实现记录的添加
_bstr_t bstrSQL="insert into yourtable values ('col1','col2')";
m_pConnection->Execute(bstrSQL, NULL, -1);m_pRecordset->Close();
m_pConnection->Close();
}
catch(...)
{
//MessageBox("抛出异常,程序将关闭!");
}
现在我在csdn给别人回答问题,已经很久没有得分了,不知道我回答问题是不是不对。真是让人伤心。
http://www.codeguru.com/mfc_database/Ado_Aok_2.shtml在http://www.codeguru.com/mfc_database/index.shtml的ADO栏下还有很多。
是不是文档上的错了,搞的好糊涂。
除了import 那个DLL 我有没有其他的办法来 调用ADO的函数呢!
该程序说明了如何从字段检索数值并将数值转换为 C++ 变量。它包括了在程序段(范例:无 Extensions 的 ADO)中所描述的功能。#define INITGUID
#import "c:\Program Files\Common Files\System\ADO\msado15.dll"
no_namespace rename("EOF", "EndOfFile")
#include <stdio.h>
#include "icrsint.h"void dump_com_error(_com_error &e)
{
printf("Error\n");
printf("\a\tCode = %08lx\n", e.Error());
printf("\a\tCode meaning = %s", e.ErrorMessage());
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
printf("\a\tSource = %s\n", (LPCSTR) bstrSource);
printf("\a\tDescription = %s\n", (LPCSTR) bstrDescription);
}class CCustomRs :
public CADORecordBinding
{
BEGIN_ADO_BINDING(CCustomRs)
ADO_VARIABLE_LENGTH_BINDING_ENTRY(1, adVarChar, m_szau_lname,
sizeof(m_szau_lname), lau_lnameStatus, FALSE)
ADO_VARIABLE_LENGTH_BINDING_ENTRY(2, adVarChar, m_szau_fname,
sizeof(m_szau_fname), lau_fnameStatus, TRUE)
END_ADO_BINDING()public:
CHAR m_szau_lname[41];
ULONG lau_lnameStatus;
CHAR m_szau_fname[41];
ULONG lau_fnameStatus;
};VOID main()
{
HRESULT hr;
IADORecordBinding *picRs = NULL;
::CoInitialize(NULL); try
{
_RecordsetPtr pRs.CreateInstance(__uuidof(Recordset)); CCustomRs rs;
pRs->Open("select FirstName, LastName, Age from Employees",
"dsn=pubs;uid=sa;pwd=;",
adOpenStatic, adLockOptimistic, adCmdUnknown);
if (FAILED(hr = pRs->QueryInterface(__uuidof(IADORecordBinding),
(LPVOID*)&picRs)))
_com_issue_error(hr);
if (FAILED(hr = picRs->BindToRecordset(&rs)))
_com_issue_error(hr); while (VARIANT_FALSE == pRs->EndOfFile)
{
// 处理 CCustomRs C++ 实例变量中的数据。 printf("\a\tName = %s \t%s",
(lau_fnameStatus == adFldOK ? m_szau_fname : "<NULL>"),
(lau_lnameStatus == adFldOK ? m_szau_lname): "<NULL>")); // 更改 Recordset 的当前行。
// 新当前行的 Recordset 数据将被
// 自动取出并防止在 CCustomRs C++ 实例变量中
pRs->MoveNext();
}
}
catch (_com_error &e)
{
dump_com_error(e);
} if (picRs)
picRs->Release(); CoUninitialize();
};
接口方法IADORecordBinding 接口具有使 Recordset 字段与 C/C++ 变量关联、添加新行和执行更新的方法。所有这三个方法都可使指针指向来自 CADORecordBinding 的类,该 CADORecordBinding 定义每个字段和变量之间的绑定。接口方法是: BindToRecordset(&binding)
调用该方法可关联变量与字段。 AddNew(&binding)
调用该方法可直接调用 ADO AddNew 方法。 Update(&binding)
调用该方法可直接调用 ADO Update 方法。预处理宏 BEGIN_ADO_BINDING(cls)
ADO_FIXED_LENGTH_BINDING_ENTRY(Ordinal, DataType, Buffer, Status, Modify)
ADO_NUMERIC_BINDING_ENTRY(Ordinal, DataType, Buffer, Precision, Scale,
Status, Modify)
ADO_VARIABLE_LENGTH_BINDING_ENTRY(Ordinal, DataType, Buffer, Size,
Status, Modify)
END_ADO_BINDING()
参数 说明
Cls 类,定义绑定条目,缓冲区,和 Recordset 对象。
Ordinal 按顺序的字段号码,0 标识第一字段,1 标识第二字段,依此类推。
DataType 储存已转换字段的变量的数据类型。
Buffer 缓冲区,用于将字段转换为变量。
Status 指示字段转换是否成功。
Modify 布尔标志;如果为 TRUE,则表明 ADO 可以更新关联的字段。
Precision 在数值变量中可被表现出的数字位数。
Scale 位于数值变量中的小数点后的位数。
Size 变长变量所需的字节数,诸如:字符串。 status 参数值 说明
AdFldOK 返回非 NULL 字段值。
AdFldBadAccessor 绑定无效。
AdFldCantConvertValue 由于符号不匹配和数据溢出以外的原因,值不能转换。
AdFldNull 返回 NULL。
AdFldTruncated 变长数据或数值型数字被截短。
AdFldSignMismatch 值带有符号而变量数据类型不带符号。
AdFldDataOverFlow 值大于在变量数据类型中的存储大小。
AdFldCantCreate 列类型未知并且字段已被打开。
AdFldUnavailable 不能决定字段值 — 例如在无默认值的新建、未指定的字段中。
AdFldPermissionDenied 更新时,不允许写入数据。
AdFldIntegrityViolation 更新时,字段值将破坏列的完整性。
AdFldSchemaViolation 更新时,字段值将破坏列方案。
AdFldBadStatus 更新时,无效的状态参数。
AdFldDefault 更新时,使用默认值。