ado 获取字段名中有些值为空有些不为空怎么读取ADO c++

下面的SQL存取过程,用C++ ADO方法应该如何得到返回值和系统时间呢? 我得到的总是VT_NULL或者VT_EMPTY。_百度知道
下面的SQL存取过程,用C++ ADO方法应该如何得到返回值和系统时间呢? 我得到的总是VT_NULL或者VT_EMPTY。
ALTER PROCEDURE [dbo].[proc_getDbTime]( @dateTime datetime output) ASBEGIN SELECT @dateTime = getdate() RETURN 0END
提问者采纳
那么就不能取到正确的值;如果不设置游标为adUseClient,必须在我把记录集关闭以后才能取,设成adUseClient就ok了,那么最后,最后再取return和output参数应该是没有设置pConn-&gt,另外有一点就是;CursorLocation =adUseClient,如果我在关闭记录集之前就取return和output的值,然后关闭它。Recordset 将自动从与之关联的连接中继承该设置,必须先取记录集,那么我在取return和output参数的时候。把pConn设成adUseClient,就是说,Execute 方法返回的游标继承该设置
提问者评价
采纳率100%
其他类似问题
为您推荐:
ado的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C++函数返回值问题_百度知道
C++函数返回值问题
(1)函数的返回值是通过函数中的return语句获得的。return语句将被调用函数中的一个确定值带回主调函数中去。如果需要从被调用函数带回一个函数值(供主调函数使用),被调用函数必须包含return语句。如果不需要从被调用函数带回函数值,则可以不要return语句。一个函数中可以有一个以上的return语句,执行到哪一个return语句,哪一个语句起作用。return语句后面的括号可以要,也可以不要,如“return z;”与“return (z);”等价。return后面的值可以是一个表达式。例如:int max(int x,int y){
return(x&y?x:y);}如果在主调函数中调用它,比如:a=max(1,2)那么函数max的return语句后面表达式的值就是2,也就是说max(1,2)=2,所以a=2(2)函数值的类型。既然函数有返回值,这个值当然应属于某一个确定的类型,应当在定义函数是指定函数值的类型。例如下面是几个函数的部首:int max(float x,float y);//函数值为整型char letter(char c1,char c2);//函数值为字符型double min(int x,int y);//函数值为双精度型void change(int a);//函数值为空(3)如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准,即函数类型决定返回值的类型。对数值型数据,可以自动进行类型转换。特别提一提void类型,如果一个函数的类型为void,那么,即使函数中有return语句且return语句中表达式的值不为空,返回值仍为空,严格满足函数类型决定返回值的类型。
其他类似问题
为您推荐:
你看我空间吧:返回值类型和所调用的参数的类型可以不一致..//blog/" target="_blank">http?不是的:我写的比较多://user.,说我重复字符太多了.需要向楼主说明的一点是如何取得这个函数的返回值.qzone.返回值是具体将值返回到定义函数时的行参上吗.qq: <a href="http,不让我发.,我不会删的:////blog/希望我的回答对你有帮助,而是在函数的名称前加上数据类型不过请注意,答案在那里
void 不必要returnint 类型 一定要returnint max (int,int)
void createwaybilllist(waybill *& head1,banci *& head2)
返回值的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁_variant_t bh;
if(bh==VT_EMPTY||bh.vt==VT_NULL)
在VC6中编译能通过,但在VC2005中则有错。错误信息如下:1&d:\vc2005\goodssale\goodssale\rxado.cpp(94) : error C2593: “operator ==”不明确1&
可能是“内置 C++ operator==(short, VARENUM)”1&
或“内置 C++ operator==(long, VARENUM)”1&
或“内置 C++ operator==(float, VARENUM)”1&
或“内置 C++ operator==(double, VARENUM)”1&
或“内置 C++ operator==(bool, VARENUM)”1&
或“内置 C++ operator==(BYTE, VARENUM)”1&
或“内置 C++ operator==(char, VARENUM)”1&
或“内置 C++ operator==(unsigned short, VARENUM)”1&
或“内置 C++ operator==(unsigned long, VARENUM)”1&
或“内置 C++ operator==(int, VARENUM)”1&
或“内置 C++ operator==(unsigned int, VARENUM)”1&
或“内置 C++ operator==(__int64, VARENUM)”1&
或“内置 C++ operator==(unsigned __int64, VARENUM)”1&
试图匹配参数列表“(_variant_t, const VARENUM)”时请问各位大大怎样才能解决这个问题?------解决方案--------------------
应该if(bh.vt==VT_EMPTY||bh.vt==VT_NULL)
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有1594人阅读
基础编程(63)
我们有时候需要通过程序获取表的所有字段,那么用ADO提供的接口获取还是很方便的。
vs2005创建控制台程序,语言为C&#43;&#43;。
核心代码如下:
struct TableField
TableField()
: strFieldName(_T(&&))
, nFieldType(0)
, nFieldLength(0)
CString strFieldN // 字段名称
int nFieldT // 字段类型
int nFieldL //字段大小
@brief 获取表的所有字段
@param[in] pConnPtr 数据库连接
@param[in] strTableName 表名称
@param[out] vTableFields 字段列表
@return 获取是否成功
bool GetTableField(_ConnectionPtr& pConnPtr, const CString& strTableName, vector&TableField&& vTableFields)
CString strSql = _T(&&);
strSql.Format(_T(&select * from %s&), strTableName);
_RecordsetPtr pRecordsetO
pRecordsetOrig.CreateInstance(__uuidof(Recordset));
HRESULT = pRecordsetOrig-&Open(_bstr_t(strSql), _variant_t(pConnPtr.GetInterfacePtr()),
adOpenDynamic, adLockOptimistic, adCmdText);
// 得到所有字段
FieldsPtr fields = pRecordsetOrig-&GetFields();
for (long i = 0; i & fields-&C i++)
FieldPtr field = fields-&Item[i];
TableField curF
curField.strFieldName = field-&N//字段名
curField.nFieldType = field-&T//字段类型
curField.nFieldLength = field-&NumericS
vTableFields.push_back(curField);
pRecordsetOrig-&Close();
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:250414次
积分:3630
积分:3630
排名:第4930名
原创:107篇
转载:24篇
评论:49条
(3)(2)(1)(1)(3)(3)(3)(7)(3)(1)(1)(1)(1)(2)(1)(1)(1)(6)(3)(5)(1)(1)(6)(1)(7)(5)(1)(12)(5)(3)(3)(2)(9)(1)(5)(7)(2)(3)(4)(1)(2)(1)}

我要回帖

更多关于 ado 表中加入字段 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信