关于ODBC标准的问题

zhaoqw79 2003-08-22 10:18:59
quicktest测试中testdata用例lpd[i].cb 和(SWORD)_tcslen(pch)分别为缓冲区长度和数据长度,对于数据类型SQL_VARBINARY 和 SQL_LONGVARBINARY来说,后者应该是前者的两倍,有没有那位高手能解释一下问题的原因
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoqw79 2003-09-08
  • 打赏
  • 举报
回复
问题解决了,谢谢大家。
yjh1982 2003-08-27
  • 打赏
  • 举报
回复
靠!我在搜索中放"SQL_LONGVARBINARY SQL_VARBINARY ",得到的第一篇文档就说
ODBC to Jet Data Type Mappings
ODBC SQL Type Precision Scale Jet 3.5 Type Jet 40 Type
-----------------------------------------------------------
SQL_BIT N/A N/A Boolean Boolean
SQL_TINYINT N/A N/A Byte* Byte*
SQL_TINYINT N/A N/A Integer* Integer*
SQL_SMALLINT N/A N/A Integer Integer
SQL_INTEGER N/A N/A Long Long
SQL_REAL N/A N/A Single Single
SQL_FLOAT N/A N/A Double Double
SQL_DOUBLE N/A N/A Double Double
SQL_DECIMAL 0 To 4 0 Integer Decimal
SQL_DECIMAL 5 To 9 0 Long Decimal
SQL_DECIMAL 10 to 15 0 Double Decimal
SQL_DECIMAL <=15 >0 Double Decimal
SQL_DECIMAL 16 To 28 N/A Text Decimal
SQL_DECIMAL > 28 N/A Text Text
SQL_NUMERIC 0 To 4 0 Integer Decimal
SQL_NUMERIC 5 To 9 0 Long Decimal
SQL_NUMERIC 10 to 15 0 Double Decimal
SQL_NUMERIC <=15 >0 Double Decimal
SQL_NUMERIC 16 To 28 N/A Text Decimal
SQL_NUMERIC > 28 N/A Text Text
SQL_CHAR <= 255 N/A Text Text
SQL_CHAR > 255 N/A Memo Memo
SQL_VARCHAR <= 255 N/A Text Text
SQL_VARCHAR > 255 N/A Memo Memo
SQL_LONGVARCHAR N/A N/A Memo Memo
SQL_WCHAR <= 255 N/A Unsupported Text
SQL_WCHAR > 255 N/A Unsupported Memo
SQL_WVARCHAR <= 255 N/A Unsupported Text
SQL_WVARCHAR > 255 N/A Unsupported Memo
SQL_WLONGVARCHAR N/A N/A Unsupported Memo
SQL_DATE N/A N/A DateTime DateTime
SQL_TIME N/A N/A DateTime DateTime
SQL_TIMESTAMP N/A N/A DateTime DateTime
SQL_BINARY <=255 N/A Binary Binary
SQL_BINARY 256 To 510 N/A LongBinary Binary
SQL_BINARY > 510 N/A LongBinary LongBinary
SQL_VARBINARY <=255 N/A Binary Binary
SQL_VARBINARY 256 To 510 N/A LongBinary Binary
SQL_VARBINARY > 510 N/A LongBinary LongBinary
SQL_LONGVARBINARY N/A N/A LongBinary LongBinary
SQL_GUID N/A N/A Text Guid

看到了吗?
zhaoqw79 2003-08-27
  • 打赏
  • 举报
回复
同志们,我不明白才问你们的,我也知道MSDN上有,但是不知道方向,怎么查啊,劳烦大侠指点一下了。最好能明确一些
zhaoqw79 2003-08-27
  • 打赏
  • 举报
回复
可能是大家误会了我的问题了,我说的2倍问题不是SQL_VARBINARY 和 SQL_LONGVARBINARY之间的问题,而是lpd[i].cb 和(SWORD)_tcslen(pch)分别为缓冲区长度和数据长度的问题,如果各位高手有时间,可以看一些MSDN中有一页为quiktest.c的文件内容,在3152行的地方有一个判断 case SQL_VARBINARY:
case SQL_LONGVARBINARY:
if(lpd[i].cb > MAX_STRING_SIZE)
DISPLAYERROR(szRETDATA,szINCORRECTOUTLEN);

if(lpd[i].cb * 2 != lstrlen(pch))
DISPLAYERROR(szRETDATA,szINCORRECTOUTLEN);
就是最后这个判断,为什么lpd[i].cb * 2 != lstrlen(pch)就要报错啊,能给我一个解释吗?
pengzhenwanli 2003-08-27
  • 打赏
  • 举报
回复
SQL_LONGVARBINARY
这个摆明是long型的吗。
yjh1982 2003-08-26
  • 打赏
  • 举报
回复
看msdn嘛!
zhaoqw79 2003-08-25
  • 打赏
  • 举报
回复
为什么没有人回答我啊,支持一下好不好 啊

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧