Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem u Visual c++ 2005 sa MoveFirst...

[es] :: C/C++ programiranje :: Problem u Visual c++ 2005 sa MoveFirst...

[ Pregleda: 1913 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

mladenvasic
Mladen Vasic
Doboj

Član broj: 50512
Poruke: 124
81.93.72.*



Profil

icon Problem u Visual c++ 2005 sa MoveFirst...10.04.2006. u 08:02 - pre 219 meseci
Pozdrav svima, imam jedan problemcic.
Instalirao sam Visual Studio 2005.
U MFC aplikaciji sa MFC ODBC Consumerom kreirao sam CRecordest.

Problem je sledeci:
CRec m_rs;
// CRec mi je kreirana klasa CRecordset-a
m_rs.Open();
long count;
while (!m_rs.IsEOF())
m_rs.MoveNext();

count = m_rs.GetRecordCount();

if (!m_rs.IsBOF())
m_rs.MoveFirst();


//OVAJ DIO SA m_rs.MoveFirst() MI NE RADI ???????
//NECE DA MI SE POZICIONIRA NA PRVI REKORD, NE RADI MI NI m_rs.MovePrev()
 
Odgovor na temu

Alex21
Zagreb

Član broj: 89590
Poruke: 24
82.193.194.*



Profil

icon Re: Problem u Visual c++ 2005 sa MoveFirst...10.04.2006. u 09:42 - pre 219 meseci
Zato što u prethodnom dijelu koda ti je recordset otišao otišao do kraja (točnije iza zadnjeg),
a ti s if(!m_rs.IsBOF()) testiraš uvijet da li se recordset nalazi prije prvog.
 
Odgovor na temu

mladenvasic
Mladen Vasic
Doboj

Član broj: 50512
Poruke: 124
*.teol.net.



Profil

icon Re: Problem u Visual c++ 2005 sa MoveFirst...10.04.2006. u 17:01 - pre 219 meseci
Isto mi se desava i bez provjere if (!m_rs.IsBOF())

stavim samo:
m_rs.MoveLast();
pa poslije toga:
m_rs.MoveFirst();
ili:
m_rs.MovePrev();

A sto se tice provjere "if(!m_rs.IsBOF())", zar ona ne znaci "ako je m_rs tj. pozicija trenutnog
rekorda razlicita od BOF", ILI GRIJESIM???

I jos nesto, ovaj mi primjer normalno radi u Visual C++ 6.0 i 7.0 ...

 
Odgovor na temu

Alex21
Zagreb

Član broj: 89590
Poruke: 24
82.193.194.*



Profil

icon Re: Problem u Visual c++ 2005 sa MoveFirst...11.04.2006. u 06:42 - pre 219 meseci
U pravu si. Moja greška.

Jedino "efikasno" što mi pada na pamet je to da pogledaš s kojim flagovima
otvaraš recordset, jer ukoliko je CRecordset::forwardOnly flag aktivan, tada niti ne možeš koristiti ništa drugo do MoveNext.


Pozdrav




[Ovu poruku je menjao Alex21 dana 11.04.2006. u 07:43 GMT+1]
 
Odgovor na temu

mladenvasic
Mladen Vasic
Doboj

Član broj: 50512
Poruke: 124
*.teol.net.



Profil

icon Re: Problem u Visual c++ 2005 sa MoveFirst...12.04.2006. u 17:57 - pre 219 meseci
Sto se tice flagova, nisam nista konkretno postavljao.
Otvaram samo sa m_rs.Open(), rekordset mi je tipa snapshot
I jos kad sam kod tipa rekordseta, po vasem iskustvu koji je bolje kristiti i u kojim prilikama,
snapshot ili dynaset.

Ne shvatam u cemu je problem ovo mi se nije desavalo u VS6.0 i VS7.0
Mogu to rijesiti sa m_rs.Requery() ali ne znam koliko je to dobro ako se radi sa nekoliko hiljada rekorda.

MOZE LI MI NEKO OBJASNITI KAKO JE NAJBOLJE KREIRATI REKORDSET ZA RAD SA VISE HILJADA REKRDA,
KOJE FLAGOVE KORISTITI, KAKO UCITAVATI REKORDE ITD. I DA NEMAM PROBLEMA SA MoveFirst();

Hvala svima ...
 
Odgovor na temu

Alex21
Zagreb

Član broj: 89590
Poruke: 24
82.193.194.*



Profil

icon Re: Problem u Visual c++ 2005 sa MoveFirst...13.04.2006. u 12:29 - pre 219 meseci
Malo sam provjerio dokumentaciju:
IsBOF() testira da li se nalaziš prije prvog recorda, a IsEOF() testira da li se nalaziš nakon zadnjeg recorda.

Ono što bi tebe moglo mučiti jest podrška za scrolanje. Socrolanje je implementirano preko Move funkcija koje tebe i zezaju.
Da li će postojati podrška za scrolanje ovisi o ODBC driveru kojeg koristi tvoja aplikacija i da li je ODBC Cursor Library učitan u memoriju ( za snapshot tipove).
Moguće je da se je nešto promijenilo kod novog VS-2005.

Učitavanje Cursor Library kontroliraš s CDatabase::Open( ..., ..., ..., BOOL bUseCursorLib = TRUE).
Za dynaset tip se ne smije koristiti ovaj flag.

Nisam u tome, tako da sam svoje savjete ispucao.

Pozdrav



 
Odgovor na temu

[es] :: C/C++ programiranje :: Problem u Visual c++ 2005 sa MoveFirst...

[ Pregleda: 1913 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.