sqlserver-用 Isnumeric判断从SQLServer中取出的数据类型为numeric的数据返回值是False是为什么

问题描述

用 Isnumeric判断从SQLServer中取出的数据类型为numeric的数据返回值是False是为什么

之前在sybase环境时使用的是自动采番功能,现在移到SQLServer环境就想用取得最大值然后加一的方法实现插入。
因为本来就有写好的取得最大值的函数所以就拿来直接用了,在+1之前要用Isnumeric()判断是否为数字。
Isnumeric(从数据库取出的值)
用response.write显示从数据库取出来的值是3565613,
用response.write Isnumeric(从数据库取出的值)得到的结果是false
最后的解决方法是 在前面加了CLong函数(这里还有个问题一开始选择加的是CInt,但是返回值还是False是为什么?)
虽然解决了但是很想知道为什么返回值是False【明明是数字,难道跟小数有关系么?
文笔不好还请各位见谅~一共能2个问题希望知道的大神能回答~跪谢!

解决方案

numeric 在功能上等价于 decimal
表示定点数,vbs又没有类型,不存在什么类型匹配。

解决方案二:

第一个问题,参考ISNUMERIC (Transact-SQL)

当输入表达式的计算结果为有效的 numeric 数据类型时,ISNUMERIC 返回 1;否则返回 0。

又参考vbscript中的True和False

vbscript中的常量True转换成十进制是-1,而不是我以为的1。常量False转换成十进制是0。

根据上面的两个说明,SQL Server对于ISNUMERIC是数字的返回了1,在VBScript中因为不是-1(True),所以返回False。

第二个问题,参考VBScript CInt 函数,对于CINT,参数

值必须是介于 -32768 与 32767 之间的数字。

你给出的3565613已经超出了上面的范围,所以返回False。

时间: 2024-09-19 09:26:23

sqlserver-用 Isnumeric判断从SQLServer中取出的数据类型为numeric的数据返回值是False是为什么的相关文章

vbscript-用 Isnumeric判断从SQL中取出的(类型为numeric)数据返回值是False是为什么?

问题描述 用 Isnumeric判断从SQL中取出的(类型为numeric)数据返回值是False是为什么? 之前在sybase环境时使用的是自动采番功能,现在移到SQLServer环境就想用取得最大值然后加一的方法实现插入. 因为本来就有写好的取得最大值的函数所以就拿来直接用了,在+1之前要用Isnumeric()判断是否为数字. 判断时的语句是 IF Isnumeric(objrs("CUR_NO").value) THEN CreateMaxNo = objrs("CU

急求 在火狐浏览器中取不到一般处理程序.ashx的返回值

问题描述 在火狐浏览器中取不到一般处理程序.ashx的返回值但在IE中可以..求哪位大侠指点 解决方案 解决方案二:和服务器端有什么关系.应该是你客户端取值的代码的问题.解决方案三:用firebug看看响应数据,应该是你前端代码问题吧

C#中调用消息对话框,并取得其返回值

对话框 不同于VB中可以直接使用MsgBox来得到消息框的返回值,在C#中需要使用 DialogResult 类型的变量,从MessageBox.show()方法接受消息对话框的返回值.至于MessageBox.show()的返回值是 Yes .No, Ok还是Cancel,那需要自己在Show()方法中对它可以显示的选择按钮进行设置.以下示例代码可以参考: // Initializes the variables to pass to the MessageBox.Show method. s

火狐中静态html取不到.ashx的返回值但.aspx中可以取到 跪求大侠

问题描述 <scripttype="text/javascript"language="javascript">functionDQC_httpRequest(url,func){varhttp_request;if(window.XmlHttpRequest){//非IE浏览器xmlHttp=newwindow.XMLHttpRequest();http_request=newwindow.XMLHttpRequest();}elseif(window

android webview中使用Java调用JavaScript方法并获取返回值

在android平板上用webview打开一个网页,调用里面的javascript方法,同时相互传参. 网上例子很少啊,基本都不能获取返回值,贴一个自己最后调试完的代码如下: Java: 复制代码 代码如下: protected void onCreate(Bundle savedInstanceState) { ........ x = (WebView)this.findViewById(R.id.webView_viewTable); x.setScrollBarStyle(View.SC

从数据库中取出最近三十天的数据并生成柱状图_Mysql

在终端用cd 命令进入文件目录 说明:此处例子我是拿项目中的一个例子讲解的. 1.新建一个项目 :用终端输入:zf create project Airline 格式:zf create action project project-name 备注:这些格式可以在终端输入zf 查看 2.新建一个action :zf create action dirgramshow index 格式:zf create action action-name controller-name 3.新建一个 mode

ASP.Net中使用VB.Net调用存储过程并得到返回值

asp.net|存储过程 //存储过程代码CREATE PROCEDURE [AddNewInvoiceInfo] (@sUserID int,@sClaimMethod varchar(50),@sInvoiceNum varchar(50),@sInvoiceDate datetime,@sBuyCity varchar(50))ASInsert Into SMB_InvoiceInfo (MemberID,ClaimMethod,InvoiceNum,InvoiceDate,Invoice

EMPP协议中如何得到短信发送状态的返回值?

问题描述 用COM的EMPP.DLLc#环境:EMPPLib.emptclClassemptic=newEMPPLib.emptclClass();EMPPLib.ShortMessageClassshowmessage=newEMPPLib.ShortMessageClass();EMPPLib.MobilesClassmobile=newEMPPLib.MobilesClass();EMPPLib.StatusReportClassstatusreport=newEMPPLib.Status

xsd-asp.net中数据集(XSD)使用带OUTPUT值的存储过程时,如何获取返回值?

问题描述 asp.net中数据集(XSD)使用带OUTPUT值的存储过程时,如何获取返回值? 在数据集(XSD)中通过创建TableAdatper使用了带OUTPUT值的现有存储过程,在预览数据时能正确获得返回值的列表显示,但在CS页面中如何通过GetData函数正确获得这些返回值? 也试过创建Query使用了带OUTPUT值的现有存储过程,同样可以正确预览数据但CS中仍然取不到返回值,同样提示"最匹配的重载方法具有一些无效参数": ChargeStdTableAdapters.Que