select Convert(numeric(18,2),0x030100017D000000) --12.50
--10进制转换为2,8,16进制
Create Function DecTox(@A int,@Type Varchar(3))
Returns Varchar(100)
As
Begin
Declare @Rst varchar(100)='' --保存结果
Declare @JS int 森弯 --转换基数
Declare @YS int --余数
Set @JS=Case @Type
When 'Bin' Then 2
When 'Ocx' Then 8
When 'Hex' Then 16
Else Null End
While @A>0
Begin
Set @YS=@A%@JS
Set @Rst=Case @YS
When 10 Then 'A'
When 11 Then 'B'
When 12 Then 'C'
When 13 Then 'D'
When 14 Then 'E'
When 15 Then 'F'
Else Convert(Varchar(2),@YS)
End+@Rst
Set @A=Convert(int,@A/@JS)
End
return @Rst
End
--2,8,16进制转换为10进制
Create Function fn_xToDec1(@A Varchar(50),@Type Varchar(3))
Returns int
As
Begin
--从右到左,每一位乘上基数的i-1次方的和
Declare @Rst int=0 --保存结果
Declare @JS int --转换基数
Declare @I int --字符串位置
Declare @J int
Set @JS=Case @Type
When 'Bin' Then 2
When 'Ocx' Then 8
隐吵 When 'Hex' Then 16
Else Null End
Set @I=Len(@A) --从最后一个开始向前截取
Set @J=0
While @I>0
Begin
Set @Rst=@Rst+Case substring(@A,@I,1)
When 'A' Then 10
When 'B' Then 11
When 'C' Then 12
When 'D' Then 13
When 'E' Then 14
When 'F' Then 15
Else substring(@A,@I,1)
End*power(@JS,@J)
Set @J=@J+1
Set @I=@I-1
End
return @Rst
End
读告型腊出并生成图片到物理位置public void Read()
{
byte[] MyData = new byte[0]
using (SqlConnection conn = new SqlConnection(sqlconnstr))
{
conn.Open()
SqlCommand cmd = new SqlCommand()
cmd.Connection = conn
cmd.CommandText = "select * from T_img"
SqlDataReader sdr = cmd.ExecuteReader()
sdr.Read()
MyData = (byte[])sdr["ImgFile"]//读取租旦第一个图片的位流
int ArraySize= MyData.GetUpperBound(0)//获得数据库中存储的位流数组的维度上限,用作读取流的上限
FileStream fs = new FileStream(@"c:\00.jpg", FileMode.OpenOrCreate, FileAccess.Write)
fs.Write(MyData, 0, ArraySize)
fs.Close() //-- 写入到c:\00.jpg。
conn.Close()
Console.WriteLine("读取成功")//查看硬盘上的文袜滑件
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)