急等一个SQL语句问题,谢谢!

zhupuwei 2005-06-01 12:41:08
我有一个IP来路查询系统,有一个IP表,字段如下,都是文本型,

onip offip addr

其中ONIP为起始IP,OFFIP为终止IP,ADDR为地址,
它们值都是IP通过一函数计算出来为一很长的数字。
比如ipnow=3242192805

sql="select * from ip where (onip<=" & ipnow & " and offip>=" & ipnow & ")"

这个语句,在本地测试通过,但是在国外服务器上测试出错,
提示数据类型不对,

我把它改成
sql="select * from ip where (onip<='" & ipnow & "' and offip>='" & ipnow & "')"
这样,不出错了,但是查询不出值来,

请问我该怎么写,怎么能查询一个IPNOW在ONIP和OFFIP之间的记录。
谢谢

...全文
112 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xutao888 2005-06-01
  • 打赏
  • 举报
回复
用like试试
zhupuwei 2005-06-01
  • 打赏
  • 举报
回复
呵,这个语句我试过,是可以运行的,但是它没有按条件找出记录,停在第一条记录上面了。
hbhbhbhbhb1021 2005-06-01
  • 打赏
  • 举报
回复
文本参数旁必须加单引号,你在数据库中有这条记录的话,应该就是空格的问题啊,
ipnow=trim(ipnow)
sql="select * from ip where (onip<='" & ipnow & "' and offip>='" & ipnow & "')"
如果再不行,你看看数据库中的记录是不是VARCHAR,那就有可能是数据库中的记录有空格
好久不写ASP程序了,不知道语法对不对了,呵呵
zhupuwei 2005-06-01
  • 打赏
  • 举报
回复
不对,主要是ONIP,和OFFIP都是文本型,怎么比较呀,SQL应该怎么写。
zhupuwei 2005-06-01
  • 打赏
  • 举报
回复
Overflow: 'clng'

不对,溢出了吧
zhupuwei 2005-06-01
  • 打赏
  • 举报
回复
好的,我试试看,本地和国外的字段类型都是文本型,因为数字很大,数字型放不下
hbhbhbhbhb1021 2005-06-01
  • 打赏
  • 举报
回复
我想是因为你在本地和在国外服务器上的字段类型不一样吧?本地的你不会是数字型的吧?而在国外却改成了字符型,而字符型中间可以有空格,你用TRIM函数去下空格在查,试试
iuhxq 2005-06-01
  • 打赏
  • 举报
回复
sql="select * from ip where (onip<=" & clng(ipnow) & " and offip>=" & clng(ipnow) & ")"

试试
whao 2005-06-01
  • 打赏
  • 举报
回复
如果说有文本字符的长度一样的话就好做多了,只要从左边第一个开始逐个比较就可以了。
whao 2005-06-01
  • 打赏
  • 举报
回复
晕死,这么多人都在干什么啊

sql="select * from ip where (onip<='" & ipnow & "' and offip>='" & ipnow & "')"
文本字段能比个鸟出来,也不想想。比值范围当然是都转成数值才对。

sql="select * from ip where (onip<=" & clng(ipnow) & " and offip>=" & clng(ipnow) & ")"
这条是谁写的,跟上面一条一模一样的效果,转整形转那里去阿。
改成下面思路才对
sql="select * from ip where (clng(onip)<=" & ipnow & " and clng(offip)>=" & ipnow & "
数据库里onip和offip字段是文本型的,ipnow和offip是函数计算出来的数值,clng用在那里都不会.
以上语句最好改为sql="select * from ip where (clng(onip) between(" & ipnow & " ,"&ipnow&")"
不过从Overflow: 'clng' 看来转长整型不通,主要是文本字段太长了。

目前也想不出简单的语句来实现。当然可以用字符串比较的方法,实现起来比较复杂!




up1002 2005-06-01
  • 打赏
  • 举报
回复
ONIP和OFFIP怎么能是文本型?你看看在你本地是什么型??
你自己都说了“它们值都是IP通过一函数计算出来为一很长的数字”,
如果服务器字段用文本型当然就错了!
看看你在国外的服务器上的数据库,那个字段是什么类型?
zhupuwei 2005-06-01
  • 打赏
  • 举报
回复
like是相似的呀,这一查好多 记录了,

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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