LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

ActiveX Treeview and ADO efficiency problem

I am using Database Connectivity Toolset (VI compatibility), and an
ActiveX TreeView control in LabView 6.1.
As soon as the TreeView is filled with data (a large amount), every
query will slow a bit (for example after a day the delay goes from 3
secs to 14 secs). It seems a sort of interaction beetwen the two
ActiveX (ADO and TreeView). When the TreeView is closed (stopped the
VI that uses TreeView) the query run fine, but even closing the
TreeView, it's not so efficent as the first time. So it seems that
efficiency decrease while using the TreeView, even after closing and
opening again the VI with the TreeView (not the VI with the query). If
one exit from LabView efficiency is again good.
The Database is Oracle but this is
not important.
Using the old SQL toolkit everything works fine.
Has anyone already had this kind of problem?
Thaks in advance
Beccarini
PS: Win2000, sp3, oracle9, LabView 6.1
0 Kudos
Message 1 of 4
(2,713 Views)
Hi,

This is definetly a memory leak. NI's TreeVIEW example is not a good one.

E.g. when you use "selected node" every MMI loop, each time it returns a new
value! Even if the selected node has not changed! This is how ActiveX works.

The Nodes property will return a list of different references to the same
objects each time is is called!
The Item property will return a different references to the same object each
time is is called!
The Parent property will return a different references to the same object
each time is is called!

Close Everything! Closing a reference does not mean that the object is
deleted, but that the *pointer to the copied information to use this object*
is removed. Well, don't close the reference to the container, but that is
the only ref that should not be closed.

Be aware on for loops. E.g. "Nodes" is a reference. Use "Item" and "Index"
to loop "Count" times, and in the for loop close the "Item". Wire the
"Nodes" after the for loop. But what if "Count" is zero? The for loop runs
zero time, and the output ref is zero. So, use a shift register, or rewire
so that the "Nodes" ref

Regards,

Wiebe.

"Beccarini" wrote in message
news:b8e80143.0212030343.73d36e16@posting.google.com...
> I am using Database Connectivity Toolset (VI compatibility), and an
> ActiveX TreeView control in LabView 6.1.
> As soon as the TreeView is filled with data (a large amount), every
> query will slow a bit (for example after a day the delay goes from 3
> secs to 14 secs). It seems a sort of interaction beetwen the two
> ActiveX (ADO and TreeView). When the TreeView is closed (stopped the
> VI that uses TreeView) the query run fine, but even closing the
> TreeView, it's not so efficent as the first time. So it seems that
> efficiency decrease while using the TreeView, even after closing and
> opening again the VI with the TreeView (not the VI with the query). If
> one exit from LabView efficiency is again good.
> The Database is Oracle but this is not important.
> Using the old SQL toolkit everything works fine.
> Has anyone already had this kind of problem?
> Thaks in advance
> Beccarini
> PS: Win2000, sp3, oracle9, LabView 6.1
Message 2 of 4
(2,713 Views)
Thanks a lot Wiebe,
I am going to try it and I am pretty sure the problem is what you
wrote below, because I didn't close any reference.
Thanks again,
Andrea

"Wiebe@AIR" wrote in message news:<3decc470$0$75596$e4fe514c@dreader3.news.xs4all.nl>...
> Hi,
>
> This is definetly a memory leak. NI's TreeVIEW example is not a good one.
>
> E.g. when you use "selected node" every MMI loop, each time it returns a new
> value! Even if the selected node has not changed! This is how ActiveX works.
>
> The Nodes property will return a list of different references to the same
> objects each time is is called!
> The Item property will return a different references to the same object each
> time is is called!
> The Parent property will return a different references to the same object
> each time is is called!
>
> Close Everything! Closing a reference does not mean that the object is
> deleted, but that the *pointer to the copied information to use this object*
> is removed. Well, don't close the reference to the container, but that is
> the only ref that should not be closed.
>
> Be aware on for loops. E.g. "Nodes" is a reference. Use "Item" and "Index"
> to loop "Count" times, and in the for loop close the "Item". Wire the
> "Nodes" after the for loop. But what if "Count" is zero? The for loop runs
> zero time, and the output ref is zero. So, use a shift register, or rewire
> so that the "Nodes" ref
>
> Regards,
>
> Wiebe.
>
> "Beccarini" wrote in message
> news:b8e80143.0212030343.73d36e16@posting.google.com...
> > I am using Database Connectivity Toolset (VI compatibility), and an
> > ActiveX TreeView control in LabView 6.1.
> > As soon as the TreeView is filled with data (a large amount), every
> > query will slow a bit (for example after a day the delay goes from 3
> > secs to 14 secs). It seems a sort of interaction beetwen the two
> > ActiveX (ADO and TreeView). When the TreeView is closed (stopped the
> > VI that uses TreeView) the query run fine, but even closing the
> > TreeView, it's not so efficent as the first time. So it seems that
> > efficiency decrease while using the TreeView, even after closing and
> > opening again the VI with the TreeView (not the VI with the query). If
> > one exit from LabView efficiency is again good.
> > The Database is Oracle but this is not important.
> > Using the old SQL toolkit everything works fine.
> > Has anyone already had this kind of problem?
> > Thaks in advance
> > Beccarini
> > PS: Win2000, sp3, oracle9, LabView 6.1
0 Kudos
Message 3 of 4
(2,713 Views)
Good luck!

Regards,

Wiebe.

"Beccarini" wrote in message
news:b8e80143.0212160828.25593d67@posting.google.com...
> Thanks a lot Wiebe,
> I am going to try it and I am pretty sure the problem is what you
> wrote below, because I didn't close any reference.
> Thanks again,
> Andrea
>
> "Wiebe@AIR" wrote in message
news:<3decc470$0$75596$e4fe514c@dreader3.news.xs4all.nl>...
> > Hi,
> >
> > This is definetly a memory leak. NI's TreeVIEW example is not a good
one.
> >
> > E.g. when you use "selected node" every MMI loop, each time it returns a
new
> > value! Even if the selected node has not changed! This is how ActiveX
works.
> >
> > The Nodes property will return a list of different references to the
same
> > objects each time is is called!
> > The Item property will return a different references to the same object
each
> > time is is called!
> > The Parent property will return a different references to the same
object
> > each time is is called!
> >
> > Close Everything! Closing a reference does not mean that the object is
> > deleted, but that the *pointer to the copied information to use this
object*
> > is removed. Well, don't close the reference to the container, but that
is
> > the only ref that should not be closed.
> >
> > Be aware on for loops. E.g. "Nodes" is a reference. Use "Item" and
"Index"
> > to loop "Count" times, and in the for loop close the "Item". Wire the
> > "Nodes" after the for loop. But what if "Count" is zero? The for loop
runs
> > zero time, and the output ref is zero. So, use a shift register, or
rewire
> > so that the "Nodes" ref
> >
> > Regards,
> >
> > Wiebe.
> >
> > "Beccarini" wrote in message
> > news:b8e80143.0212030343.73d36e16@posting.google.com...
> > > I am using Database Connectivity Toolset (VI compatibility), and an
> > > ActiveX TreeView control in LabView 6.1.
> > > As soon as the TreeView is filled with data (a large amount), every
> > > query will slow a bit (for example after a day the delay goes from 3
> > > secs to 14 secs). It seems a sort of interaction beetwen the two
> > > ActiveX (ADO and TreeView). When the TreeView is closed (stopped the
> > > VI that uses TreeView) the query run fine, but even closing the
> > > TreeView, it's not so efficent as the first time. So it seems that
> > > efficiency decrease while using the TreeView, even after closing and
> > > opening again the VI with the TreeView (not the VI with the query). If
> > > one exit from LabView efficiency is again good.
> > > The Database is Oracle but this is not important.
> > > Using the old SQL toolkit everything works fine.
> > > Has anyone already had this kind of problem?
> > > Thaks in advance
> > > Beccarini
> > > PS: Win2000, sp3, oracle9, LabView 6.1
0 Kudos
Message 4 of 4
(2,713 Views)