VB5, Informix And The Need For Speed!


Given that an Informix (7.1) Database is keyed and indexed
properly what data access method (Linked MS Access tables,
access jet, ODBC, RPC, others) will provide the quickest
return of data?

Currently I am converting an application from VB/MS Access
to VB/Informix.  I am using ODBCDirect to retrieve data and
for the most part I am not using bound controls.  An example
is retrieving a list of users (~2000 rows) to populate an
unbound combo box via a snapshot recordset.  I am not pleased with the time it takes to perform this process (~10-15 seconds for each and 3 reside on this form).  Or
is it a case where I need to use alternative pick lists?
In this case something other than a combo box?

Thanks for your assistance.

Slow Hand
Who is Participating?
nop08642Connect With a Mentor Commented:
Hi PhilCorInc,
I have another Idea that you can try to speed things up, wich is to use assincronous recordsets. Like this you be able to load the form, and only fill the combos when the selects are finished. Like this the time to the user seems top be slower.
Check my code in:

It uses GetRows, this can be even faster when using chunks of e.g. 30 rows.

I recommend that you use INFORMIX Data Director for VB5.

Also Check your INFORMIX Database tables indexes.

cuatog - OSPC

Never miss a deadline with monday.com

The revolutionary project management tool is here!   Plan visually with a single glance and make sure your projects get done.

for PhilCorInc

prior to INFORMIX Data Director for VB5, im using also ODBC to connect to INFORMIX Database and I encounter the same problem as you.

cuatog - OSPC Philippines

The fastest ways to Access remote DataBases, appart from proprietary drivers (I don't know which ones exist for Informix) are ODBC+RDO or ADO using an OLEDB Provider (I don't know if there's one allready for informix, but check that in www.microsoft.com/data).
There is also a big difference in performance whether you use client or server side cursors, and the type of cursors.
If you only want to collect data for a Combo box use Server Side, forward only Cursors). after that also use getrows as ameba has allready told you.

PhilCorIncAuthor Commented:
nop08642's solution of forward scrolling cursor & getrows decreased the time by 4-6 secs but I want to get the response time down into the 1-2 second range.  Unless I get and/or find a better method I am going to use nop08642's proposed answer.  I give nop08642's a B!
I would give A to anyone who can speed up my code.

Can you show your code? Maybe someone can speed it up further.
E.g. using chunks can be 10-30% faster then simple GetRow.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.