以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于二进制列  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=105835)

--  作者:zhy400137
--  发布时间:2017/8/27 12:06:00
--  关于二进制列
我在公司ERP里用分布式查询组合了一个库存表,里面有一列图片的二进制列,现在我想在窗口中放一个按钮,
将库存表查进窗口Table1里,然后点商品ID列,可以弹出图片,但现在查询是没有问题,但显示图片会出现
未将对象引用到……的错误,请教为什么?


--  作者:zhy400137
--  发布时间:2017/8/27 12:08:00
--  
Dim s As String = "Provider=SQLOLEDB.1;Password=369.;Persist Security Info=True;User ID=by;Initial Catalog=自动报表系统;Data Source=226.121.846.110"
If Connections.Contains("byfind") Then
    Connections.Delete("byfind")
End If
If Connections.TryConnect(s) = True Then
    Connections.Add("byfind",s)
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    cmd.C
    cmd.CommandText = "SE L ECT TOP 10 部门名称,地区名称,商品ID,库存数量,库存金额,商品编码,商品名称,条码,规格,产地,品牌,库存成本单价,成本价格段,商品大类,商品分类,五级分类,库龄,地区,自营与代销,零售价 FR OM 带零售价商品库存2017年"
    dt = cmd.ExecuteReader
    If dt.DataRows.Count>0 Then
        Tables("测试_Table1").DataSource = dt    
    Else
        MessageBox.show("无法获取数据,请手动输入","提示!")
    End If
    
Else
    MessageBox.show("无法连接数据源,请手动输入","提示!")
End If

--  作者:zhy400137
--  发布时间:2017/8/27 12:09:00
--  
查询按钮的代码,这个是可以顺利执行将表查询进来的
--  作者:zhy400137
--  发布时间:2017/8/27 12:09:00
--  
Dim dr As Row = Tables("测试_Table1").Current
If dr IsNot Nothing Then
    If Forms("图片").Opened Then \'如果窗口已经打开
        Dim pbx As WinForm.PictureBox = Forms("图片").Controls("PictureBox1")
        If dr Is Nothing Then
            pbx.Image = Nothing
        Else
            Dim val As String
            val = dr.DataRow.SQLGetValue("商品图片")
               msgbox(Val)
            pbx.Image = dr.DataRow.SQlLoadImage("商品图片") \'从后台提取照片并显示
        End If
    End If
End If

currentChanged 事件代码,就是执行这个会错了

--  作者:zhy400137
--  发布时间:2017/8/27 12:10:00
--  
doubleclick 代码
If e.Col.Name ="商品ID" Then
    e.Cancel=True
    Forms("图片").open
End If

--  作者:zhy400137
--  发布时间:2017/8/27 12:11:00
--  
图片窗口 afterload 的代码
Tables("测试_Table1").RaiseCurrentChanged() \'强行触发CurrentChanged事件

--  作者:zhy400137
--  发布时间:2017/8/27 12:12:00
--  
错误提示是:未将对象引用设置到对象的实例
--  作者:zhy400137
--  发布时间:2017/8/27 12:16:00
--  
对了那个库存表我是用视图的形式,是不是因为这个不能用.SQlLoadImage("商品图片") ,这个能处理吗?
--  作者:zhy400137
--  发布时间:2017/8/27 12:23:00
--  
           val = dr.DataRow.SQLGetValue("商品图片")
               msgbox(Val)
这句查询出来的是空值,但我看数据库里是有数据的OX开头的二进制数据

--  作者:zhy400137
--  发布时间:2017/8/27 15:14:00
--