100分请教怎样用vb将下列字符写入sql server中....(急用啊)

wqre2rgw 2004-10-01 09:27:42
唉.原来公司有位"高人".因为与老板不合被老板"炒"了.他走时将他的程序.源码都"带"走了.导致公司现在工作无法进行.现在找到一个他早期的有错误的源码.老板把这个艰巨的任务交给我这个菜鸟了.说叫我10.1放假搞出来.要不我也"悬"了......

update data set
money=0,items=0x85DC3200000000FF1648 where accountid='user1'


我用sql server的查询分析器可以添加进去.但不能直接在表格中手动添加.大家帮我看看啊.谢谢了.
在此我向那些10.1还坚守岗位的大家说.你们辛苦了.
...全文
212 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqre2rgw 2004-10-02
  • 打赏
  • 举报
回复
谢谢大家
QWERT520的方法可以用
我自己也琢磨出来了一种可行的方法
'strsql = "update data set items =" & Text4.Text & " where [AccountID]='" & Text5.Text & "'"
wumylove1234 2004-10-02
  • 打赏
  • 举报
回复
哈哈~~~~

谢谢大家
QWERT520的方法可以用
我自己也琢磨出来了一种可行的方法
'strsql = "update data set items =" & Text4.Text & " where [AccountID]='" & Text5.Text & "'"


晕倒~就是不要用单引号啊.!
常遇道 2004-10-02
  • 打赏
  • 举报
回复
strsql = "update data set items = cast(" & Text4.Text & " as varbinary) where [AccountID]='" & Text5.Text & "'"
wqre2rgw 2004-10-01
  • 打赏
  • 举报
回复
不行的
提示不允许从数据类型char到数据类型varbinary的隐性转换
zhangzwc 2004-10-01
  • 打赏
  • 举报
回复
好。帮你想想
wqre2rgw 2004-10-01
  • 打赏
  • 举报
回复
谢谢大家。都早点休息吧

直接用update 语句已经能添加进去

现在的新问题是用text4.text来动态填写时格式转换一直不对

大家都休息吧。明天我在想想
zgvslch 2004-10-01
  • 打赏
  • 举报
回复
strsql = "update data set items = CONVERT(char(50)," & Text4.Text & ") where [AccountID]='" & Text5.Text & "'"
zhangzwc 2004-10-01
  • 打赏
  • 举报
回复
数据类型 存储大小 描述
BINARY 每个字符占一个字节 任何类型的数据都可存储在这种类型的字段中。不需数据转换(例如,转换到文本数据)。数据输入二进制字段的方式决定了它的输出方式。
BIT 1 个字节 Yes 和 No ,以及只包含这两个数值之一的字段。
BYTE 1 个字节 介于 0 到 255 之间的整型数。
COUNTER 4 个字节 每当有新记录添加至表中时,由 Microsoft Jet 数据库引擎自动增加数值。在 Microsoft Jet 数据库引擎中,此数值的数据类型为 Long。
CURRENCY 8 个字节 介于 ??22,337,203,685,477.5808 到 922,337,203,685,477.5807 之间的符号整数。
DATETIME
(清参阅 DOUBLE ) 8 个字节 介于 100 到 9999 年的日期或时间数值。
GUID 128 个位 用于远程过程调用的唯一识别数字。
SINGLE 4 个字节 单精度浮点数,负数范围是从 -3.402823E38 到 -1.401298E-45,正数从1.401298E-45 到 3.402823E38,和 0。
DOUBLE 8 个字节 双精度浮点数,负数范围是从 -1.79769313486232E308 到 -4.94065645841247E-324,正数从 4.94065645841247E-324 到 1.79769313486232E308,和 0。
SHORT 2 个字节 介于 -32,768 到 32,767 的短整型数。
LONG 4 个字节 介于 -2,147,483,648 到 2,147,483,647 的长整型数。
LONGTEXT 每个字符占一个字节 从零到最大 1.2 千兆字节。
LONGBINARY 视实际需要而定 从零到最大 1.2 千兆字节。用于 OLE 对象。
TEXT 每个字符占一个字节 长度从 0 到 255 个字符。
zhangzwc 2004-10-01
  • 打赏
  • 举报
回复
下面的表格列出了 ANSI SQL 数据类型和等效的 Microsoft Jet 数据库引擎 SQL 数据类型与他们之间有效的同义字。

ANSI SQL
的数据类型 Microsoft Jet
SQL 的数据类型
同义字
BIT,BIT VARYING BINARY(请参阅注意) VARBINARY
不支持 BIT(请参阅注意) BOOLEAN,LOGICAL,LOGICAL1,YESNO
不支持 BYTE INTEGER1
不支持 COUNTER AUTOINCREMENT
不支持 CURRENCY MONEY
DATE,TIME,TIMESTAMP DATETIME DATE,TIME,TIMESTAMP
不支持 GUID
DECIMAL 不支持
REAL SINGLE FLOAT4,IEEESINGLE,REAL
DOUBLE PRECISION,FLOAT DOUBLE FLOAT,FLOAT8,IEEEDOUBLE,NUMBER,NUMERIC
SMALLINT SHORT INTEGER2,SMALLINT
INTEGER LONG INT,INTEGER,INTEGER4
INTERVAL 不支持
不支持 LONGBINARY GENERAL,OLEOBJECT
不支持 LONGTEXT LONGCHAR,MEMO,NOTE
CHARACTER,CHARACTER VARYING TEXT ALPHANUMERIC,CHAR,CHARACTER,STRING,VARCHAR
不支持 VALUE(请参阅注意)
注意

?ANSI SQL 的 BIT 数据类型并不对应 Microsoft Jet SQL 的 BIT 数据类型,但是它对应 BINARY 的数据类型。ANSI SQL 并没有等效于 Microsoft Jet SQL 的 BIT 的数据类型。
?VALUE 保留字不表示由 Microsoft Jet 数据库引擎定义的数据类型。
ilons1 2004-10-01
  • 打赏
  • 举报
回复
我机器上没装sql,不能肯定的答复你
这问题是因为你的item列是varbinary 类型,而你在VB里是把它当字符串写进去的.
SQL server 做隐性转换的时候不能转换过来.
以下是几点建议:
1.你在写存入的时候那边上两个引号不打,看SQL能不能隐性转换过去
2.你看看convert函数(sql server的)有没有能将varchar 转为varbinaryr的
3.写个store procedure 来做
4.改为以recordset 的方式引用,再看看MSDN看binary 类型该怎样存取

同情十一还在受资本家剥削的同志们, 我也属于被剥削的一员 , 很有同感...
只能把原因向你说明,问题还得你自己解决
chinavbFF10 2004-10-01
  • 打赏
  • 举报
回复
看不懂哦
wqre2rgw 2004-10-01
  • 打赏
  • 举报
回复
哦.
strsql = "update warehouse set items= 0x85DC3200000000FF1648 " & " where [AccountID]='" & Text5.Text & "'"
这样写可以.但如果我想用text4.text来动态填写.这个进制怎样转换
wqre2rgw 2004-10-01
  • 打赏
  • 举报
回复
运行是显示适时错误-2147217913(800040e07)
不允许从数据类型varchar到数据类型varbinary的隐性转换.请使用convert函数来运行此查询.


以上是运行是的出错提示
wqre2rgw 2004-10-01
  • 打赏
  • 举报
回复
我的代码
Dim Cn As ADODB.Connection
Set Cn = New ADODB.Connection
Cn.ConnectionString = "Provider=SQLOLEDB;Persist Security Info=True;User ID=" & Text2.Text & ";Password=" & Text3.Text & ";Initial Catalog=online;Data Source=" & Text1.Text
Cn.Open
Dim strsql As String
text4.text=0x85DC3200000000FF1648
text5.text=user1
strsql = "update data set items='" & Text4.Text & "' where [AccountID]='" & Text5.Text & "'"
Cn.Execute strsql
wqre2rgw 2004-10-01
  • 打赏
  • 举报
回复
指点一下
ltpao 2004-10-01
  • 打赏
  • 举报
回复
要么items数据类型不是Binary的,把详细的错误描述贴出来
axer 2004-10-01
  • 打赏
  • 举报
回复
编程时的命名一定要注意不要使用系统保留字,data和money之类的就很危险
wqre2rgw 2004-10-01
  • 打赏
  • 举报
回复
ltpao(啊炮) 不行啊
zhangzwc 2004-10-01
  • 打赏
  • 举报
回复
路过......
starsoulxp 2004-10-01
  • 打赏
  • 举报
回复
关注
加载更多回复(5)

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧