Login ProductsSalesSupportDownloadsAbout |
Home » Technical Support » DBISAM Technical Support » Support Forums » DBISAM General » View Thread |
Messages 11 to 17 of 17 total |
Converting from Paradox: Performance problems |
Thu, Jun 29 2006 2:17 PM | Permanent Link |
Roy Lambert NLH Associates Team Elevate | Georg
I agree with you. My app started life with the BDE and opens all tables at the logon - it takes c40 secs. I'm rewriting it now and I'll be opening tables as needed but then leaving them open. What it might be worth doing is trying to identify points of first usage and then opening the tables there. Roy Lambert |
Thu, Jun 29 2006 3:11 PM | Permanent Link |
Tim Young [Elevate Software] Elevate Software, Inc. timyoung@elevatesoft.com | Matthew,
<< This is most interesting, as I've not heard of this before. The documentation on it is sparse (it being part of the base VCL classes and not yours). Could you tell me (us?) what it actually does please? Is it essentially a buffering system to speed up looping through the table? >> It has the same effect as the RemoteReadSize propety: http://www.elevatesoft.com/dbisam4d5_tdbisamdataset_remotereadsize.htm -- Tim Young Elevate Software www.elevatesoft.com |
Thu, Jun 29 2006 3:35 PM | Permanent Link |
"Ralf Mimoun" | Georg Ledermann wrote:
.... > All TTables are opened at login, all TTables are in a big datamodule > and dependent on each other (master/detail and lookup fields). It's > really a very bad design and the best solution would be: Write it new > from scratch - but this is another project I'm working on. The goal > for the old app is: Leave the BDE behind and convert the app to > DBISAM - but with *minimal* changes of the design. Then you should try DB Extensions from Context Software. Their TDBISAMTableExt component has a property called "AllowAutoOpen". From the online help: "If this property is set to True the table will be automatically opened before performing any read/write operations, like searching or accessing field values.Default value is False". Simply replace all TDBISAMTable components by TDBISAMTableExt (and the same for TDBISAMQuery and TDBISAMDatabase). DB Extensions is a gem, I can't work without anymore. And I only use maybe 20% of it: automatic updates using a schema, the Enum datasets and some more tricks. Ralf |
Fri, Jun 30 2006 4:39 AM | Permanent Link |
Georg Ledermann | "Ralf Mimoun" <nospam@rad-on.de> wrote:
> Then you should try DB Extensions from Context Software. Their > TDBISAMTableExt component has a property called > "AllowAutoOpen" [...] Thanks for this hint. I will give it a try... |
Fri, Jun 30 2006 5:41 AM | Permanent Link |
Many thanks.
/Matthew Jones/ | |
Tue, Jul 4 2006 6:09 AM | Permanent Link |
Chris Erdal | "Ralf Mimoun" <nospam@rad-on.de> wrote in
news:30583C92-586D-4B9A-A6AB-9A0566D96E57@news.elevatesoft.com: > Then you should try DB Extensions from Context Software. Their > TDBISAMTableExt component has a property called "AllowAutoOpen". From > the online help: "If this property is set to True the table will be > automatically opened before performing any read/write operations, like > searching or accessing field values.Default value is False". Thanks for pointing that out, Ralf. I hadn't noticed it. I've got a second app. lined up for converting from Paradox with dozens of TTables in a single Datamodule and all opened at startup. Should be very helpful. In the meantime I've been using a technique for tables/queries in Forms consisting of inheriting from a subclassed TForm which opens every table/query on creation unless its tag is 999. That way you can refactor little by little, adding open/close for occasional access along with 999 in the tag. May be useful to someone. -- Chris |
Fri, Jul 28 2006 11:01 PM | Permanent Link |
Georg
Try one or both of the following "tricks". I found them to dramatically improve the open time of my tDBISAMTables with DevExpress grids (in local mode - remote not tried). FYI, The BeginUpdate / EndUpdate block can interfere with DevExpress's ApplyBestFit! cxGrid1DBTableView1.BeginUpdate; //devExpress Grid's View try DBISAMTable1.Open; finally cxGrid1DBTableView1.EndUpdate; end; DBISAMTable1.DisableControls; try DBISAMTable1.Open; finally DBISAMTable1.EnableControls; end; OR combined... cxGrid1DBTableView1.BeginUpdate; //devExpress Grid's View DBISAMTable1.DisableControls; try DBISAMTable1.Open; finally DBISAMTable1.EnableControls; cxGrid1DBTableView1.EndUpdate; end; Remove HATES_SPAM from my email address to reply Chuck Hall "Chris Erdal" <chris@No-Spam-erdal.net> wrote in message news:Xns97F67AC6E144314torcatis@64.65.248.118... > "Ralf Mimoun" <nospam@rad-on.de> wrote in > news:30583C92-586D-4B9A-A6AB-9A0566D96E57@news.elevatesoft.com: > >> Then you should try DB Extensions from Context Software. Their >> TDBISAMTableExt component has a property called "AllowAutoOpen". From >> the online help: "If this property is set to True the table will be >> automatically opened before performing any read/write operations, like >> searching or accessing field values.Default value is False". > > Thanks for pointing that out, Ralf. I hadn't noticed it. I've got a second > app. lined up for converting from Paradox with dozens of TTables in a > single Datamodule and all opened at startup. Should be very helpful. > > In the meantime I've been using a technique for tables/queries in Forms > consisting of inheriting from a subclassed TForm which opens every > table/query on creation unless its tag is 999. That way you can refactor > little by little, adding open/close for occasional access along with 999 > in > the tag. > > May be useful to someone. > > -- > Chris |
« Previous Page | Page 2 of 2 | |
Jump to Page: 1 2 |
This web page was last updated on Sunday, May 19, 2024 at 08:46 AM | Privacy PolicySite Map © 2024 Elevate Software, Inc. All Rights Reserved Questions or comments ? E-mail us at info@elevatesoft.com |