我们有几个遗留应用程序使用Access数据库来存储数据和/或配置。
有时我们必须在客户数据库中进行小的更改或更正。 (添加索引,修改数据行,...)在许多情况下,客户的工作站上可以使用Access,但有时却不是。
是否有任何小工具可以对Access数据库进行小型维护操作,而不需要安装? (即可以从USB记忆棒开始)
我知道Squirrel SQL,但我希望能有更轻量级的东西。
答案 0 :(得分:3)
当Access不可用时,我使用VBScript进行数据库的编辑和更新。脚本可以非常快速地编写,并且可以在线获得许多现成的脚本,例如用于压缩数据库。
此示例链接表格。
Dim adoCn
Dim adoCat
Dim adoTbl
strLinkFile = "C:\Docs\DB1.mdb"
strAccessFile = "C:\Docs\LTD.mdb"
'Create Link...'
Set cn = CreateObject("ADODB.Connection")
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & strAccessFile & ";" & _
"Persist Security Info=False"
Set adoCat = CreateObject("ADOX.Catalog")
Set adoCat.ActiveConnection = cn
Set adoTbl = CreateObject("ADOX.Table")
Set adoTbl.ParentCatalog = adoCat
adoTbl.Name = "LinkTable"
adoTbl.properties("Jet OLEDB:Link Datasource") = strLinkFile
adoTbl.properties("Jet OLEDB:Link Provider String") = "MS Access"
adoTbl.properties("Jet OLEDB:Remote Table Name") = "Table1"
adoTbl.properties("Jet OLEDB:Create Link") = True
'Append the table to the tables collection'
adoCat.Tables.Append adoTbl
答案 1 :(得分:1)
MS Access使用ODBC,因此可以使用Windows上的任何数据库工具。
这些工具的主要问题是许多商业用途都使用某种复制保护,例如安装在注册表中的许可证密钥(例如,AQT)。所以这些都不行。
所以像Squirrel SQL这样的OSS工具是你最好的选择,因为它们没有人工限制,而且在USB记忆棒上安装它(以及Java)很简单:
在Squirrel SQL的主页中创建一个小的.BAT文件:
设置DIR =%~dp0
%DIR%.. \ java \ bin \ javaw.exe -jar squirrel.jar
就是这样。
答案 2 :(得分:0)
就个人而言,我会尽量避免这样做。 你正在掩盖问题而不是解决问题。
例如,如果索引值得添加到单个客户的数据库中,则可能值得添加到所有客户数据库。否则,同样的问题将不断发生。 我理解快速支持的必要性,但是在不同工作站上拥有根本不同的数据库只会导致更多问题向前发展,例如重新创建错误。
一旦他们学会了如何执行此操作以及应用程序是否留在他们的计算机上(即“我想知道如果我更改此值会发生什么?”),它还会增加潜在用户“小提琴因素”。)
修改当前应用程序(传统或非传统)以在启动时添加适当的索引,或者创建一个单独的小“修补程序”程序,该程序添加索引并要求客户运行它。 以上建议使用VBScript编写这些是完全合理的。关键是数据库交换是可重复的,您可以跟踪在哪里进行了更改。
如果数据本身需要修改,那么为什么这些数据首先写得很糟糕?也许应用程序可以适当修改,以便首先可以防止这种情况?这样可以避免与其他数据库发生同样的问题。