DB components - Vendor stopped the product

Hi,

Again a question, I guess this will be the last time I will bug this forum for a while :-)

In our Delphi 7 application, we used FIBPlus components throughout the whole application to connect to our firebird database. Now the vendor Devrace is death and it's a nightmare to replace the components. I've found somewhere a unofficial download for XE5, but of course this is just temporary. I have to replace all of the components and they are really everywhere. So it's a typical maintenance nightmare. 

So I'm wondering what is the best practice to avoid another such scenario in the future? Is it better to create a wrapper class, let's say a TComponent class with the query component hidden inside, like a black box ? And expose a "Dataset" property ? This way it's possible to just change the implementation of the dataset inside without the outside world knowing what component is exactly used. Or are there better ideas ?

Thanks a lot,
Best regards,

Nico
0
Nico
8/3/2015 7:48:47 PM
embarcadero.delphi.general 4258 articles. 0 followers. Follow

3 Replies
404 Views

Similar Articles

[PageSpeed] 27

Nico Callewaert wrote:

> Hi,
> 
> Again a question, I guess this will be the last time I will bug this
> forum for a while :-)
> 
> In our Delphi 7 application, we used FIBPlus components throughout
> the whole application to connect to our firebird database. Now the
> vendor Devrace is death and it's a nightmare to replace the
> components. I've found somewhere a unofficial download for XE5, but
> of course this is just temporary. I have to replace all of the
> components and they are really everywhere. So it's a typical
> maintenance nightmare.
> 
> So I'm wondering what is the best practice to avoid another such
> scenario in the future? Is it better to create a wrapper class, let's
> say a TComponent class with the query component hidden inside, like a
> black box ? And expose a "Dataset" property ? This way it's possible
> to just change the implementation of the dataset inside without the
> outside world knowing what component is exactly used. Or are there
> better ideas ?

Most 3rd-party data access components descend from the base TDataset
and TQuery components, so you already have a generic "wrapper" class.
The main problem is the design-time behaviour. You can reduce the
problem by not dropping dataset and query components on each form that
is using them, instead use a central datamodule to hold the data access
components. The forms only have TDatasources wired to the data-aware
components, to which you attach the appropriate dataset from the
datamodule at run-time, in the form constructor.

But this way of working looses the ability to see live data at
design-time, and it still will add the vendor specific units to each
form's uses clause, since the datamodule contains the vendor components
in its published section.
A way to regain the design-time support would be to use a kind of
internal client server design. The datamodule exposes only
TClientDatasets to the forms, to which it internally connects the
vendor specific datasets.

The only way to avoid adding the vendor units to each form's uses
clause is to not drop the components on the datamodule at design-time
either, but to create and configure them in code and type the exported
fields or properties as the generic TDataset and TQuery instead of as
the vendor components. This way you can collect the vendor-dependent
parts in one place and keep all the vendor specific stuff inside the
data modules implementation section, but you loose practically all
advantages of the design-time support. But those are overrated anyway,
IMO <g>.

If you go this way you have already made one important step into the
direction of a proper separation of data access and data display
layers. which the classical RAD design tends to mix up hopelessly. The
next step is to bury all the data access inside an object persistence
manager, forget about datasets, and work with lists of objects instead.
But that requires a completely different design for the application and
is usually impractical to retrofit to an existing RAD application.



-- 
Peter Below (TeamB)
0
Peter
8/4/2015 7:06:46 AM
Please check www.devart.com

I think their components have specific wizards that can convert from 
FIBPlus to their components.

-Rael
0
Rael
8/4/2015 4:35:51 PM
Hi,

Thanks Peter for the reply. I followed your advice of not dropping componets directly on the datamodules or forms anymore. That way, the vendor units are removed from the source files. ClientDatasets are way to slow for large datasets but seem a nice way to be database independent.

@Rael. Yes I'm using now the DevArt components, but just scary to use the wizard to transform your whole application at once :-)

Thanks and best regards !
Nico
0
Nico
8/10/2015 8:20:44 AM
Reply:

Similar Artilces:

.net component to Delphi component ?
Hello, Is there a way to use .net component inside Delphi ? Thanks On Tue, 18 Nov 2008 13:16:37 -0800, isaac sam wrote: > Is there a way to use .net component inside Delphi ? http://www.managed-vcl.com/ has some libraries for this. -- Marc Rohloff [TeamB] marc -at- marc rohloff -dot- com Marc Rohloff wrote: > On Tue, 18 Nov 2008 13:16:37 -0800, isaac sam wrote: > >> Is there a way to use .net component inside Delphi ? > > http://www.managed-vcl.com/ has some libraries for this. > I was hoping for a free tool but thanks On Tue, 18 Nov 2008...

Only one component of a product has be stopped from editing bugs.
We have a common e-mail domain and all the users can edit or log new bugs by default. We have three products with few components in it, now we have to stop people from logging new bugs or editing old one for a particular component of a product. Example: Product p1 has three components c1,c2 and c3. Now we have to stop the entire user from logging new bugs or editing the old bugs in product p1 component c2 (Only for p1->c2). But at the same time all the user must be able to log or edit bugs for other components c1 and c3 in product p1. We don't know how to group in this si...

Delphi component for computing general linear mixed models ??
Are there any statistical software available for Delphi for computing General linear mixed models so that having a data sampler and analyser also may run statistics directly on group of humans observed pr minute basis that should be compared together ?? For you old-timers here is a hint as to what the subject is about: http://www.google.com/search?hl=en&q=%22General+linear+mixed+models%22 --JohnH Have you looked at http://www.dewresearch.com/ which has some useful code for that sort of thing? /Matthew Jones/ Alf Christophersen wrote: > Are there any statistical softw...

SEPA components for Delphi with Source Code (Delphi 5
Hi all, in the european union change next year the Bankingformat to the SEPA Format. All peoples and companies must change the bankingssoftware and the costumer data form acountnummers in the new IBAN and BIC numbers. See: http://www.arma-it.de/shop/artikelueber.php?wgruppeid=211&wgruppe_offen=211 Functions: - generate SEPA XML'S - Calc IBAN - BIC Database (DE,AT and CH) Questions: vertrieb@arma-it.de PS: Bankinssoftware for Develpoers (Germany only) http://www.arma-it.de/shop/artikelueber.php?wgruppeid=212&wgruppe_offen=212 El 26/10/13 21:38, A...

Model for Products/Components/Sub-component
This is a multi-part message in MIME format. ------=_NextPart_000_001E_01C69562.589D1120 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable version 2.20 I'm just investigating migrating our existing bugs tracking system to = bugzilla. It might be useful for us to be able to model our products = and components as follows: Products /|\ /|\ Versions Components =20 /|\ Sub-components Is this supported in a later version of bu...

Test Db as subset of big production DB
Hello, I need to create a test DB from a large production DB (over 2TB). I am looking for a way to get a random spread of records from the tables of production DB to use in test (less than 1TB). I am considering BCP, some sort of select into (two separate servers with access to/from). Trying to find the method with the least impact on production. Any ideas would be appreciated. Thanks, rick_806 On Aug 19, 8:01=A0pm, rick_806 wrote: > Hello, > > I need to create a test DB from a large production DB (over > 2TB). I am looking for a way to get a random spread of &g...

to create bugs in a component of the product and not in several components
I have two groups that can create bugs in a product that has several components. It is possible to be caused that a group can create bugs in a component of the product and not in several components? sepulveda187, On 5 Apr 2005 10:26:43 -0700, sepulveda187@yahoo.com <sepulveda187@yahoo.com> wrote: > I have two groups that can create bugs in a product that has several > components. It is possible to be caused that a group can create bugs > in a component of the product and not in several components? No :( At least not without heavy code modification. Regar...

stopping dbremote causes db server to stop
Am using SA 8.0.2 4339. On one server, stopping a dbremote service from sql central causes the engine to stop. Ideas anyone? TIA Sid Siegel How is the database engine started? Do you have a service dependency set up between the SQL Remote and Engine service? -- Reg Domaratzki, Sybase iAnywhere Solutions Sybase Certified Professional - Sybase ASA Developer Version 8 Please reply only to the newsgroup iAnywhere Developer Community : http://www.ianywhere.com/developer iAnywhere Documentation : http://www.ianywhere.com/developer/product_manuals ASA Patches and EBFs : h...

Delphi XE6 How to link FastReport components to FireDAC components?
Hi to all. I'm wondering on how to link FastReport componets to FireDAC components. A Delphi XE article "Creating Reports with FastReport (FireDAC)" tells about some misterious component called "TfrxComponents" that is used to do de job but I can't find it nowhere. FastReport demos uses ADOTables and ADOQuerys but no FDQueys neither FDTables. Is there any source code example for doing this? I'll appreciate any link than can help me to best understand my trouble. Regards, Hernando. Please, contact FastReports company regarding FireDAC / FastRepor...

Database Query and other components inside complex Delphi component
Hi! I am trying to develop Delphi DB component for displaying and editing customer data. Many tables (like, carts) in my database references customer using foreign key (like carts.fk_customer) and users want to see a lot of data about customer in diferent forms. So - I am planning to make the component (apparently - derived from TPanel) with the usual properties - DataSource, DataField (for FK_CUSTOMER) and this component should process the changes of its data field (usually fk_customer) by reading addional d ata from the query (component has DataSource property, so, this is possible to fi...

How can I use a Component of one Product in another Product?
I want to set up a new Product which shares a Component with another Product. Is there a way to do this? ...

Component toolbar in Delphi XE4 missing tabs and components
I installed my custom components package in the RAD Studio XE4 "personality" (both Delphi and C++Builder). It seemed to work fine and I could create a VCL test app for both Delphi and C++Builder with one of the components dropped on a form. But now I am investigating this further and I find that a lot of components are missing.. :-( I managed to get the components displayed as a tabbed ribbon across the top similar to in Delphi7 by going to View/Toolbars/Components. Then I could also drag it to a place on the screen where it could use the full width of the IDE. I then...

Custom field depending on Product:Component is being displayed through all Products
I just noticed that on my Bugzilla 4.1.1 installation custom field is set to appear only when Component is set to ProductA:Database but its appearing on all products that when selected same name component ProductC:Database ProductB:Database ..... is this is a bug?. or am I missing something?. Please help. Thanks. Arunas. posted https://bugzilla.mozilla.org/show_bug.cgi?id=667150 ...

Delphi XE6 How to link FastReport components to FireDAC components?
Hi to all. I'm wondering on how to link FastReport componets to FireDAC components. A Delphi XE article "Creating Reports with FastReport (FireDAC)" tells about some misterious component called "TfrxComponents" that is used to do de job but I can't find it nowhere. FastReport demos uses ADOTables and ADOQuerys but no FDQueys neither FDTables. Is there any source code example for doing this? I'll appreciate any link than can help me to best understand my trouble. Regards, Hernando. First of all, FastReports has a propensity to uninstall itself. S...

to create bugs in a component of the product and not in several components #2
I have two groups that can create bugs in a product that has several components. It is possible to be caused that a group can create bugs in a component of the product and not in several components? ...

Web resources about - DB components - Vendor stopped the product - embarcadero.delphi.general

Component - Wikipedia, the free encyclopedia
Text is available under the Creative Commons Attribution-ShareAlike License ;additional terms may apply. By using this site, you agree to the ...

AirAsia disaster: Indonesia cites faulty component, crew response in crash
Pilots appear to have reset the computer system's circuit breaker, leading to a series of failures that caused them to lose control of the plane ...

Teardown of iPad Pro reveals revamped component layout
... Apple device teardown on the iPad Pro on Wednesday, revealing a reworked internal design dominated by massive batteries and bespoke audio components. ...

Japan follows US lead in banning certain Takata components
Filed under: Government/Legal , Safety , Japan Like the US, Japan will ban certain Takata's airbag inflators from vehicles in development, and ...

Lumentum, Fabrinet: Component Makers at Start of 5-Year Boom, Says Needham
Needham & Co .’s Alex Henderson today advises fiber optics enthusiasts to look to component makers , such as Lumentum ( LITE ), in 2016, more ...

Samsung reportedly lost key iPhone 7 component business
... for Samsung , which is ironic considering the two companies are fierce rivals in the mobile business. The Korean giant produces various components ...

Solar Power Is Booming and Its Biggest Component Is Dirt Cheap
Prices for polysilicon, the main ingredient in solar cells, have dropped to a record low amid a supply glut that won’t end soon.

Crew, faulty component caused AirAsia crash
Indonesian investigators said crew action and a faulty component caused the AirAsia jet crash in the Java Sea last year, killing 162 passengers. ...

IDG Contributor Network: Four critical patches for November Patch Tuesday update core Windows and Office ...
Microsoft's November Patch Tuesday brings us four critical updates and eight important patches that attempt to resolve 54 reported vulnerabilities ...

Immigration Law Enforcement: A Vital Component Of National Security And Counterterrorism
While the administration claims that these refugees are being vetted, there is no way to actually screen these people

Resources last updated: 1/4/2016 3:00:20 AM