请问怎样用VC在SQL SERVER 2000中建表,添加记录,修改记录,删除记录?希望介绍得详细一点,最好有相关原代码.

解决方案 »

  1.   

    http://www.vckbase.com/document/viewdoc/?id=215
    http://www.vckbase.com/document/viewdoc/?id=307
      

  2.   

    全部是通过SQL语句或者存储过程来完成,至于连接,执行SQL语句,论坛里面不下数百篇文章了,源代码也很多,最好自己先看一下这方面的书,
    简单代码:
    int DBOperator::IniDBEv(char* Temp)
    {
    ::CoInitialize(NULL);
     HRESULT hr=m_pCon.CreateInstance(__uuidof(Connection));
     if(FAILED(hr))return FALSE;
     
     _bstr_t strConnect=(_bstr_t)_com_util::ConvertStringToBSTR(MyCondata.ConnectString ); //connecting to the database server now:
     try{m_pCon->Open(strConnect,"","",NULL);}
     catch (_com_error &e)
     {
    //   ::MessageBox(NULL,e.Description()+"\n\r"+MyCondata.ConnectString ,"¾¯¸æ",MB_OK | MB_ICONWARNING);
    strcpy(Temp,e.Description());
      CoUninitialize();
      return FALSE;
     } return 1;
    }
    /***************************************************************
    /º¯Êý£º     R030602004/º¯ÊýÃèÊö£º °´Ìõ¼þ´ò¿ªÊý¾Ý¿â¼Ç¼¼¯,ÖØÔغ¯Êý/´«ÈëÖµ£º   Ñ¡ÔñÌõ¼þÓï¾ä,´ý¶¨µÄ¼Ç¼¼¯/´«³öÖµ£º   Êý¾ÝµÄ¼Ç¼¼¯/ÀúÊ·£º     ´´½¨£ºAjun,2003-7-22,Ð޸ģ¬ajun 2003-7-22/±¸×¢£º     ÎÞ
    ****************************************************************/
    int DBOperator::OpenRecordset(char *StrSQL, _RecordsetPtr Rst)
    {
    try{
    Rst->CursorLocation=adUseClient;
    Rst->Open((char*)_bstr_t(StrSQL),m_pCon.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);
    if(VARIANT_FALSE==Rst->EndOfFile)
    {
    }
    }
    catch(_com_error e)
    {
    char Temp[1024];
    Sys.GetSysTime(Temp);
    strcat(Temp,"  ");
    strcat(Temp,e.Description()); AddMessageStatus(NULL,Temp);
    return FALSE;
    }
    return TRUE;
    }
    /***************************************************************
    /º¯Êý£º     R030602002/º¯ÊýÃèÊö£º Ö´ÐÐSQLÓï¾ä/´«ÈëÖµ£º   CString SQLStr¼´SQLÓï¾ä/´«³öÖµ£º   ÎÞ/ÀúÊ·£º     ´´½¨£ºAjun,2003-6-5/±¸×¢£º     ½öÏÞÓÚÔö¼ÓºÍɾ³ý£¬Ð޸ģ¨Ñ¡Ôñ²»Ê¹Óã©
    ****************************************************************/
    int DBOperator::ExecuteRecord(char *SQLStr,char* Error)
    {
    try{ m_pCon->BeginTrans();
    m_pCon->Execute ((_bstr_t)SQLStr,NULL,adOptionUnspecified);
    m_pCon->CommitTrans();
    return 1;
    }catch(_com_error e){
    m_pCon->RollbackTrans();
    strcpy(Error,e.Description ());
    // MessageBox(NULL,SQLStr,e.Description(),MB_OK);
    return 0;
    }
    }
      

  3.   

    先看看上面关于ADO的一些基本操作,对SQL数据库,基本上相同
    创建一个表的例子:
    void CMainFrame::CreateTable()
    {
    CString sql;
    _variant_t RecordsAffected;
        sql="create table TempTable(ClassID char(3),DotID char(8),StLong char(9),StLat char(10),InsTime datetime)";
    try
    {
    theApp.m_pconn->Execute(_bstr_t(sql),&RecordsAffected,adCmdText);
    }
    catch(_com_error e)
    {
    AfxMessageBox("创建数据库表失败!");
    }
    }
      

  4.   

    对添加、删除,修改,只要执行对应的SQL语句就可以了,方法和创建数据库一样的。
      

  5.   

    添加、删除,修改,执行对应的SQL语句就可以了
    Insert Delete,Update
      

  6.   

    请教一个简单的问题:
        用VC来操作数据库(不论是用ODBC还是ADO)是不是一定要用MFC? 能不能直接调用存储过程??