怎样用ADO实现先检索出一个ACCESS数据库结构,然后将修改其结构,比如删除某个字段,增加几个字段等!

解决方案 »

  1.   

    我程序中的一段代码
    CDaoDatabase *ppDatabase = new CDaoDatabase;//连接数据库 // failed to allocate // now create the database object with error checking
    ppDatabase->Create("c:\\Database.mdb", dbLangGeneral, dbVersion30); CDaoTableDef td( ppDatabase );
    try
    {
    td.Create( "操作人员", 0, NULL, NULL);//建立新表
    td.CreateField( "操作人员ID", dbText, 20, 0 );//建立"操作人员ID"字段
    td.CreateField( "操作人员密码", dbText, 20, 0 );//建立"操作人员密码"字段
    td.CreateField( "操作人员权限", dbInteger, 3, 0 );//建立"操作人员权限"字段
    td.Append();
    td.Close();
    } catch( CDaoException* e )
    {
    // Do nothing. Used to catch security violations opening tables.
    e->Delete( );
    }
    td.Close();
    ppDatabase->Close();
    具体详情可参阅有关文档资料。
      

  2.   

    用_ConnectionPtr对象的Execute方法执行一个SQL语句,比如要加一个字段:
    Excecute(_bstr_t("alter yourtable add newfield varchar(50)"))
      

  3.   

    ACCESS支持VARCHAR吗?应该是CHAR吧。
    但其他类型呢?
    上午我也做了这样的工作:
    _CommandPtr  cmd = NULL
    CString      strSql;
    if(FAILED(cmd.CreateInstance("ADODB.COMMAND"))) return FALSE;
    try{
        strSql.Format("alter table %s add %s char(50)", yourTable, yourField);
        cmd->ActiveConnection = m_ConnectDB;
        cmd->CommandText      = (LPCTSTR)strSql;
        cmd->Excute(NULL, NULL, 0);
        strSql.Format("alter table %s drop column %s ", yourTable, yourField);
        cmd->CommandText      = (LPCTSTR)strSql;
        cmd->Excute(NULL, NULL, 0);
    }
    catch(_com_error &e){}
      

  4.   

    1、用ClassWizard建一个新类,选择基类为CRecordSet;
    2、按OK后,会出现一个接口选择框,有Db-library,ODBC,Dao三种类型;你可以选择DAO;
    3、然后选择mdb文件,然后再选择数据库中的表。
    4、最后生成的类中就自然包含了数据库表的结构了。
    又,如果要通过SQL语句查询数据库表的结构请参阅手册,我手头现没有。sorry!
      

  5.   

    我也没有SQL Server手册.
    一定有高人知道