首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么进行网络传输stream形式的ole对象

2012-03-12 
如何进行网络传输stream形式的ole对象?各位大哥,小弟最近在编写一个网络版管理软件,由于水平有限,就采用ac

如何进行网络传输stream形式的ole对象?
各位大哥,小弟最近在编写一个网络版管理软件,由于水平有限,就采用access数据库和netdata控件来开发了。现在涉及提交stream形式的ole对象报错,很是头疼,请大家看看怎么办?有没有别的方法解决?  

首先是access数据库在本地时的代码,运行无问题。 

Dim mystr As String  
If mystr <> "" Then ‘(mystr保存的是照片所在的位置)  
Set Cn = New ADODB.Connection  
Cn.ConnectionString = ";DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & App.Path & "\tmp.MDB"  
Cn.Open  
Set rs = New ADODB.Recordset  
rs.Open "select * from data", Cn, adOpenStatic, adLockOptimistic  
Set mst = New ADODB.Stream  
mst.Type = adTypeBinary  
mst.Open  
mst.LoadFromFile mystr  
rs.AddNew  
rs.Fields("tmp").Value = mst.Read  
rs.Update  
rs.Close  
Cn.Close  


使用netdata控件后的代码: 
If mystr <> "" Then  
Set mst = New ADODB.Stream  
mst.Type = adTypeBinary  
mst.Open  
mst.LoadFromFile mystr 
form1.db.Execute "insert into 基本信息 (姓名,性别,年龄,部门,职务,照片) values('" & Text1.Text & "','" & Combo1.Text & "','" & Text2.Text & "','" & Combo2.Text & "','" & Text3.Text & "','" & mst.Read & "')" 
Fillfg '刷新fg  

  这样的话,除了照片这项其他项目都能添加进去,只有照片这项在数据库里是空的,也就是没有数据被提交上去,这是怎么回事啊?请求帮助!  

附注关于netdata控件的使用是这样的: 
更改原有单机版程序为客户端程序(只须增加两行代码): 
1 打开原有的项目,将目录下的cs.mdb移动到刚刚建立的服务器端的目录下。 
2 第一步-->>> 注释或删除掉原有ADO本地连接代码  
'Public DB As New Connection 'ado对象中的连接对象 
3 第二步-->>> 在Form_load事件中,注释或删除掉原有ADO本地连接的代码  
'DB.CursorLocation = adUseClient '设置数据库为本地数据库  
'DB.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;" 
4 第三步-->>> 在Form_load中,增加一行代码:  
Db.Start "127.0.0.1", "8888"  
启动客户端,指定服务器的ip和端口,为了便于测试这里设置的是本机ip  
实际应用中需将服务器端运行在远程服务器上,这里就要填远程服务器的域名或ip了。  
5 第四步-->>> 在Form_Unload事件中,注释或删除原有的ADO关闭本地连接的代码:  
 'DB.Close '注释掉原有ADO本地连接代码  
 然后增加第二行代码:  
Db.Down '关闭客户端控件...  
6 第五步--->>>加入NetData控件,并且将NetDataClient放到form1上,将它的name改名为DB

[解决办法]
我也在关注此问题,其实是SQL在做怪,应该是长度的限制,form1.db.Execute "insert into 基本信息 (姓名,性别,年龄,部门,职务,照片) values('" & Text1.Text & "','" & Combo1.Text & "','" & Text2.Text & "','" & Combo2.Text & "','" & Text3.Text & "','" & mst.Read & "')"

此语句中,insert into 。。。mst.Read 太长了

热点排行