Skip to main content
Code Review

Return to Answer

Commonmark migration
Source Link

###Naming

Naming

###IPv4 address decimal conversion

IPv4 address decimal conversion

###Naming

###IPv4 address decimal conversion

Naming

IPv4 address decimal conversion

replaced http://codereview.stackexchange.com/ with https://codereview.stackexchange.com/
Source Link

While dnoeth's answer dnoeth's answer provides a good solution I thought the original code itself could still be improved on some general aspects.

While dnoeth's answer provides a good solution I thought the original code itself could still be improved on some general aspects.

While dnoeth's answer provides a good solution I thought the original code itself could still be improved on some general aspects.

added 6 characters in body
Source Link
Phrancis
  • 20.5k
  • 6
  • 69
  • 155
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'dbo.fn_IPv4DotNotationToDecimal') AND xtype IN (N'FN', N'IF', N'TF'))
 DROP FUNCTION dbo.fn_IPv4DotNotationToDecimal;
CREATE FUNCTION dbo.fn_IPv4DotNotationToDecimal (@Ipv4AddressString varchar(15))
RETURNS INTBIGINT
AS
BEGIN
/* Returns the decimal version of an IPv4 address stored as a string.
 * Ex: '192.168.1.2' returns 3232235778 */
 DECLARE @IPv4Decimal INT;BIGINT;
 SET @IPv4Decimal = 
 CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 1)) * POWER(256, 0)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 2)) * POWER(256, 1)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 3)) * POWER(256, 2)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 4)) * POWER(256, 3);
 
 IF (@IPv4Decimal IS NULL) SET @IPv4Decimal = 0;
 RETURN @IPv4Decimal;
END;
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'dbo.fn_IPv4DotNotationToDecimal') AND xtype IN (N'FN', N'IF', N'TF'))
 DROP FUNCTION dbo.fn_IPv4DotNotationToDecimal;
CREATE FUNCTION dbo.fn_IPv4DotNotationToDecimal (@Ipv4AddressString varchar(15))
RETURNS INT
AS
BEGIN
/* Returns the decimal version of an IPv4 address stored as a string.
 * Ex: '192.168.1.2' returns 3232235778 */
 DECLARE @IPv4Decimal INT;
 SET @IPv4Decimal = 
 CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 1)) * POWER(256, 0)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 2)) * POWER(256, 1)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 3)) * POWER(256, 2)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 4)) * POWER(256, 3);
 
 IF (@IPv4Decimal IS NULL) SET @IPv4Decimal = 0;
 RETURN @IPv4Decimal;
END;
IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'dbo.fn_IPv4DotNotationToDecimal') AND xtype IN (N'FN', N'IF', N'TF'))
 DROP FUNCTION dbo.fn_IPv4DotNotationToDecimal;
CREATE FUNCTION dbo.fn_IPv4DotNotationToDecimal (@Ipv4AddressString varchar(15))
RETURNS BIGINT
AS
BEGIN
/* Returns the decimal version of an IPv4 address stored as a string.
 * Ex: '192.168.1.2' returns 3232235778 */
 DECLARE @IPv4Decimal BIGINT;
 SET @IPv4Decimal = 
 CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 1)) * POWER(256, 0)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 2)) * POWER(256, 1)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 3)) * POWER(256, 2)
 + CONVERT(BIGINT, PARSENAME(@Ipv4AddressString, 4)) * POWER(256, 3);
 
 IF (@IPv4Decimal IS NULL) SET @IPv4Decimal = 0;
 RETURN @IPv4Decimal;
END;
added 267 characters in body
Source Link
Phrancis
  • 20.5k
  • 6
  • 69
  • 155
Loading
Source Link
Phrancis
  • 20.5k
  • 6
  • 69
  • 155
Loading
lang-sql

AltStyle によって変換されたページ (->オリジナル) /