导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

菜鸟级问题

迪卡 2009-08-24 05:02:52
建的Win32 Application的工程,,
我需要 获取 物体A 的坐标 (x,y)
在构造函数 里写了这么一段,,

CoInitialize(NULL);
try
{_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=ddd";
pConn->Open("","","",adConnectUnspecified);

pRst->Open("select * from location where lname='A' ",(IDispatch *)pConn,adOpenDynamic,adLockOptimistic,adCmdText);

_variant_t TheValue;
TheValue=pRst->Fields->GetItem("dbx")->Value;
if(TheValue.vt!=VT_NULL)
x=TheValue.fltVal;

TheValue=pRst->Fields->GetItem("dby")->Value;
if(TheValue.vt!=VT_NULL)
y=TheValue.fltVal;

pRst->Close();
pConn->Close();
pRst.Release();
pConn.Release();
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}

CoUninitialize();


但是,坐标值 并没有 传到 x,y中。。请问 问题在哪??
请说详细点、、、
谢谢、、
...全文
42 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
迪卡 2009-08-24
星星 的 果然牛人,,OK 了。。谢谢、、
也谢谢 大家 的 帮忙。。。
回复
迪卡 2009-08-24
请问断点 怎么设,这个 我不会,,请指教,,,
我先 初始化 x=100,y=100.。执行 那段 代码,,发现 x和y 都变成 0了。。
很纳闷。。
回复
fandh 2009-08-24
y=atoi((LPCSTR)_bstr_t(TheValue));

或者是atof
回复
LPR_Pro 2009-08-24
_variant_t TheValue;
TheValue=pRst->Fields->GetItem("dbx")->Value;
if(TheValue.vt!=VT_NULL)
x=TheValue.fltVal;

TheValue=pRst->Fields->GetItem("dby")->Value;
if(TheValue.vt!=VT_NULL)
y=TheValue.fltVal;

你查看一下"dbx", "dby"的数据类型是什么,是double的话,采用TheValue.dblVal; 是float的话,采用TheValue.fltVal; 是int的话,采用theValue.intVal;

详细参见结构体
struct tagVARIANT
{
union
{
struct __tagVARIANT
{
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union
{
LONGLONG llVal;
LONG lVal;
BYTE bVal;
SHORT iVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
_VARIANT_BOOL bool;
SCODE scode;
CY cyVal;
DATE date;
BSTR bstrVal;
IUnknown *punkVal;
IDispatch *pdispVal;
SAFEARRAY *parray;
BYTE *pbVal;
SHORT *piVal;
LONG *plVal;
LONGLONG *pllVal;
FLOAT *pfltVal;
DOUBLE *pdblVal;
VARIANT_BOOL *pboolVal;
_VARIANT_BOOL *pbool;
SCODE *pscode;
CY *pcyVal;
DATE *pdate;
BSTR *pbstrVal;
IUnknown **ppunkVal;
IDispatch **ppdispVal;
SAFEARRAY **pparray;
VARIANT *pvarVal;
PVOID byref;
CHAR cVal;
USHORT uiVal;
ULONG ulVal;
ULONGLONG ullVal;
INT intVal;
UINT uintVal;
DECIMAL *pdecVal;
CHAR *pcVal;
USHORT *puiVal;
ULONG *pulVal;
ULONGLONG *pullVal;
INT *pintVal;
UINT *puintVal;
struct __tagBRECORD
{
PVOID pvRecord;
IRecordInfo *pRecInfo;
} __VARIANT_NAME_4;
} __VARIANT_NAME_3;
} __VARIANT_NAME_2;
DECIMAL decVal;
} __VARIANT_NAME_1;
} ;
回复
ljz888666555 2009-08-24
设置断点,看看是否有值。
回复
lihan6415151528 2009-08-24
c++..
回复
SQL77 2009-08-24
跑C去问吧
回复
华夏小卒 2009-08-24
C++不懂,
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……