- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以帮我解决这个问题吗?我需要通过系统 DSN 检查我与 AS400 服务器的 ODBC 连接,如果不存在特定的系统 DSN,则创建一个系统 DSN。我试过谷歌搜索,但没能找到对我有好处的东西。
顺便说一句,我对编程还很陌生。任何帮助都感激不尽。谢谢
最佳答案
在浏览了几个不太复杂的在线示例之后,这就是我设法想出的(对我来说效果很好)。
using System;
using System.Runtime.InteropServices;
public class ODBC_Manager
{
[DllImport("ODBCCP32.dll")]
public static extern bool SQLConfigDataSource(IntPtr parent, int request, string driver, string attributes);
[DllImport("ODBCCP32.dll")]
public static extern int SQLGetPrivateProfileString(string lpszSection, string lpszEntry, string lpszDefault, string @RetBuffer, int cbRetBuffer, string lpszFilename);
private const short ODBC_ADD_DSN = 1;
private const short ODBC_CONFIG_DSN = 2;
private const short ODBC_REMOVE_DSN = 3;
private const short ODBC_ADD_SYS_DSN = 4;
private const short ODBC_CONFIG_SYS_DSN = 5;
private const short ODBC_REMOVE_SYS_DSN = 6;
private const int vbAPINull = 0;
public void CreateDSN(string strDSNName)
{
string strDriver;
string strAttributes;
try
{
string strDSN = "";
string _server = //ip address of the server
string _user = //username
string _pass = //password
string _description = //not required. give a description if you want to
strDriver = "iSeries Access ODBC Driver";
strAttributes = "DSN=" + strDSNName + "\0";
strAttributes += "SYSTEM=" + _server + "\0";
strAttributes += "UID=" + _user + "\0";
strAttributes += "PWD=" + _pass + "\0";
strDSN = strDSN + "System = " + _server + "\n";
strDSN = strDSN + "Description = " + _description + "\n";
if (SQLConfigDataSource((IntPtr)vbAPINull, ODBC_ADD_SYS_DSN, strDriver, strAttributes))
{
Console.WriteLine("DSN was created successfully");
}
else
{
Console.WriteLine("DSN creation failed...");
}
}
catch (Exception ex)
{
if (ex.InnerException != null)
{
Console.WriteLine(ex.InnerException.ToString());
}
else
{
Console.WriteLine(ex.Message.ToString());
}
}
}
public int CheckForDSN(string strDSNName)
{
int iData;
string strRetBuff = "";
iData = SQLGetPrivateProfileString("ODBC Data Sources", strDSNName, "", strRetBuff, 200, "odbc.ini");
return iData;
}
}
...然后从您的应用程序调用方法。
static void Main(string[] args)
{
ODBC_Manager odbc = new ODBC_Manager();
string dsnName = //Name of the DSN connection here
if (odbc.CheckForDSN(dsnName) > 0)
{
Console.WriteLine("\n\nODBC Connection " + dsnName + " already exists on the system");
}
else
{
Console.WriteLine("\n\nODBC Connection " + dsnName + " does not exist on the system");
Console.WriteLine("\n\nPress 'Y' to create the connection?");
string cont = Console.ReadLine();
if (cont == "Y" || cont == "y")
{
odbc.CreateDSN(dsnName);
Environment.Exit(1);
}
else
{
Environment.Exit(1);
}
}
}
关于c# - 检查系统 DSN 并创建系统 DSN(如果不存在)(iSeries Access ODBC 驱动程序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9256368/
编辑 1 我尝试创建并使用系统 DSN。我按照下面类似的步骤进行了成功的连接尝试。然后我修改了连接字符串以引用这个新的 DSN。我收到错误指定的 DSN 包含驱动程序和应用程序之间的架构不匹配。 为了
编辑 1 我尝试创建和使用系统 DSN。我按照以下类似步骤进行了成功的连接尝试。然后我修改了我的连接字符串以引用这个新的 DSN。我收到错误消息The specified DSN contains a
有人可以帮我解决这个问题吗?我需要通过系统 DSN 检查我与 AS400 服务器的 ODBC 连接,如果不存在特定的系统 DSN,则创建一个系统 DSN。我试过谷歌搜索,但没能找到对我有好处的东西。
我正在托管环境中编写一个小型 ASP.NET 应用程序(这意味着我不拥有该服务器)。 使用托管提供商的 webtools,我创建了一个指定驱动程序、服务器、UID、PWD 和数据库的 DSN。当我测试
有一段时间,我一直在尝试让一个 visual basic 6 应用程序在 Windows 7 中运行。最后一个问题是它在启动时找不到 DSN。凭直觉,我删除了系统 DSN 并以完全相同的方式创建它,但
在 AX2012 中,我想建立一个到 SQL Server 2008R2 的 ODBC 数据库连接。为此,我构建了 32 位系统 DSN“SQL Server Native Client 10.0”(
我有一个 SQL 数据库,并希望使用 VBA 连接到它以支持某些旧功能。我正在使用 ADODB 连接并且需要知道我的数据库 DSN 是什么。我怎样才能找到这个? 我正在使用 SQL Server 20
我从System32加载odbccp32.dll,甚至尝试从SysWow64使用。我使用SQLConfigDataSource函数为指定的驱动程序配置系统DSN。此功能可以成功配置32位驱动程序,但对
所以我创建了以下 docker-compose.yml 文件 web: build: ./config/apache volumes: - ./code:/var/ww
我有一个使用链接的 sql server 表作为数据源的 Access 表单。我需要尽快将此文件分发给其他用户,并且我需要一种方法来以编程方式将 DSN 安装到他们的机器上。这是手动设置链接的过程:
当尝试配置 symfony Messenger 时总是出现错误 No transport supports the given Messenger DSN "doctrine://default".
下面是在 VBA 应用程序中填充列表框的代码: Private Sub Form_Open(Cancel As Integer) ''#Populate list box control. D
PHP PDO 使用这种风格: MySQL mysql:host=hostname;dbname=databasename 在各自单独的参数中使用用户名和密码 PostgreSQL pgsql:hos
我有一个 Excel 应用程序,我想在其中向用户显示数据源名称(即 DSN)的列表,以便她/他可以选择要使用的数据源。 希望一旦获得列表,我就可以轻松访问 DSN 属性以连接到适当的数据库。 请注意,
PHP PDO 使用这种风格: MySQL mysql:host=hostname;dbname=databasename 在各自单独的参数中使用用户名和密码 PostgreSQL pgsql:hos
PDO DSN 的官方文档页面尚未列出用户名或密码。这些键值对的正确名称是什么? 最佳答案 看起来文档还没有更新,但是this is the related change来自 PHP 的源存储库,说明
我们有一个 ASP.NET 网站,该网站使用我们希望能够使用连接字符串访问的数据库。我们已经成功设置了一个 DSN 来连接到该数据库,但我似乎无法发现连接字符串的正确魔力。 有没有一种简单的方法可以将
我正在尝试在运行时创建一个 ACCESS DB,并使用以下代码在 ODBC.ini 中注册为 DSN: BOOL fCreated; fCreated = SQLConfigDataSource(N
我遇到了这个错误: The specified DSN contains an architecture mismatch between the Driver and Application 尝试使
我第一次尝试在 PHP 中使用异常,但进展不太顺利。 我有一个名为dsn的变量,它包含PDO/MySQL的连接字符串。 当我在 dsn 上使用 var_dump 时,它返回“null”,因此我可以假设
我是一名优秀的程序员,十分优秀!