На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! информация о разделе
user posted imageДанный раздел предназначается исключительно для обсуждения вопросов использования языка запросов SQL. Обсуждение общих вопросов, связанных с тематикой баз данных - обсуждаем в разделе "Базы данных: общие вопросы". Убедительная просьба - соблюдать "Правила форума" и не пренебрегать "Правильным оформлением своих тем". Прежде, чем создавать тему, имеет смысл заглянуть в раздел "Базы данных: FAQ", возможно там уже есть ответ.

Модераторы: Akina
  
> ак подключить MS Access?
    Нужно вызвать базу данных и передать из нее параметры в программу.Работаю с MS Access2000.
      Для работы с базами существует много пришлепок : DAO, ADO, и т.д.  Выбирай, что тебе "ближе" - и вперед!
        Я делал вот так:
        //DAO SDK
        #include <dbdao.h>
        #include <dbdaoerr.h>

        CdbDBEngine      dbEngine;
        CdbWorkspace      wrkSpace;
        CdbDatabase      dtbBase;
        CdbRecordset      rstRecord;

        wrkSpace = dbEngine.CreateWorkspace("Main","Admin","");
        dtbBase = wrkSpace.CreateDatabase(_T("D:\\XXX2.mdb"),dbLangCyrillic);

        dtbBase.Execute("CREATE TABLE Samples (ID Counter,UCH TEXT(20),Field2 TEXT(20))");
        CString m_buffer1,m_buffer2,strExecute;
             m_buffer1 = "9";
             m_buffer2 = "Sampl";
             strExecute = "INSERT INTO Samples (UCH,Field2) VALUES ('" + m_buffer1 + "','" + m_buffer2 + "')";
        dtbBase.Execute(strExecute);

        CString rstWind;

             rstRecord=dtbBase.OpenRecordset("Samples",dbOpenDynaset);
             if(rstRecord.GetRecordCount()>0)
             {      
                   rstRecord.MoveLast();
                   rstRecord.MoveFirst();
                   for(int i=1;rstRecord.GetRecordCount()>=i;i++)
                   {
                         VARIANT v=rstRecord["Field2"].GetValue();
                         m_Edit.GetWindowText(rstWind);
                         rstWind=rstWind + (CString)v.pbVal + "\r\n";
                         m_Edit.SetWindowText(rstWind);
                         rstRecord.MoveNext();
                   }
             }
          Не забудь подключить в свойствах проекта в закладке Link библиотеку ddao35.lib
            m_Edit - Это объект какого класса?
              Цитата Uncle_Bob, 13.08.03, 11:29:56
              Для работы с базами существует много пришлепок : DAO, ADO, и т.д.  Выбирай, что тебе "ближе" - и вперед!

              DAO уже давным давно не поддерживается Майкрософт. Так что, ADO - наш выбор.
                Цитата maximov, 14.08.03, 02:16:30
                m_Edit - Это объект какого класса?

                CEdit, наверное. Трудно предположить что-нибудь другое.
                  Нужно по средствам DAO открыть Access. Работаю с Visial C++ 6.Написал код, но выпадает сообщение об ошибке (неузнает базу).Помогите,в чем ошибка. Вот код

                  #include <afxdao.h>

                  void CDatabaseDlg::OnOK()
                  {
                       DAODBEngine* pDBEngine;
                       CDaoDatabase *db;      
                       AfxDaoInit();
                       pDBEngine = AfxDaoGetEngine();
                       ASSERT( pDBEngine != NULL );
                       db=new CDaoDatabase();
                       db->Open("c:\\db2.mdb");
                       db->Close();
                     delete db;
                       delete pDBEngine;
                  }
                    Если тебя устроит DAO SDK то попробуй вот так, хотя говорят Microsoft его уже не поддерживает.
                    А лучше по вопросам баз смотри в разделе по базам
                    //
                    #include <dbdao.h>
                    #include <dbdaoerr.h>

                    CdbDBEngine      dbEngine;
                    CdbWorkspace      wrkSpace;
                    CdbDatabase      dtbBase;
                    CdbRecordset      rstRecord;

                    wrkSpace = dbEngine.CreateWorkspace("Main","Admin","");
                    dtbBase = wrkSpace.CreateDatabase(_T("D:\\XXX2.mdb"),dbLangCyrillic);

                    dtbBase.Execute("CREATE TABLE Samples (ID Counter,UCH TEXT(20),Field2 TEXT(20))");
                    CString m_buffer1,m_buffer2,strExecute;
                         m_buffer1 = "9";
                         m_buffer2 = "Sampl";
                         strExecute = "INSERT INTO Samples (UCH,Field2) VALUES ('" + m_buffer1 + "','" + m_buffer2 + "')";
                    dtbBase.Execute(strExecute);

                    CString rstWind;

                         rstRecord=dtbBase.OpenRecordset("Samples",dbOpenDynaset);
                         if(rstRecord.GetRecordCount()>0)
                         {      
                               rstRecord.MoveLast();
                               rstRecord.MoveFirst();
                               for(int i=1;rstRecord.GetRecordCount()>=i;i++)
                               {
                                     VARIANT v=rstRecord["Field2"].GetValue();
                                     m_Edit.GetWindowText(rstWind);
                                     rstWind=rstWind + (CString)v.pbVal + "\r\n";
                                     m_Edit.SetWindowText(rstWind);
                                     rstRecord.MoveNext();
                               }
                         }

                    Не забудь подключить в свойствах проекта в закладке Link библиотеку ddao35.lib
                    m_Edit - Это окошко.
                    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0282 ]   [ 14 queries used ]   [ Generated: 17.05.24, 08:35 GMT ]