日期:2014-05-18 浏览次数:20624 次
strSQL="select count(*) as cnt from A where ip>" & rs.getLong( "small") & " and ip <" & rs.getLong( "small")
------解决方案--------------------
如果IP存的是数字. 那么可以. 会隐式转换的.
------解决方案--------------------
页面中调用需要取出2个变量的值
类似于楼上的 strSQL="select count(*) as cnt from A where ip>" & rs.getLong( "small") & " and ip <" & rs.getLong( "big")
------解决方案--------------------
/**//*--字符型 IP 地址转换成数字 IP
--邹建 2004.08(引用请保留此信息)--*/
/**//*--调用示例
select dbo.f_IP2Int('192.168.0.11')
select dbo.f_IP2Int('12.168.0.1')
--*/
CREATE FUNCTION f_IP2Int(
@ip char(15)
)RETURNS bigint
AS
BEGIN
DECLARE @re bigint
SET @re=0
SELECT @re=@re+LEFT(@ip,CHARINDEX('.',@ip+'.')-1)*ID
,@ip=STUFF(@ip,1,CHARINDEX('.',@ip+'.'),'')
FROM(
SELECT ID=CAST(16777216 as bigint)
UNION ALL SELECT 65536
UNION ALL SELECT 256
UNION ALL SELECT 1)A
RETURN(@re)
END
GO
SELECT * FROM a WHERE dbo.f_Int2IP(ip)>.... AND dbo.f_Int2IP<...
如果经常这么操作,建议,更改a表设置,增加ip_int列, 除了存字符型的ip外,还存int型的值, 在入库时由前台程序转换. 可以减轻服务器负担.
------解决方案--------------------
127.0.0.1 和 192.168.0.1 怎么对比啊~????