vb6 - 用于 sql server 的 NUMERIC 和 microsoft ole db 提供程序

发布于 2024-12-06 16:46:50 字数 458 浏览 0 评论 0原文

首先,很抱歉英语不好。

我想进行以下查询:“从 tblLote 选择前 1 个 NumeroLote 其中 Convert(numeric(12), Documento)=28405”

“Documento”的数据存储在 varchar 字段中,有时记录为“002008”或“ 2008”...这就是我尝试使用数字的原因。

它适用于 sql server 2008,但是当我使用 Provider="sqloledb" 和 Microsoft ActiveX Data Objects 2.0 库从 vb6 使用它时,出现以下错误:“数字不是可识别的函数名称。Microsoft Ole Db 提供程序用于 sql server” 。

你知道一些替代方案吗,我只能想到使用“like”。

编辑:Documento 可能是 varchar(12)

答案:bigint

非常感谢您的宝贵时间!

First of all sorry for the bad english.

I want to make the following query: "select top 1 NumeroLote from tblLote where convert(numeric(12), Documento)=28405"

The data for "Documento" is stored on a varchar field and sometimes is recorded as "002008" or "2008"... That's why I was trying to use numeric.

It works on sql server 2008 but when I use it from vb6 using Provider="sqloledb"and Microsoft ActiveX Data Objects 2.0 library, I get the following error: "numeric is not a recognized function name. Microsoft Ole Db provider for sql server".

Do you know some alternatives, I can only think of using "like".

EDIT: Documento might be varchar(12)

Answer: bigint

Thank you so much for your time!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花桑 2024-12-13 16:46:50

“Documento”的数据存储在 varchar 字段中,有时记录为“002008”或“2008”...这就是我尝试使用数字的原因。

该数字总是整数吗?如果是这样,请尝试使用此替代:

CONVERT(INT, Documento)

编辑:使用 bigint 以避免溢出问题:

CONVERT(BIGINT, Documento)

The data for "Documento" is stored on a varchar field and sometimes is recorded as "002008" or "2008"... That's why I was trying to use numeric.

Is the number always an integer? If so, try using this instead:

CONVERT(INT, Documento)

Edit: Use bigint to avoid the overflow problem:

CONVERT(BIGINT, Documento)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文