Execute ObdcCommand for NetezzaSQL with C#

本文关键字:with NetezzaSQL for ObdcCommand Execute | 更新日期: 2023-09-27 18:34:08

我正在尝试在 c# 中使用 OdbcCommand 执行命令,但似乎我什至无法打开连接。这是我为创建连接字符串而获得的数据

Server: APPRDNETEZZA (192.168.0.64)
Web Server: beamprdwb3
ODBC DSN Name (64bit): NZ_FUTUREBRANDS
User: MSTR_ADMIN
Port: 5480

这是我的代码

string connetionString = null;
OdbcConnection cnn;
OdbcCommand cmd;
string sql = null;
connetionString = "Driver={NetezzaSQL}; servername=APPRDNETEZZA ; 
database=NZ_FUTUREBRANDS; port=5480; username=MSTR_ADMIN;  
password=mstr17Uz1%4;";
sql = "CREATE EXTERNAL TABLE X_STORE_GROUP_GUID_12345(" +
                        "STORE_ID VARCHAR(10)," +
                        "STORE_NAME VARCHAR(50)," +
                        "USERID Varchar(255)," +
                        "import_guid Varchar(255), )" +
                        "USING(" +"DATAOBJECT('/apnas01/vol2.nfs.Data/ap_prod/data/store_upload/scripts/12345_guid_12345')" + "logDir '/apps/ap_prod/log'" + "     delimiter ','" + "  "; ";
        cnn = new OdbcConnection(connetionString);
        try
        {
            cnn.Open();
            Console.WriteLine("Connection Opened ");
            cmd = new OdbcCommand(sql, cnn);
            cmd.ExecuteNonQuery();
            cmd.Dispose();
            cnn.Close();
            result = "Executed sucessfully";
        }
        catch (Exception ex)
        {
            result = "Error" + ex.InnerException.ToString();
        }

尝试打开连接时会发生错误。调试时它给了我这个内部异常

[ODBC 驱动程序管理器] 找不到数据源名称,并且没有默认驱动程序 指定

我的机器中安装了 Odbc 驱动程序。我不知道这正在发生,因为连接字符串格式不正确。我花了很多时间试图弄清楚为什么不起作用。感谢任何形式的帮助。谢谢

Execute ObdcCommand for NetezzaSQL with C#

下面是

一个示例 Netezza ODBC 连接字符串:

https://www.connectionstrings.com/netezzasql-odbc-driver/

Driver={NetezzaSQL};servername=myServerAddress;port=myPortNumber;
database=myDataBase;username=myUsername;password=myPassword;

连接字符串基本相同:

connetionString = "Driver={NetezzaSQL}; servername=APPRDNETEZZA ; 
database=NZ_FUTUREBRANDS; port=5480; username=MSTR_ADMIN;  
password=xyz;";

建议:

  1. 将整个连接字符串(引号内的所有内容)设为一行。 不要将字符串分成单独的行。

    或者使用"+"(就像你对SQL字符串所做的那样)。

  2. 将驱动程序 (nsqlodbc.dll?) 复制到与.exe程序集相同的目录中(路径问题?

  3. 尝试 32 位和 64 位驱动程序(CPU 平台问题?

一定要回发你发现的东西!