繁体   English   中英

使用VB.NET创建ODBC DSN

[英]Create ODBC DSN using VB.NET

我想为数据库创建ODBC DSN(每当用户设置应用程序时它将包含在我的应用程序文件夹中)。 我想知道如何使用所有必需的参数创建ODBC,以便在运行安装程序时要做的第一件事就是将数据库连接到应用程序。 我尝试使用默认的VB.NET安装向导和Installshield。

我不知道通过安装程序或VB.NET创建DSN的任何方法,但是使用Windows实用程序可以创建一个方法。

页面显示了如何使用命令行实用程序odbcconf在Windows中创建DSN,因此一旦创建了可以根据应用程序要求创建DSN的批处理脚本,就可以触发批处理执行,然后将安装程序将文件复制到用户计算机。 因此,在执行脚本之后,应用程序安装将进一步移动以复制剩余文件,并且在安装完成并启动应用程序之后,由于现已创建DSN,因此您与DSN的连接将按预期工作。 不过,我还没有使用InstallShield,我在NSIS上的经验表明,通过安装程序执行批处理脚本肯定会在安装过程中弹出命令提示符窗口,而您可能不希望这样做。

避免显示命令提示符窗口的另一种方法是,在建立与数据库的任何连接之前,在首次运行应用程序时执行批处理脚本(以静默方式)。 您可以使用WScript.Shell对象执行批处理文件(.bat),而无需显示命令提示符窗口,如下所示。

Dim batfile As String

batfile = "C:\Program Files\Your App\YouDSNCreationBatchFile.bat"

Set WshShell = CreateObject("WScript.Shell")

cmds = WshShell.RUN("""" & batfile & """", 0, True) 'All Quotes are necessary if file path contains folders with spaces in thier names

Set WshShell = Nothing

尽管odbcconf也可以直接在VB中用于创建DSN,但是如果您不想在连接之前调整应用程序代码以创建DSN,则使用批处理脚本将是一种故障安全的解决方案,但是,正如我猜想的那样,可能已在try块中连接了您的应用程序,因此,如果您捕获由于缺少DSN可用性而引发的异常,则可以再次调用此批处理脚本来创建一个或提示用户使用该批处理脚本。

!!重要提示:正如MSDN页面所述, odbcconf实用程序很可能会从Windows数据访问组件的未来版本中删除,如果您长期使用此方法,则应重新考虑此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM