powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
7 сообщений из 7, страница 1 из 1
DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
    #32971749
ГЛУПЫШ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
VISUAL C++  6 . 0  
ПОЧЕМУ  
rs.MoveFirst(); 
НЕ СТАВИТ УКАЗАТЕЛЬ НА ПЕРВУЮ ЗАПИСЬ 
После определения EOF? Первый раз проходит до EOF, 
Затем надо вновь поставить НА НАЧАЛО.

try
{
// Открываем базу через DSN
m_database.Open(_T("PersonalDepartment"),FALSE,FALSE);
}
catch(CDBException* e)
{
//обрабатываем исключительные ситуатции
 AfxMessageBox( 
             "Сообщение из Constructor of class Document\n" + e->m_strError, 
               MB_ICONEXCLAMATION );
      e->Delete();
    }

if(!pDoc->IsBaseOpen())  // ОТКРЫТИЕ б.д. 
{ 
AfxMessageBox(_T("База данных не была открыта!\n”
“Продолжение невозможно."));
return;
}

CRecordset rs(&(pDoc->m_database)); 

CString strQuery="SELECT TN, POCADA, KP, TS, PP"; 
		strQuery+=" FROM  IDENTITY"; 
		strQuery+=" where  IDENTITY.TN >= 1802"; 
		strQuery+=" Order  By IDENTITY.TN";

try
{	
rs.Open(dbOpenDynaset,strQuery, 0 ); 
}
catch(CDBException* e)
{
 AfxMessageBox( 
               e->m_strError, 
                MB_ICONEXCLAMATION );
        e->Delete();
	return;
}

// счётчик  количества прочитанных строк
int m_nQuantityRecords =  0 ; 

while( !rs.IsEOF( ) )
{
rs.MoveNext( ); // переход на следующую запись таблицы
m_nQuantityRecords++;
}
m_sWork2.Format("m_nQuantityRecords = %d",m_nQuantityRecords);
MessageBox(m_sWork2); 
rs.MoveFirst();  // ПОЧЕМУ НЕ СТАВИТ УКАЗАТЕЛЬ НА ПЕРВУЮ ЗАПИСЬ ?

СПАСИБО
...
Рейтинг: 0 / 0
DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
    #32972045
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не знаю, но я бы отдельным recordset посчитал бы кол-во записей в любом случае.
select count() from ....
Это очевидно эффективнее.
...
Рейтинг: 0 / 0
DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
    #32972121
vitvsh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ГЛУПЫШ
у тебя MoveFirst не ставит на первую запись или ты ХОЧЕШЬ, чтобы MoveNext сбрасывало начало?
...
Рейтинг: 0 / 0
DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
    #32972177
ZrenBy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ГЛУПЫШ
ПОЧЕМУ
rs.MoveFirst();
НЕ СТАВИТ УКАЗАТЕЛЬ НА ПЕРВУЮ ЗАПИСЬ


Потому, что, наверное, rs OpenForwardOnly
...
Рейтинг: 0 / 0
DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
    #32972410
ГЛУПЫШ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Автор:
Зачем это нужно?
отчёт создаю, для определения области
печати надо сначала знать сколько же строк
будет извлечено, от их количества
зависит область печати.
Такова ситуация.

Если стоит Forward Only ,
то как открыть базу с ВОЗМОЖНОСТЬЮ
ЕЁ ОБНОВЛЯТЬ ?

СПАСИБО
...
Рейтинг: 0 / 0
DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
    #32972973
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А rs->GetRecordCount() не подходит для определения количества строк в наборе записей?
...
Рейтинг: 0 / 0
DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
    #32972979
Alex_VC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_VCА rs->GetRecordCount() не подходит для определения количества строк в наборе записей?
Пардон, спутал с ADO...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / DATABASE – БАЗЫ ДАННЫХ, ПЕРЕМЕЩЕНИЕ.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]