It sounds like it may be time to look at threads. Set up a thread and open your recordset there or look at the C or C++ API for MySQL.
Pat... [EMAIL PROTECTED] CocoNet Corporation SW Florida's 1st ISP ----- Original Message ----- From: <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Saturday, October 19, 2002 11:12 AM Subject: Slow opening a recordset > Hi all > > I'm having a performance problem opening a recordset using a CRecordset class > (Visual C++). > If the table is empty (or contains few records) it takes a very little time to > open, but if the table contains many records (about 48000 in my tests) it takes > too much time (about 20 seconds) to open. > > The table is very simple: > > CREATE TABLE accounts ( > IDAccount int(11) NOT NULL auto_increment, > IDUser int(11) , > Date timestamp(14) , > Status varchar(50) , > IDItem int(11) , > Qty double , > Price double , > Visible int(11) , > PRIMARY KEY (IDAccount) > ) TYPE=MyISAM; > > Of course I tried to 'play' with DSN options and, as suggested in MYODBC faq, I > cheched off the options " Return Matching Rows ", " Allow BIG Results " and " > Enable Dynamic Cursor " without results. > I tried to set the check " Don't Cache Results... " & " Force use of > Forward-only Cursors " and it seemed to work but in that case I had 2 problems: > 1. I cannot update/modify records > 2. it takes the same long time (about 20 seconds) to CLOSE the recordset > > This is the environment: > MySQL 3.23.51 > MyODBC 3.51.04 (I tried with 3.51.03 & 2.50) > VisualC++ 5.0 (MFC4.2) > Windows 98se > PII 350 > > and this is a piece of code I use: > > CAccountsSet ASet; > COleDateTime dtStart, dtStop; > COleDateTimeSpan dts; > CString sBuffer; > > dtStart = COleDateTime::GetCurrentTime(); > ASet.Open(); > ASet.Close(); > dtStop = COleDateTime::GetCurrentTime(); > dts = dtStop - dtStart; > sBuffer.Format( _T("Accounts has been opened in %.0f sec"), > dts.GetTotalSeconds()); > MessageBox( sBuffer ); > > where CAccountsSet is derived from CRecordset (using ClassWizard) > > Does anybody know how I can solve this problem? > How can I improve the " opening " performance? > Does MySQL cache something for each records? > > TIA, > Massimo > > ----------------------------------------------------- > This mail sent through IMP: http://web.horde.org/imp/ > > --------------------------------------------------------------------- > Before posting, please check: > http://www.mysql.com/manual.php (the manual) > http://lists.mysql.com/ (the list archive) > > To request this thread, e-mail <[EMAIL PROTECTED]> > To unsubscribe, e-mail <[EMAIL PROTECTED]> > Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php > --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php