标签: varbinary

选择非空列

我有一个varbinary(max)列和nvarchar(max)列的表.其中一个是null,另一个是值.

我想返回具有varbinary(max)列值的列.到目前为止,我已经尝试过这个,但是没有用:

SELECT 
      A =  
      CASE A
         WHEN NULL THEN B
         ELSE A 
      END
FROM Table
Run Code Online (Sandbox Code Playgroud)

sql sql-server nvarchar varbinary sql-server-2008

2
推荐指数
1
解决办法
430
查看次数

我可以等效地处理Varbinary和bytea字段吗?

我将一个mysql DB移动到Postgres,但是有些表有一个varbinary(16)字段(用于存储IP地址).

Postgres不支持varbinary字段,经过一些研究,我发现Postgres等价bytea.

所以,我继续将表格bytea作为ip列的字段类型.

现在,我不确定,但这可能会给我带来麻烦.

所以,现在我的问题是,如果byteavarbinary完全可以等同或不被处理.例如,如果原始MySQL查询是:

 INSERT INTO messages(userID, userName, userRole, dateTime, ip, text)
 Values('21212111','bot','4',NOW(), inet_pton($ip), 'hi');
Run Code Online (Sandbox Code Playgroud)

注意:我在那里包含了一些php,因为我的日志没有显示插入的ip地址是什么(它是blob/something)

现在,如果它是一个bytea字段,这个查询是否会存储完全相同的数据?我会推测是的,但对于一个select语句也是如此吗?
即会,这个查询无论IP字段是否返回相同的数据varbinarybytea

SELECT userID, userName, userRole, channel ,ip FROM table
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间,祝你有个美好的一天.

php mysql postgresql varbinary

2
推荐指数
1
解决办法
3081
查看次数

SQL Server十六进制字符串到varbinary转换

好吧,问题是需要在2个表上进行合并或连接.一个文件内容存储为[image]类型或varbinary(max),另一个文件内容存储为十六进制字符串.如果我将相同的内容上传到两个表中

字符串(bytearray到string)的内容看起来像这样......

'application/vnd.xfdl;content-encoding="base64-gzip"
H4sIAAAAAAAAC+y9e1fjONI4/H9/Cg173idwFgIJl+5m6MzPJAayE+KsnXQPs8+cHJMY8HZi57ET
aObMh3918UW2Jcdyrmbg7E7HtqpUpSqVSqWSdPHLj/EIPBuOa9rWl51K+WgHGNbAHprW45edpqYc
fPp0+vmgsvNL7cPFb1eNFoDlLffLztN0Ojk/PHx5eSl3Zo4hDx+N8sAeH6Iyh2fl0x1S8Hwwc6f2'    
...
Run Code Online (Sandbox Code Playgroud)

图像的内容看起来像(这最终是我希望它看起来像)

0x6170706C69636174696F6E
Run Code Online (Sandbox Code Playgroud)

如果我选择convert(varbinary(MAX), @contentAsString)我得到0x6100700070006C00690063006100740069006F006E

似乎转换是在目标上但在每个之间放置两个零(00),我将其称为缺少更好的单词的字节.

我已尝试在论坛上发布各种更复杂的方法,但无济于事.任何帮助,将不胜感激.

sql string type-conversion varbinary

2
推荐指数
2
解决办法
3万
查看次数

在单独的1-1表中使用varbinary字段有什么好处?

我需要将二进制文件存储在SQL Server 2005上的varbinary(max)列中,如下所示:

的FileInfo

  • FileInfoId int,PK,identity
  • FileText varchar(max)(可以为null)
  • FileCreatedDate日期时间等

FileContent

  • FileInfoId int,PK,FK
  • FileContent varbinary(最大)

FileInfo与FileContent具有一对一的关系.FileText用于在没有要上载的文件时使用,并且仅为项目手动输入文本.我不确定有多少百分比的项目会有二进制文件.

我应该创建第二个表.两个表设计会有任何性能改进吗?有任何合理的好处吗?

我找到了这个页面,但不确定它是否适用于我的情况.

sql-server performance database-design sql-server-2005 varbinary

1
推荐指数
1
解决办法
2714
查看次数

SQL 2008:数据库中的文件流与二进制文件

昨天我问了一个关于如何保存文件的问题.经过一些研究后,我决定将文件存储在数据库中.

我已经检查了使用文件流存储文件和将文件存储在数据库本身之间的区别.

每个都有它的优点和缺点.为了帮助我进行研究,这个网站帮助了我很多:http: //www.codeproject.com/KB/database/SqlFileStream.aspx

所以基本上它说如果文件大于1mb,使用文件流保存文件会更好.

但我发现了文件流的另一个问题.如果删除数据库中的记录,则文件系统上仍存在该文件.

所以我需要你们的意见.用什么?文件流或使用VARBINARY保存数据库中的文件?

Grtz,M.

sql-server blob filestream varbinary sql-server-2008

1
推荐指数
1
解决办法
2026
查看次数

LINQ Varbinary到C#字节数组

我是整个LINQ系统的新手,我将密码哈希并存储在我的数据库的varbinary字段中,现在我想从我的数据库中获取该值并将其存储在字节数组中以使用LINQ进行比较.我之前做过这样的事情:

System.Data.SqlTypes.SqlBytes sqlPassBinary = dr.GetSqlBytes(dr.GetOrdinal("Password"));
Run Code Online (Sandbox Code Playgroud)

现在我想尝试应用这个相同的概念,但这次使用LINQ.我尝试了这个,但它不起作用:

public bool Authenticate(string user, string pass)
{
    ***LINQDataContext d = new ***LINQDataContext();

    var login = from us in d.Users
                join ur in d.UserRoles on us.UserRoleID equals ur.UserRoleID
                where us.Username == user 
                select us;

    if ((login as IEnumerable<object>).Any())
    {
        System.Web.HttpContext.Current.Session["UserID"] = login.FirstOrDefault().UserID.ToString();
        System.Web.HttpContext.Current.Session["UserRole"] = login.FirstOrDefault().UserRole.ToString();
        byte[] sqlbinary = (byte[]) login.FirstOrDefault().Password;;

        return true;
    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

我得到这个错误: 在此输入图像描述

c# bytearray varbinary linq-to-sql

1
推荐指数
1
解决办法
4349
查看次数

PHP与MSSQL显示来自varbinary字段的原始数据

我正在尝试在 php 中显示 SQL Server 中 varbinary 字段的原始数据。我想准确地返回 SQL Server 中的内容(0x00000 等),但它似乎正在执行某种转换并返回给我类似 )T\xc2\xa1\xc3\xb2a\xc3\xbdC\xc5\xbe\ 的内容xc2\xabV\xc2\xb0\xc3\x98\xe2\x80\x98\xc2\xa9O

\n\n

希望这对某人有意义。

\n\n

谢谢

\n

php sql-server varbinary

0
推荐指数
1
解决办法
7642
查看次数

将字节数组转换为不在c#中工作的字符串

我在数据库中有一个包含varbinary数据的AttachmentFile列.在c#中,我将它存储在byte []数组中.我需要将此内容作为字符串显示给用户.我尝试了几种不同的方法将这个字节数组转换为字符串,但似乎没有任何效果.

这是我想要做的 -

while (rdr.Read())
{
    string name = rdr["AttachmentFileName"].ToString();
    string mime = rdr["AttachmentMIMEType"].ToString();
    byte[] content = (byte[])rdr["AttachmentFile"];

    string contentStr = (???)ConvertToString(content);
    r.AddHeader("Content-Disposition", "attachment; filename=" + name);
    r.ContentType = mime;
    r.Write(contentStr);
}
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所尝试的 -

string contentStr = Encoding.Default.GetString(content, 0, 10000);
string contentStr = Encoding.UTF8.GetString(content, 0, 10000);

content = Encoding.Convert(Encoding.GetEncoding("iso-8859-1"), Encoding.UTF8, content);
string contentStr = Encoding.UTF8.GetString(content, 0, 10000);

System.Text.Encoding enc = System.Text.Encoding.ASCII;
string contentStr = enc.GetString(content);

string contentStr = System.Convert.ToBase64String(content);
Run Code Online (Sandbox Code Playgroud)

但是上面没有一个给我一个清晰的字符串.有任何想法吗?

c# encoding varbinary

0
推荐指数
1
解决办法
1309
查看次数