Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работать с запросами и CDaoQueryDef? Не работает запрос с CDaoQueryDef 
:(
    Опции темы
Edik
Дата 27.8.2007, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

Репутация: -1
Всего: 1



Вот у меня на диалоге CFormView есть два лист бокса. Один с фамилиями с одной таблицы базы, второй по этим фамилиям из другой таблицы базы выводит года, если во второй таблице есть фамилия из первой. Когда выполняю программу- переход по первому списку мышкой, выдает сообщение что "Can`t execute a select query." Как исправить программу. SQL сервер на моей машине есть. Вот две функции. Первая по нажатию на кнопку, вторая при перемещении по первому лист боксу.

Код

void CMyBaseNewView::OnOpen() 
{
    // TODO: Add your control notification handler code here
    AfxDaoInit();
    CDaoWorkspace cw;
    CDaoDatabase* cd;
    cd = new CDaoDatabase(&cw);
    

    cw.Open();
    if (cw.IsOpen())
    {
        
            cd->Open("C:\\db1.mdb");
            if (cd->IsOpen()) 
            {
    CDaoTableDef cf(cd);
    CDaoRecordset cr;
    cf.Open("Òàáëèöà1");
        if (cf.IsOpen())
            {
            cr.Open(&cf);
            while (!cr.IsEOF())
            {
                char buf[256];
                COleVariant val;
                cr.GetFieldValue("name",val); 
                sprintf(buf,"%s",val.bstrVal);
                m_ListBox.AddString(buf);
                cr.MoveNext(); 
            }
            }
        else AfxMessageBox("Error Open Table");
    cr.Close(); 
    cf.Close();
            
            }
    }
}


Код

void CMyBaseNewView::OnSelchangeList1() 
{
    // TODO: Add your control notification handler code here
    CString s;
    char SQLbuff[256];
    m_ListBox.GetText(m_ListBox.GetCurSel(),s); 
    for (int x=0;x<(m_ListBoxExt.GetCount()+1);x++) m_ListBoxExt.DeleteString(x);
    
    AfxDaoInit();
    CDaoWorkspace cw;
    CDaoDatabase* cd;
    cd = new CDaoDatabase(&cw);
    cw.Open();
    cd->Open("C:\\db1.mdb");
    CDaoQueryDef cf(cd);
    CDaoRecordset cr;
    sprintf(SQLbuff,"SELECT * FROM Òàáëèöà2 WHERE name='s'");
    cf.Create(NULL, SQLbuff);
    cf.Execute();
    cr.Open(&cf); 
     if (cr.IsOpen())
     {
         while (!cr.IsEOF())
            {
                char buf[256];
                COleVariant val;
                cr.GetFieldValue("year",val); 
                sprintf(buf,"%s",val.bstrVal);
                m_ListBoxExt.AddString(buf);
                cr.MoveNext();
         }    
     }
    
    cr.Close(); 
            cf.Close(); 

}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1356 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.