char* szDesc;
int mlen;
szDesc=new char[512];
sprintf(szDesc,"DSN=networkstar?Server=localhost?DataBase=master?Trusted_Connection=yes?DESCRIPTION=IP data source?UID=sa?PWD=??");
mlen = strlen(szDesc);
for (int i=0; i<mlen; i++)
{
if (szDesc[i] == '?')
szDesc[i] = '\0';
} if (FALSE == SQLConfigDataSource( NULL, ODBC_ADD_DSN,"SQL Server",(LPCSTR)szDesc) )
AfxMessageBox("SQLConfigDataSource Failed");不管Trusted_Connection=yes加没加上,
一加上UID=sa PWD=空 就返回FALSE,如果不加则添加数据源成功,请问如何解决另外如何通过这个ODBC执行一个SQL脚本建一个TABLE
create database demo
on primary(....)
一个问题40分,谢谢了

解决方案 »

  1.   

    第二个问题说错了,是建一个Database
      

  2.   

    private void button1_Click(object sender, System.EventArgs e)
     {
     // 打开数据库连接
     if( conn.State != ConnectionState.Open)
      conn.Open();
     string sql = "CREATE DATABASE mydb ON PRIMARY"
      +"(name=test_data, filename =
    'C:\mysql\mydb_data.mdf', size=3,"
      +"maxsize=5, filegrowth=10%)log on"
      +"(name=mydbb_log,
    filename='C:\mysql\mydb_log.ldf',size=3,"
      +"maxsize=20,filegrowth=1)";
     cmd = new SqlCommand(sql, conn);
     try
     {
      cmd.ExecuteNonQuery();
     }
     catch(SqlException ae)
     {
      MessageBox.Show(ae.Message.ToString());
     }
     }
      

  3.   

      动态加载ODBC数据源//mdbName为数据库名称, DSN为数据源名称 void  SetODBCSource(char * mdbName ,char * DSNName)  {       char path[256]="";       char pathMDB[256]="";       GetAppPath(path);       strcpy(pathMDB,path);       strcat(pathMDB, "\\");       strcat(pathMDB, mdbName);       char MdbConfig[256]= "DSN=" ;// pwd       strcat(MdbConfig , DSNName);       char * pMconfig = MdbConfig + strlen(MdbConfig) + 1 ;       strcpy(pMconfig,"DBQ=");       pMconfig += 4;       strcat(pMconfig,pathMDB);       pMconfig += strlen(pathMDB) + 1 ;       strcpy(pMconfig,"DEFAULTDIR=");       strcat(pMconfig,path);       strcat(pMconfig,"\0");if(!SQLConfigDataSource(NULL,ODBC_ADD_SYS_DSN,"Microsoft  Access Driver (*.mdb)\0",MdbConfig))  //注意Driver后的空格       {              TRACE("加载数据库失败,请检查数据库是否存在\n");              return;                   }
     
      

  4.   

    UID=sa PWD=空
    应该是:UID="" PWD=""吧
      

  5.   

    谢谢回答,我是需要SQL SERVER ODBC数据源添加,带用户名密码的
    MSDN上说 是 UID 和 PWD 但是我只要加了这两个字段。
    SQLConfigDataSource函数就返回FALSE,如何解决
    第二个问题的我知道脚本怎么写,但是不知道怎么用这个ODBC去写
      

  6.   

    加了' '或者\"都返回FASLE哦
      

  7.   

    用户名密码不是在这里加的。建立数据源之后打开数据,在打开的时候指定用户名密码。
    CString str;
    CDatabase m_db;
    str = _T("DSN=myDSN;UID=id;PWD=pwd");
    if (!m_db.OpenEx(str, CDatabase::noOdbcDialog ) ){
       AfxMessageBox("打开数据源失败");
    }