以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教:写入二进制列出错  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=74935)

--  作者:bahamute
--  发布时间:2015/9/23 8:54:00
--  请教:写入二进制列出错
这个是什么意思?


图片点击可在新窗口打开查看此主题相关图片如下:剪辑_8.jpg
图片点击可在新窗口打开查看


--  作者:逛逛
--  发布时间:2015/9/23 8:57:00
--  

告诉你函数必须有个返回值

 

 

不能直接用Return

 

后面用根据情况,带一个返回值


--  作者:bahamute
--  发布时间:2015/9/23 9:02:00
--  

谢谢回复,这是帮助里的例子,一个字没动,return后面该加个什么返回值?


If Tables("员工").Current Is Nothing Then

  Return

End If


--  作者:大红袍
--  发布时间:2015/9/23 9:05:00
--  

If Tables("员工").Current Is Nothing Then

  Return nothing

End If


--  作者:bahamute
--  发布时间:2015/9/23 9:07:00
--  

这样我反倒迷糊了,原来好像直接用return就可以的,为何这里非得加个nothing?


If Tables("员工").Current Is Nothing Then

  Return nothing

End If


--  作者:bahamute
--  发布时间:2015/9/23 9:13:00
--  
还是有问题:
写入二进制列,提示:未将对象引用设置到对象的实例。
(二进制列已经从数据库里设置好,表也已经引用进来)。

If Tables("文件模板").Current Is Nothing Then
    Return Nothing
End If
Dim dr As DataRow = Tables("文件模板").Current.DataRow
If dr.RowState = DataRowState.Added Then \'如果是新增行,必须先保存才能插入文件
    dr.Save()
End If
Dim dlg As New OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
If dlg.ShowDialog =DialogResult.OK Then
    dr.SQLInsertFile("文件",dlg.FileName) \'插入文件
End If

--  作者:大红袍
--  发布时间:2015/9/23 9:46:00
--  

1、去看一下BeforeSaveDataRow事件,把代码删除。

 

2、代码不会有错。


--  作者:bahamute
--  发布时间:2015/9/23 10:19:00
--  
去掉了所有的表事件,写入还是出错,二进制设置为binary(50)有问题吗?

图片点击可在新窗口打开查看此主题相关图片如下:剪辑_9.jpg
图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2015/9/23 10:21:00
--  

认认真真看完

 

由于内部表没有办法增加二进制列,所以只有使用外部数据源时,才能使用二进制列管理文件。
虽然Access也有二进制列,但是由于Access单个数据库文件不能超过2G,所以使用二进制列时,如果文件比较大,建议大家采用SQL Server。
你并没有办法直接在Foxtable中给外部表增加二进制列,所以你只能在原数据库中事先增加好二进制列,Access对应的列类型为"OLE对象",SQL Server对应的列类型为"Image"。


--  作者:bahamute
--  发布时间:2015/9/23 10:23:00
--  
我确实看帮助了,但看岔了,谢谢


关于二进制字段

很多数据库软件都有二进制类型的列(字段),例如Access的Ole类型,SQl Server的binary和image类型,Oracle的blob类型。
出于效率和易用双方面的考虑,Foxtable不支持二进制字段,而是采用附件的形式管理图片以及各种文档,既支持本地的储存,也支持远程FTP。
所以大家在增加外部表的时候,务必要排除二进制类型的列。