DAO? А это ещё шо за чудо?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

DAO? А это ещё шо за чудо?

Сообщение Alex_2005 » 07.06.2005 (Вт) 9:55

Хотелось бы спросить может кто встречался с проблемой в DAO, когда при откыритии рекордсета RecordCount иногда равняется нулю? Просто хотелось спросить может кто знает в чём проблема? Вообще это легко можно сделать и так :
If NOT rs.EOF AND NOT rs.BOF Then
rs.MoveLast
rs.MoveFirst
End if
После этого всё как говорится становится на круги своя, но , как я уже говорил такие приколы происходят не всегда, во вторых постоянно вставлять
rs.MoveLast
rs.MoveFirst
тоже как то обламывает.
Guten Morgen! А если не Guten, то тогда это и не Morgen...

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 07.06.2005 (Вт) 10:05

В любом случае для подсчета количества записей необходимо делать перемещения вниз...
pDaoRec.MoveLast
mDataBase.DBCountG = pDaoRec.RecordCount
pDaoRec.MoveFirst
Действительно мне приходилось встречаться когда без перемещения в конец выборки можно было найти кол-во записей, но я так думаю это получалось в том случае если результат выборки представлялся ранее или была установлена закладка в конец записей...

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 07.06.2005 (Вт) 10:27

А если у тебя в таблице несколько миллиардов записей, как долго будет делаться rs.MoveLast и rs.MoveFirst. А если ещё и база в сети находиться. :D
Есть простой запрос
Select Count(*) From Table_Name
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 07.06.2005 (Вт) 10:54

Но проблемма не только в том, что он не выдоёт количество строк, а в том, что без этого он говорить, что мол пустой я ничего нет.... что тогда делать?
Guten Morgen! А если не Guten, то тогда это и не Morgen...

MeMBus
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 450
Зарегистрирован: 23.02.2005 (Ср) 7:03
Откуда: Из леса...

Сообщение MeMBus » 07.06.2005 (Вт) 11:08

Igor_123, полностью с тобой согласен...

Хотелось бы привести небольшой кусочек из DAO:
Note Using the MoveLast method to populate a newly opened Recordset negatively impacts performance. Unless it is necessary to have an accurate RecordCount as soon as you open a Recordset, it's better to wait until you populate the Recordset with other portions of code before checking the RecordCount property.
Бороться и искать, найти и перепрятать!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.06.2005 (Вт) 11:16

Какой тип открываемого рекордсета? Для dbOpenTable всегда возвращается правильное значение RecordCount, причем возвращается моментально.
Lasciate ogni speranza, voi ch'entrate.

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 07.06.2005 (Вт) 11:20

Ща попробуем! :wink:
Guten Morgen! А если не Guten, то тогда это и не Morgen...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 41

    TopList