{"id":2298,"date":"2014-09-05T21:27:45","date_gmt":"2014-09-05T09:27:45","guid":{"rendered":"https:\/\/www.deltics.co.nz\/blog\/?p=2298"},"modified":"2014-09-05T21:27:45","modified_gmt":"2014-09-05T09:27:45","slug":"the-bde-is-finally-properly-almost-dead","status":"publish","type":"post","link":"https:\/\/www.deltics.co.nz\/blog\/posts\/2298\/","title":{"rendered":"The BDE is Finally, Properly (Almost) Dead"},"content":{"rendered":"<span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">[Estimated Reading Time: <\/span> <span class=\"rt-time\">2<\/span> <span class=\"rt-label rt-postfix\">minutes]<\/span><\/span><p>As of the XE7 release of Delphi\/RAD Studio, the long deprecated BDE is finally dead.  And almost properly this time.<\/p>\n<p><!--more--><\/p>\n<p>From the &#8220;<a href=\"http:\/\/docwiki.embarcadero.com\/RADStudio\/XE7\/en\/What%27s_New_in_Delphi_and_C%2B%2BBuilder_XE7\">What&#8217;s New in XE7<\/a>&#8221; page:<\/p>\n<blockquote><p>\nBDE, our oldest database solution, has reached the final stage of deprecation, and has been removed from RAD Studio. This includes the Bde.DBBdeWeb and Bde.DBTables units. Instead, use newer database technologies such as FireDAC. For migration, see Migrating BDE Applications to FireDAC.\n<\/p><\/blockquote>\n<p>I have to say that in my experience one of the hardest aspects of living with anything more than a trivial, data-centric Delphi application on an on-going basis is dealing with data module\/DFM driven implementations making use of data-aware controls and the attendant stacks of datasets, sources and providers which are the corner-stone of the BDE, DBExpress and now FireDAC.<\/p>\n<p>It&#8217;s nothing but a recipe for a constant nightmare world of hunting around in data-modules looking for reference to references to references to find the component whose properties need to be inspected or changed, toggling properties to enable\/disable design-time behaviours in order to be able to make necessary changes (and remembering to restore them before re-building your app for deployment) and frustration of an inadvertent or ill-considered property toggle wiping out carefully tuned design time components that need to be painstakingly recreated (or carefully restored from source control without undoing other changes you have made which you do wish to keep).<\/p>\n<p>Which is just one reason that I myself chose never to use the BDE or DBExpress or any other &#8220;data aware control&#8221; based approach, and have always developed directly against ADO instead (albeit through my own &#8220;wrapper&#8221; to make the COM API more palateable in the VCL).<\/p>\n<p>Quite apart from anything else, this has meant that as Borland\/Inprise\/CodeGear\/Embarcadero database access technologies have come and gone over the years, the impact on my code has been&#8230; nil.  Whilst the projects I have been involved with employing the BDE or DB Express and, now I suspect also, FireDAC, have faced a constant stream of issues relating to changes in the frameworks in different versions of Delphi, attendant driver issues, etc etc etc.<\/p>\n<p>Your mileage may vary.<\/p>\n<h2>Grumbles From The Grave<\/h2>\n<p>But from a supplementary note in the &#8220;What&#8217;s New&#8221; information, it seems that the BDE refuses still to go quietly into the good night after all, and lingers on in the twilight.<\/p>\n<blockquote><p>\nIf you need to continue using BDE, an external installer is available on the Registered Users site.  The BDE help remains in the XE7 help.\n<\/p><\/blockquote>\n<p>So in the unlikely event that you are still using the BDE in a current version of Delphi (or were thinking of migrating to XE7 and putting off BDE migration (again?) until some time in the further future) and\/or for some reason you still feel an urge to have the BDE available, even today, you can.<\/p>\n<p>Maybe with XE8 they will finally, finally put the BDE to BED ?<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">[Estimated Reading Time: <\/span> <span class=\"rt-time\">2<\/span> <span class=\"rt-label rt-postfix\">minutes]<\/span><\/span> As of the XE7 release of Delphi\/RAD Studio, the long deprecated BDE is finally dead. And almost properly this time.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":[]},"categories":[4],"tags":[284],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1TKYv-B4","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":2231,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/2231\/","url_meta":{"origin":2298,"position":0},"title":"Did you get the Memo ?","date":"01 Aug 2014","format":false,"excerpt":"People looking for a cheap Android tablet have a new option from a respected player: The Asus Pad 7 Although not exactly falling over themselves in excitement (it is an entry level, budget device after all), reviewers are finding a lot to like in this device. But Delphi developers hoping\u2026","rel":"","context":"In &quot;Android&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2936,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/2936\/","url_meta":{"origin":2298,"position":1},"title":"Azure DevOps &#8211; Iterative Insertion Fixed!","date":"19 Sep 2019","format":false,"excerpt":"I figured out the iterative insertion problem and my build pipeline is now TIGHT! Fixing it was super-easy in fact, barely an inconvenience.","rel":"","context":"In &quot;automation&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/pipelines-hero-code-1024x256.jpg?fit=1024%2C256&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":653,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/653\/","url_meta":{"origin":2298,"position":2},"title":"RAD Studio &#8220;XE&#8221;","date":"11 Aug 2010","format":false,"excerpt":"News is starting to come out about the upcoming release of Delphi, RAD Studio XE. So what can we expect? Well, based on what has been revealed so far, anyone thinking that the time that has passed since we were supposed to have received 64-bit support has been well spent\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":529,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/529\/","url_meta":{"origin":2298,"position":3},"title":"New Delphi Upgrade Policy &#8211; Get in QUICK!","date":"16 Sep 2009","format":false,"excerpt":"If you are using any version of Delphi that is more than 3 versions older than the current version (i.e. Delphi 2005 or older, as of today), the days of upgrading to the latest version will soon be over. I am seriously disheartened by this change in policy. Whether you\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2353,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/2353\/","url_meta":{"origin":2298,"position":4},"title":"Formatting Case Statements","date":"14 Aug 2015","format":false,"excerpt":"I'm afraid I have been guilty of editorialising on StackOverflow. It was sheer laziness really. A question prompted me to respond by sharing a personal preference and instead of \"context switching\" to my blog I posted an answer that even at the time I acknowledged was not in fact an\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":950,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/950\/","url_meta":{"origin":2298,"position":5},"title":"RAD Studio (XE3 Launch?) Event Announced in NZ","date":"02 Aug 2012","format":false,"excerpt":"Just a few moments ago I received an invitation to register for what I presume to be the launch event of RAD Studio XE3. 28th August is the date for your diary! I have to presume this is the XE3 launch because \"XE3\" isn't actually mentioned. For that matter, the\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/2298"}],"collection":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/comments?post=2298"}],"version-history":[{"count":2,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/2298\/revisions"}],"predecessor-version":[{"id":2301,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/2298\/revisions\/2301"}],"wp:attachment":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/media?parent=2298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/categories?post=2298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/tags?post=2298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}