访问2007到SQL服务器文件上传?

时间:2010-09-20 08:51:48

标签: sql-server file-upload ms-access-2007 attachment

我有一个带附件功能的Access 2007数据库。目前,客户端可以在本地上载文件,但不能在其他地方访问文件。在基于Web的系统上进行开发时,我能够执行类似的操作,但我似乎无法在Access 2007数据库上进行此操作,我不确定它是否可行。基本上,系统需要在线连接到SQL服务器并上传文件,尽管数据库本身不在线。我会很感激任何指针!

1 个答案:

答案 0 :(得分:0)

我遇到过这种情况。以下是您的选择:

  1. 在共享的ACCDB中使用访问附件字段 - 不能很好地“在线”工作,但您可以将ACCDB停放在LAN上,并使其成为所有人共享的单独的后端ACCDB。您的帖子没有说明您的用户是本地用户还是“在线” - 以及“在线”是否意味着网络。

  2. 使用SQL-Server中的VarChar(Max)(也称为BLOB)字段来存储附件。但是,您无法从Access轻松填充这些内容。假设您控制运行SQL-Server的服务器,您可以使用Access中的ADO使用bulkinsert T-SQL命令上载VarChar(Max)。这非常有效,而且很容易。

  3. 创建上传网页。在VBA中使用iExplorer自动化(即创建iExplorer对象)导航到该页面,填写并按下上传按钮。出于安全原因,您无法使用自动化来填充文件上载控件,但您可以使用sendkeys。这不能完美地工作 - 有时你必须重复一次或两次这个过程,但是如果它被一个可以验证它工作的用户调用它会很好。这就是我所做的 - 最简单的解决方案。

  4. 最佳解决方案可能是使用WCF创建一个Web服务来处理上传。关于如何编码和解码字节数组以存储文件为VarChar(Max),有很多帖子。它非常好用。遗憾的是,就我所知,Access无法直接使用Web服务,因此您必须编写一个小型的vb.net程序来执行此操作并从Access调用它。

  5. 您可以将文件/附件存储在SQL / Server之外 - 只在服务器上,并且只存储Access中这些文件的链接/ URL。你可以让每一个都可以发射。这很容易,但更难控制安全性。

  6. 您可以使用Sharepoint来存储/共享附件。根据附件的大小和连接性,这可以很好地工作。它旨在支持这一点。

  7. Access允许在一条记录中使用多个附件。 SQL / Server不支持此功能。因此,如果您可以将ACCDB拆分为仅用于程序的前端和可由用户共享以包含数据/附件的后端ACCDB,这是迄今为止最简单的答案。

相关问题