GVKun编程网logo

在C#中将IPv6格式化为int并将其存储在SQL Server中

26

在本文中,我们将详细介绍在C#中将IPv6格式化为int并将其存储在SQLServer中的各个方面,同时,我们也将为您带来关于android–解析日期并将其存储在SQLite数据库中、java–从ex

在本文中,我们将详细介绍在C#中将IPv6格式化为int并将其存储在SQL Server中的各个方面,同时,我们也将为您带来关于android – 解析日期并将其存储在SQLite数据库中、java – 从excel读取图像并将其存储在sqlserver中、ruby – 如何将控制台输出显示到stdout并将其存储在变量中?、sql-server – SQL Server 2008:如何将输出格式化为货币的有用知识。

本文目录一览:

在C#中将IPv6格式化为int并将其存储在SQL Server中

在C#中将IPv6格式化为int并将其存储在SQL Server中

IPv4我一直在解析IP地址的字符串表示Int32,并将其存储为INTSQL Server

现在,IPv6我试图找出是否有对的字符串表示解析标准或接受的方式IPv6在两个Int64使用C#

人们又如何将这些值存储在SQL Server-的两个字段中BIGINT

答案1

小编典典

正如IPv4地址实际上是32位数字一样,IPv6地址实际上是128位数字。地址有不同的字符串表示形式,但是实际地址是数字,而不是字符串。

因此,您无需将IP地址转换为数字,而是将地址的字符串表示形式解析为实际地址。

甚至没有一个decimal可以容纳128位数字,因此留下了三个明显的选择:

  • 存储分为两个bigint字段的数值
  • 将地址的字符串表示形式存储在varchar字段中
  • 将数值存储在16字节binary字段中

这两种方法都没有将IPv4地址存储在中的方便int,因此您必须考虑它们的局限性以及对地址的处理需求。

android – 解析日期并将其存储在SQLite数据库中

android – 解析日期并将其存储在SQLite数据库中

我正在使用SAXParser解析一个xml文件,并在处理程序内部我正在创建一个对象,其中一个数据库是日期.

我的XML文件上的日期采用以下格式:2010-12-28.

我找不到如何将这样的字符串转换为Date对象.我也不明白如何将它存储在sqlite数据库中,因为似乎有很多格式(有小时/分钟/等).

我需要它存储在一个对象中,这样我就可以计算时间跨度等.

有人可以帮我弄这个吗?

解决方法:

您可以使用Java的简单日期格式将日期格式化为可用于进行计算的Date对象,如下所示:

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

你想要的解析字符串是“yyyy” – “MM” – “dd”

至于将其存储到sqlite数据库中,您有几个选择:

>将其存储为字符串,并在出现时将其转换回日期对象
>(首选)将其存储为unix时间戳(Date.getTime()为您提供自1970年以来的毫秒数,并且您可以将该值存储在数据库中.)这种方式是首选,因为您不必这么做(相对昂贵的)转换.您可以对长时间戳值进行简单的基本操作.

使用sqlite的内置日期函数还有其他一些选项(如here所述),但最终如果您想将其拉入Android / Java代码并将其作为Date对象进行操作,则您将不得不进行转换.

java – 从excel读取图像并将其存储在sqlserver中

java – 从excel读取图像并将其存储在sqlserver中

我有一张叫做’tab1’的桌子

cl_id int //auto imcrement
cl_image image

我想从图像中读取excel中的图像并将其存储在上表中

FileInputStream fileInputStream = new FileInputStream(
            "Delux.xls");
    System.out.println(fileInputStream);
    hssfWorkbook workbook = new hssfWorkbook(fileInputStream);
    hssfSheet worksheet = workbook.getSheet("Delux");
    Iterator rows = worksheet.rowIterator();
    hssfRow row = (hssfRow) rows.next();
      List lst = workbook.getAllPictures();
      Iterator it = lst.iterator();
    while (rows.hasNext()) {
        row = (hssfRow) rows.next();

//reading the image from excel

        hssfCell cellP1 = row.getCell((short) 1);
           PictureData pict = (PictureData)it.next();
            String ext = pict.suggestFileExtension();
            byte[] data = pict.getData();

                InputStream is = new ByteArrayInputStream(data);

        try {

            PreparedStatement stmt = getdbconn()
                    .prepareStatement(
                            "insert into tab1 (cl_image) values(?)");

            stmt.setBinaryStream(1,is);
            stmt.executeUpdate();
            is.close();
        } catch (ClassNotFoundException e) {

            e.printstacktrace();
        } catch (sqlException e) {

            e.printstacktrace();
        }
    }

但是当我动态存储图像时,我得到的错误就像

“String or binary data would be truncated”.

任何人都可以建议我一个方法来实现这一点???

解决方法

不支持IMAGE和TEXT等数据类型,不推荐使用它们. 因此将其更改为VARBINARY(最大).最重要的导入事物是IMAGE数据类型需要以特殊方式存储大小而不是扩展VARBINARY以满足任何方式一直到2GB.由于图像不适合cl_image字段,因此引发了错误.

ruby – 如何将控制台输出显示到stdout并将其存储在变量中?

ruby – 如何将控制台输出显示到stdout并将其存储在变量中?

如果我这样做:
output = %x{some_script}

…然后我将打印到stdout的东西存储在输出中;但我没有看到它出现在屏幕上.

另一方面,如果我这样做:

success = system "some_script"

…然后我看到输出出现在屏幕上,但我没有将它存储在变量中(成功只保留一个布尔值).

有两种方法可以得到两者吗?我知道我可以这样做:

output = %x{some_script}
puts output

但问题是some_script可能是一个非常长时间运行的脚本,在这种情况下,直到整个事情完成后我才会看到任何内容.我更愿意看到它产生的输出,以及它完成时将它全部存储在输出变量中.

解决方法

这是IO.popen的解决方案:
require 'stringio'

output = StringIO.new

IO.popen("ls") do |pipe|
  pipe.each do |line|
    output.puts line
    puts line
  end
end

puts output.string # => Outputs the contents of `output` as a string

sql-server – SQL Server 2008:如何将输出格式化为货币

sql-server – SQL Server 2008:如何将输出格式化为货币

我有一个查询字符串,它返回一个有几个小数位的值.我想将其格式化为123.45美元.

这是查询:

SELECT COALESCE(SUM(SUBTOTAL),0) 
FROM dbo.SALESORD_HDR 
where ORDERDATE = datediff(d,getdate()) 
and STATUS NOT IN (3,6)

我希望结果以2位小数的货币.

解决方法

如果您正在寻找“真正的”货币格式,类似于通过sql Server 2012中启动的 FORMAT功能可以实现的格式,那么您可以通过sqlCLR实现完全相同的功能.你可以自己编写简单的.ToString(“C”[,可选的文化信息]),或者你可以下载 SQL#库(我写的,但这个函数是免费版本)并使用它就像T- sql FORMAT函数.

例如:

SELECT sql#.Math_FormatDecimal(123.456,N'C',N'en-us');

输出:

$123.46

SELECT sql#.Math_FormatDecimal(123.456,N'fr-fr');

输出:

123,46 €

此方法适用于sql Server 2005/2008/2008 R2.而且,如果/当您升级到较新版本的sql Server时,您可以选择通过将sql#.Math_FormatDecimal更改为FORMAT来轻松切换到本机T-sql函数.

将其放入原始问题的查询上下文中:

SELECT sql#.Math_FormatDecimal(COALESCE(SUM(SUBTOTAL),0),N'en-us') AS [Total]
FROM dbo.SALESORD_HDR 
where ORDERDATE = datediff(d,6)

编辑:

或者,因为似乎只需要en-us格式,所以有一个简单的快捷方式:使用CONVERT函数从MONEY或SMALLMONEY数据类型转换为en-us减去货币的“样式”符号,但这很容易添加:

SELECT '$' + CONVERT(VARCHAR(50),CONVERT(MONEY,COALESCE(SUM(SUBTOTAL),0)),1) AS [Total]
FROM dbo.SALESORD_HDR 
where ORDERDATE = datediff(d,6)

由于SUBTOTAL字段的源数据类型是FLOAT,因此首先需要将其转换为MONEY,然后转换为VARCHAR.但是,可选的“样式”是我更喜欢CONVERT而不是CAST的一个原因.

我们今天的关于在C#中将IPv6格式化为int并将其存储在SQL Server中的分享已经告一段落,感谢您的关注,如果您想了解更多关于android – 解析日期并将其存储在SQLite数据库中、java – 从excel读取图像并将其存储在sqlserver中、ruby – 如何将控制台输出显示到stdout并将其存储在变量中?、sql-server – SQL Server 2008:如何将输出格式化为货币的相关信息,请在本站查询。

本文标签: