这应该很简单。我正在尝试将数据从Access导入SQL Server。我没有直接访问SQL Server数据库 - 它在GoDaddy上,它们只允许Web访问。因此,我无法使用Management Studio工具或其他需要远程访问数据库的第三方Access升迁程序。
我在Access数据库上写了一个查询,我正在尝试循环并将每条记录插入到相应的SQL Server表中。但它不断出错。我很确定这是因为HTML和上帝知道其中一个Access文本字段中有哪些奇怪的字符。我尝试过使用CFQUERYPARAM,但这似乎也无济于事。
任何想法都会有所帮助。感谢。
答案 0 :(得分:1)
尝试使用GoDaddy SQL backup/restore tool获取数据库的本地副本。此时,使用SQL Server DTS tool导入数据。它是一个易于使用的拖放式图形界面。
答案 1 :(得分:1)
抛出什么错误?你用的是什么奇怪的字符?您是指HTML标记还是扩展(例如UTF-8)字符?
如果可能,请启用强健错误报告。
如果问题是页面超时,您可以使用Admin增加超时,使用cfsetting标记,或者重写脚本以运行一定数量的行,然后在下一个起始点转发给自己。
答案 2 :(得分:0)
您应该能够从应用程序服务器的命令行在MS SQL Server中执行已保存的DTS包。由于是这种情况,您可以使用<cfexecute>
向DTSRUNNUI.EXE发出请求。 (See example)这当然是假设您所在的服务器上有命令。
答案 3 :(得分:-1)
当可以使用SQL Update时,永远不建议循环记录。
从您的问题中不清楚您正在使用什么数据库接口层,但是可以使用正确的接口从数据库外部的源插入数据如果正在使用的接口支持这两种类型的数据库。这可以在SQL语句的FROM子句中完成,不仅指定表名,还指定数据库的连接字符串。假设您的Web主机具有Jet数据的ODBC驱动程序(您实际上并未使用Access,这是应用程序开发部分 - 您只使用Jet数据库引擎),连接字符串应该足够了。
编辑:如果您使用Jet数据库引擎执行此操作,您应该能够指定类似于此的源表(其中tblSQLServer是Jet MDB中通过ODBC链接到SQL Server的表):< / p>
INSERT INTO tblSQLServer (ID, OtherField )
SELECT ID, OtherField
FROM [c:\MyDBs\Access.mdb].tblSQLServer
关键是你在这里利用Jet数据库引擎为你做所有繁重的工作。