Visual c++ ODBC连接字符串

Visual c++ ODBC连接字符串,visual-c++,odbc,Visual C++,Odbc,这是一个VC++ODBC连接字符串,它是Unicode。如何使其通用?我可以为不同的数据库输入用户名、密码 SQLDriverConnect (sqlconnectionhandle, NULL, L"Driver={SQL Server};Server=123.1.78.100, 1433;Database=DB1;Uid=user123;Pwd=pw123;", SQL_NTS, r

这是一个VC++ODBC连接字符串,它是Unicode。如何使其通用?我可以为不同的数据库输入用户名、密码

SQLDriverConnect (sqlconnectionhandle, 
             NULL, 
             L"Driver={SQL Server};Server=123.1.78.100, 1433;Database=DB1;Uid=user123;Pwd=pw123;",
             SQL_NTS, 
             retconstring, 
             1024, 
             NULL,
             SQL_DRIVER_NOPROMPT)
我试过这个,但不起作用:

string serverIp = "123.1.78.100, 1433";
string db_name = "DB1";
string user_id = "uesr123"
string pwd = "pw123";


string ss;
            ss.append("Driver={SQL Server};Server=");
            ss.append(serverIP);
            ss.append(";Database=");
            ss.append(dbName);
            ss.append(";Uid=");
            ss.append(uId);
            ss.append(";Pwd=");
            ss.append(pw);
            ss.append(";");

SQLDriverConnect (sqlconnectionhandle, 
             NULL, 
             (wchar_t*)ss.c_str(),
             SQL_NTS, 
             retconstring, 
             1024, 
             NULL,
             SQL_DRIVER_NOPROMPT)
我试着这样做:(当连接中提到的数据库存在时)它工作得很好

String ss;
            ss =  ("Driver={SQL Server};Server=");
            ss = ss + (serverIp);
            ss = ss + (";Database=");
            ss = ss + (db_name);
            ss = ss + (";Uid=");
            ss = ss + (uId);
            ss = ss + (";Pwd=");
            ss = ss + (pwd);
            ss = ss + (";");

确保关于创建名为。。。在连接到数据库之前

您的通用连接代码出现了什么错误?有什么错误吗?如果是,请附加错误消息。错误消息是“未找到数据源名称,未指定默认驱动程序”,这意味着您没有使用该名称创建数据库。。。在连接到数据库之前,先创建它。然后试试。你有没有用特定方法中使用的数据样本来尝试通用方法?这是否也显示了错误?connectionString模式L###s有效,但我想构建一个函数,允许用户键入db#U名称、ip、用户名和pw。