0

这应该很简单。我正在尝试将数据从 Access 导入 SQL Server。我没有直接访问 SQL Server 数据库的权限——它在 GoDaddy 上,他们只允许 Web 访问。所以我不能使用 Management Studio 工具,或其他需要远程访问数据库的第三方 Access 升迁程序。

我在 Access 数据库上编写了一个查询,我试图循环并将每条记录插入到相应的 SQL Server 表中。但它不断出错。我相当肯定这是因为 HTML 和上帝知道 Access 文本字段之一中还有哪些其他奇怪的字符。我尝试使用 CFQUERYPARAM 但这似乎也无济于事。

任何想法都会有所帮助。谢谢。

4

4 回答 4

1

尝试使用GoDaddy SQL 备份/恢复工具获取数据库的本地副本。此时,使用SQL Server DTS 工具导入数据。这是一个易于使用的拖放式图形界面。

于 2008-09-15T20:25:18.557 回答
1

抛出什么错误?你用的是什么奇怪的字符?您是指 HTML 标记,还是扩展(例如 UTF-8)字符?

如果可能,请打开强大的错误报告。

如果问题是页面超时,您可以使用 Admin 增加超时时间,使用 cfsetting 标签,或者重写脚本以运行一定数量的行,然后在下一个起点转发到自身。

于 2008-09-16T14:10:25.140 回答
0

您应该能够从应用程序服务器的命令行执行 MS SQL Server 中保存的 DTS 包。既然是这种情况,您可以使用<cfexecute>向 DTSRUNNUI.EXE 发出请求。(参见示例)这当然是假设您在该命令可用的服务器上。

于 2008-09-17T22:42:53.573 回答
-1

当可以使用 SQL 更新时,永远不建议循环遍历记录。

从您的问题中不清楚您正在使用哪个数据库接口层,但如果正在使用的接口支持两种类型的数据库,则可以使用正确的接口从数据库外部的源插入数据。这可以在 SQL 语句的 FROM 子句中完成,方法是不仅指定表名,还指定数据库的连接字符串。假设您的 Web 主机具有 Jet 数据的 ODBC 驱动程序(您实际上并未使用 Access,它是应用程序开发部分——您仅使用 Jet 数据库引擎),连接字符串应该足够了。

编辑:如果您使用 Jet 数据库引擎来执行此操作,您应该能够指定类似这样的源表(其中 tblSQLServer 是您的 Jet MDB 中的一个表,它通过 ODBC 链接到您的 SQL Server):

INSERT INTO tblSQLServer (ID, OtherField ) 
SELECT ID, OtherField
FROM [c:\MyDBs\Access.mdb].tblSQLServer 

关键是您在这里利用 Jet db 引擎为您完成所有繁重的工作。

于 2008-09-15T19:59:18.867 回答