InfoPath Performance Problems

M

Makor

We have an InfoPath form (SP1) that has several views and a custom task pane.
It is based on a database connection that consists of 15 tables. There are
three other data sources each of which consist of one table.

The issue is that it takes a considerable amount of time to load the form
(we assume that this is because InfoPath is retrieving all the data from the
db before processing it) . We are looking for a way to limit the data the
query for the main connection retrieves by using a WHERE clause. I have
found code on the internet that allows you to requery a data connection using
where clauses, but this only works after the form has been loaded. We need
to limit it before the query is run when loading the form.

If we could limit the data being retrieved to only those records that meet a
specific criteria before the form query is run, it may improve performance.
We need to be able to limit it dynamically, however. It won't be the same
limitation criteria each time the form opens.
 
F

Franck Dauché

Hi,

Did you try to use Web Services to connect to your DB? That would be ideal.
Now, when your create a form from a data connection or if you add a
secondary data source, you can Edit the SQL statement to start with. Why
don't you use that to return almost no data On Load. Next, try to use the
OnContextChange (which fires after your OnLoad) to requery using a new Where
clause.

Regards,

Franck Dauché
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top