CopyReaderToClientDataSet after XE2 – Where are you?

CopyReaderToClientDataSet copies the contents of a TDBXReader into a TClientDataSet instance. It returns the same TClientDataSet instance that was passed to this method.

CopyReaderToClientDataSet is part of the Data.DBXDBReaders.TDBXDataSetReader class until Delphi/C++Builder XE2, however in XE3 it changed a little bit, it became part of a new class called Data.DBXCDSReaders.TDBXClientDataSetReader.

I got several e-mails from my blog readers that downloaded some of my examples, when compiling with latest versions they got a error message saying the CopyReaderToClientDataSet method can’t be found.

The solution is simple, add Data.DBXCDSReaders.pas as part of the uses clause and replace all the TDBXDataSetReader by TDBXClientDataSetReader, which is the new home for CopyReaderToClientDataSet.

Enjoy!!!

Delphi XE5 Update 2 – many bug fixes on FireMonkey for iOS, Android and compiler

Another update available for Delphi XE5 and C++Builder XE5, the Update 2 is has lots of bug fixes covering several areas, specially on FireMonkey for Android, iOS, Windows and Mac.

The Update is available for registered users and you can find on the following links. Just a friendly remind that you need to Uninstall your current Delphi XE5 in order to install XE5 Update 2.

Below the complete list of bugs fixed on this Update.

 

Reference No

Summary

Component/s

[Indy] Access Virolation occues on OnValidatePeerCertificate for IPPeerCommon bug[HTTPS,SSL] 3rd Party

120473

[iOS] SOAP fails in iOS when using SSL (“IOHandler value is not valid.”) Blocker

119873

TCameraComponent causes memory leak in Win32 Blocker

115697

TDump command crashes on DLL’s Command Line Tools

112826

TDump.exe shows strange output Command Line Tools

100328

TDump crashes on the x64 shell32.dll Command Line Tools

110887

TDump fails on some ‘foreign’ .dlls Command Line Tools
Delphi XE5 cannot build OSX applications from the command line Compiler
[FM Mac OSX 10.9] Compile error XMLDocument using SDK 10.9 Compiler, Compiler\C++

120686

[Mavericks 10.9] C++Builder XE4 does not support OS X 10.9 Compiler, Compiler\C++, Compiler\C++\BCC
Throwing a exception in virtual member function returning an AnsiString causes an AV and an abend under certain circumstances, in 32-bit C++ application Compiler, Compiler\C++, Compiler\C++\BCC, Compiler\C++\BCC\Back End

120476

[iOS ARM][Android] E2581 Backend error: invalid linkage type for global declaration Compiler, Compiler\Delphi
[dcc(ios/a)arm] Backend Error compiling constructor for generic classes Compiler, Compiler\Delphi

118897

method overload resolution fails when passing @ parameter to overloaded methods mixing Pointer and specific pointer parameters. Compiler, Compiler\Delphi
ShowMessage/Message Alerts not working in iOS 7 Simulator Compiler, Compiler\Delphi
[dccaarm][dcciosarm] Implicit finally block doesn’t execute if the exception is not catch in except block. Compiler, Compiler\Delphi
Crash by declaration error when declaring class function in record type Compiler, Compiler\Delphi
Internal Error URW1154 calling TValue.From() of System.Rtti Compiler, Compiler\Delphi

72147

Invalid section table entries on empty sections Compiler, Compiler\Delphi

119197

subtraction of sets changes its params Compiler, Compiler\Delphi, Compiler\Delphi\CodeGen
Integer computation error upon mixing Byte and Integer Compiler, Compiler\Delphi, Compiler\Delphi\CodeGen
When Currency is used in a generic record type you get an internal compiler error G1239 IN Zephyr and G1232 in XE4 Compiler, Compiler\Delphi, Compiler\Delphi\Generics

118815

Generic method inlining (part 2) Compiler, Compiler\Delphi, Compiler\Delphi\Generics

118866

Cannot perform FillChar on Currency variables – E2197 Constant object cannot be passed as var parameter Compiler, Compiler\Delphi, Compiler\Delphi\Messages

93738

Internal Error URW1136 Compiler, Compiler\Delphi, Compiler\Delphi\Messages

118929

Totally broken package compiler for an iOS device Compiler, Compiler\Delphi, Compiler\Delphi\Packages/Libs

118523

[dcc32] Command-line build fails for user account with non-ASCII characters Compiler, Compiler\Delphi, IDE\Build System
DataSnap : Memory leaks caused by TFDJSONDataSetsBase.FOwnsDataSet Data, Data\DataSnap
DataSnap: HTTP request may be broken when sending Delta Data, Data\DataSnap
[C++][DataSnap]Exception raised when trying to execute server method through proxy on OS X 10.9 Data, Data\DataSnap

116417

[ISAPI] DataSnap Server as an ISAPI DLL get a 48KB limitation when receiving POST data Data, Data\DataSnap
[OS X][DataSnap][FireDAC] Unable to find static library: DataSnapFireDAC.a Data, Data\DataSnap, Data\FireDAC
[DataSnap] TX509CertificateIndy.Verify is not operation as specification. Data, Data\DBX
Unable to load libsqlib.dylib Data, Data\DBX
DBX memory leak when running queries on NEXTGEN platforms Data, Data\DBX
FireDAC FDConnection does not autocommit Data, Data\FireDAC
FDExplorer resizing causes lost display of description column message Data, Data\FireDAC
Building a Mobile Application that contains a TFDPhysIBDriverLink component raises an error Data, Data\FireDAC
[SQLite] It can’t encipher by the specified encrypt parameter, so it can’t setup except aes-256 Data, Data\FireDAC
If XML containing MBCS is saved by SaveToStream, It is not copied correctly.. Data, Data\FireDAC
If XML containing MBCS is copied to TFDMemtable, Exception class EDOMParseError occurs Data, Data\FireDAC
FireDAC memory leak when running queries on NEXTGEN platforms Data, Data\FireDAC

119995

“Not editing” error reported with LiveBindings when calling ApplyUpdates on TAdapterBindSource Data, Data\LiveBindings

118633

[iOS device/Android] With TSoapConnection, TClientDataset.ApplyUpdates raises “Exception in safecall method” in iOS device and Android Data, Data\Midas

118633

[iOS device/Android] gdb reports wrong file after step into Debugger
Debugging not working with a FireMonkey Mobile app on Nexus 7 2013 Debugger
[Delphi] Access Violation when Inspecting or Adding a Watch with a function where an array is passed in as a var or const Debugger
Function call evaluation on C++ OSX apps is broken when using Mavericks Debugger, Debugger\Evaluator

120506

[OSX 10.9] Mavericks Modules Debug Window doesn’t show framework dylibs anymore Debugger, Debugger\Views

119777

ReqMulti.pas has been removed from the product File Delivery, Internet
[FMX/Android] TEdit causes SIGSEG if SetFocus method is called inside Forms’s OnCreate event. FireMonkey
[iOS] Sharing popup size is calculated wrong FireMonkey

120259

Bugs in creating forms with TForm.CreateNew() – i.e. without a designer. FireMonkey
Orientation switch breaks app or bars user after device activated again (after sleep) FireMonkey

119176

[iOS7 iPad Simulator] App crash in iOS 7 iPad Simulator FireMonkey

118770

Bad text rendering on Android FireMonkey
Poor application performance on Nexus 10 FireMonkey
[iOS] TMemo – sometimes when using LongTap to bring up the context menu on iOS, the cursor and context menu is moved up with one line FireMonkey

118554

[iOS Device] iOS App crashes on iOS 6.1.3 (iPad) when Showing Forms – but not on Simulator FireMonkey
TabletMasterDetail app takes over 10 seconds to load on Nexus 10 FireMonkey

120566

When adding a TBindNavigator, an Access Violation occurs FireMonkey

118799

2D Empty app does not start on Samsung Galaxy Tab 3 FireMonkey, FireMonkey\3D Components

120517

TMemo.ScrollLayout could cause access violation FireMonkey, FireMonkey\Components

120827

[iOS7] With TMemo, unintentional letter appears when entering with Japanese keyboard. FireMonkey, FireMonkey\Components
Date Picker mobile code snippet TCalendarEdit – decrements the date when you don’t change the date in the picker FireMonkey, FireMonkey\Components
Using German ß (00DF; LATIN SMALL LETTER SHARP S) in TListBoxGroupHeader raises EArgumentOutOfRangeException FireMonkey, FireMonkey\Components
On HTC one X(4.1.1) cannot be typed a set of numbers if the keyboard has the vktPhonePad type FireMonkey, FireMonkey\Components

120515

TMemo.GoToTextEnd crashes at program startup and doesn’t move the horizontal scrollbar FireMonkey, FireMonkey\Components

120517

TMemo.ScrollLayout could cause access violation FireMonkey, FireMonkey\Components

119442

Mobile Code Snippets – Web Browser needs to be updated. Web Browser Top Margin should be 0 FireMonkey, FireMonkey\Components
Problem changing the KeyboardType among different TEdit FireMonkey, FireMonkey\Components

120136

[Android 4.3] TListView component scrolling performance is very slow (Samsung GALAXY Note 3) FireMonkey, FireMonkey\Components
Listview scrolling performance slow on Samsung Galaxy Note 3 FireMonkey, FireMonkey\Components
Custom TabIcon support missing for iOS 7 FireMonkey, FireMonkey\Components

119442

[iOS7 device] Web Browser positioned incorrectly in iOS7 FireMonkey, FireMonkey\Components

120007

[Android, iOS] Viewport3D does not fully display on a mobile form with TabControl FireMonkey, FireMonkey\Components

118859

[iOS] TMedia Volume cannot be changed in iOS FireMonkey, FireMonkey\Components
TWebBrowser misaligned when Align set to alClient FireMonkey, FireMonkey\Components

119891

[Android] Edit.SetFocus in Form.OnShow() will cause app crash when entering text FireMonkey, FireMonkey\Components
TabControl does not fit the screen completely widthwise when it has exactly 6 TabItems FireMonkey, FireMonkey\Components

119821

[Android] Performance of Delphi Apps on Google Nexus 10(Android 4.3) FireMonkey, FireMonkey\Components

119539

[iOS] TMediaplayer pause (stop) on iOS is rewinding FireMonkey, FireMonkey\Components

119447

[Android] Location demo on some Android devices not working FireMonkey, FireMonkey\Components
Korean input problem with Tmemo on OS X FireMonkey, FireMonkey\Components

119192

[Android] Uppercase national characters are drawn bad on Android FireMonkey, FireMonkey\Components

119162

[Android] password is shown on virtual keyboard FireMonkey, FireMonkey\Components
TMemo very slow on Nexus 10 FireMonkey, FireMonkey\Components

119703

Stretched property of TText control does not work properly when TText is a child component for some other component, not a form FireMonkey, FireMonkey\Components

118859

[iOS] TMedia Volume cannot be changed in iOS FireMonkey, FireMonkey\Components

120023

[Android] TGestureManager crash on app close. FireMonkey, FireMonkey\Runtime
Throwing an exception and not catching it during any FMX component in an event have unexpected result FireMonkey, FireMonkey\Runtime

119450

[iOS7] vertical touch co-ordinate is several pixels lower than the actual touch position. FireMonkey, FireMonkey\Runtime

119444

[iOS7 device] Keyboard does not completely disappear when hidden in iOS7 FireMonkey, FireMonkey\Runtime
[NEXUS 10] SpeedButton – it takes too long until OnClick event is triggered FireMonkey, FireMonkey\Runtime

118910

Keyboard shift/ctrl+arrow keys not working for FireMonkey objects on a form FireMonkey, IDE, IDE\FireMonkey Designer
iOS 7 apps showing iOS 6 styled native controls (pickers/keyboard) on iOS Simulator FireMonkey, PAServer
FM C++ app with Mac OS X 10.9 SDK fails to compile IDE, IDE\Build System, IDE\Deployment, PAServer

120029

[Android] lower case of file path in deployedassets.txt IDE, IDE\Deployment
When starting RAD Studio XE5 (with android support installed) as the C++Builder personality it REMOVES the android SDK setting in the registry. IDE, IDE\General

118105

Android apps deployed to emulator will not function, display black screen IDE, Install

118830

Error detected (LME288), [ilink32 Error] Error: Unable to perform link Linker

116888

Strange linker crash Linker
Throw exception crash C++ Win64 app RTL, RTL\C++, RTL\C++\Exception Handling
Wrong behavior when executing code from a catch section on Mac OS RTL, RTL\C++, RTL\C++\Exception Handling
ARC Using Unsafe objects in records are not working properly RTL, RTL\Delphi
FM application crash at init in Android devices when the language is set to Norwegian (Norsk Bokmål) RTL, RTL\Delphi

118726

Application crash with raising exception class Segmentation fault (11) RTL, RTL\Delphi, RTL\Delphi\Other
SOAP: Double precision return values not correct for Android RTL, RTL\Delphi, SOAP

119872

SOAP AsDateTime implementation is wrong SOAP

119741

[Android] Segmentation fault consuming web service SOAP

76053

C++ templates are translated as “Vorlagen” Translation

Delphi XE5 Update 1 – fixes for serious issues on ClientDataSet

Categories:C++Builder, DelphiTags: , ,

The Update 1 for Delphi XE5 and C++Builder XE5 has been released.

This update touch some areas like FireDAC, FireMonkey, Debugger, IDE and mainly ClientDataSet. Below a list of fixes related to ClientDataSet, which I consider critical errors and a blocker for anyone that was looking to migrate to XE5.

Quality Central Reference No. Summary Component/s
118951 Numeric Filters on a TClientDataSet do not filter Data, Data\Midas
119028 Linker error: TXMLTransformProvider libraries missing Data, Data\Midas
119164 Attempting to use MIDAS (eg TClientDataset) in the simulator on iOS7 fails Data, Data\Midas
119432 TClientDataSet.Locate method fails to work properly with XE5 midas.dll Data, Data\Midas
  Application stops when driver is missing Data, Data\FireDAC
  [Phys]-300 on connecting using Oracle / MSSQL / etc drivers using Arch SKU at design-time Data, Data\FireDAC

 

For a complete list of the specific problems fixed in this update, click here.

Download Links

You can download the update 1 installer or a new fresh ISO that includes Update 1:

That’s is, have fun.

Delphi Developers’ plan for mobile, desktop and n-tier development

Early this year I did a developer survey through my blog. I got over 1500 answers and I safely can say 87% use Delphi as their primarily development tools, the other 13% split between C#, C/C++, PHP and other languages.

Mobile Development

On the mobile development arena I asked about their company plans for mobile development in 2013, and the results are interesting:

  • On Android development, 45% will develop apps for Android, 16% maybe will do some development and 5% don’t have any plan in 2013.
  • 28% will develop apps for iOS, 24% maybe will do some development, which we can consider pretty high, and 11% don’t have any plan for iOS in 2013.
  • Windows Phone is not in a good position; only 13% will do development for Windows Phone. Looking for the Microsoft Tablet (Surface), this one is way behind.
  • BlackBerry is not the favorite platform and has only 3% of the developers considering to develop, 11% not sure yet, and 40% will not develop at all.

Survey Mobile  2013

Android is the first choice, most of Delphi Developers do business application and I see a natural choice on Android, the number of devices out there and the lower price point when compared with iPhone/iOS leads Android more in to the business application development. When we look international market iOS devices would cost at least 60% more then Android devices, different reality from iOS, where we can pay US$200 on an iPhone.

Desktop and N-Tier Development

When asked about desktop development I made three questions, which I believe it’s correlated, here the questions:

  • Is your company planning to develop new Desktop applications in 2013?
  • Is your company planning to migrate existing Desktop applications to the Web in 2013?
  • Which of the following architecture would you use for new applications?

The results showed a clear demand for desktop development, where 73% of the interviewees plans to develop new desktop applications, however when you cross that with the architectural questions, 70% would use N-Tier architecture and only 24% would consider Client/Server.

Survey 2013 - Architecture


Survey 2013 - Desktop

There is also a significant number of companies (45%) considering to migrate existing desktop applications to the web, 34% not planning and 21% didn’t decide yet. That information leads to us think about the challenges to migrate legacy applications where you can see all kinds of situation. Talking with developers I see most of the time the following scenarios:

  • High cost to migrate legacy code, which can’t be financially justifiable
  • High demand for maintenance and new projects, that doesn’t allow the team to stop or dedicate time to the migration project
  • The current application is working, no reason to change
  • And many others

Survey 2013 - Migration

 

Years ago the software development world moved away rom the traditional Client/Server in to the distributed development. There are so many technologies and architectures for distributed systems out there (SOA, REST, SOAP, WebServices, etc.), which are supported for many languages and IDE’s, but bring the question “Which software vendor has the best implementation and support for distributed applications?”.

Looking forward to see your comments and what’s your choice to build distributed applications?

Macs compatible with OS X Mavericks

Categories:TechnologyTags: , ,

Apple just announced OS X Mavericks and it brings some cool new features. Now come the question “Is my Mac compatible with OS X Mavericks”, below a list of Macs that will be able to run the new OS:

  • iMac (Mid-2007 or later)
  • MacBook (13-inch Aluminum, Late 2008), (13-inch, Early 2009 or later)
  • MacBook Pro (13-inch, Mid-2009 or later), (15-inch, Mid/Late 2007 or later), (17-inch, Late 2007 or later)
  • MacBook Air (Late 2008 or later)
  • Mac Mini (Early 2009 or later)
  • Mac Pro (Early 2008 or later)
  • Xserve (Early 2009)

Also, the computer needs to be running Mac OS X 10.6.7 Snow Leopard or higher, with 8GB of free disk space for installation. Essentially, that’s the exact same computer and specification requirements as Mountain Lion required—so if you installed that, you can be confident that Mavericks will run on your machine. — Apple Insider

Android Studio preview – The new Google IDE is out

Categories:AndroidTags:

Last week at Google I/O, Google announced the Android Studio, their new Android development environment based on IntelliJ IDEA.

Android Studio is FREE and can download the early preview version here. I just installed on my Mac, the IDE supports Windows and Linux as well. I played a little bit during the last 2 days and I’m very impressed.

Today’s Android development is supported in Eclipse through the ADT (Android Development Toolkit plugin), and every developer can take advantage of the Eclipse ecosystem. I have been using Eclipse for Android development, but certainly I see space for improvement and more specific features related to Android development.

Android Studio is built on top of IntelliJ’s community version and now with Google Engineer working on that, just imagine what they will be able to produce. I just played few hours with Android Studio, their source code editor ROCKS it goes beyond of features already applied in other IDEs, the Designer is awesome and gives you a view of your application not only for one device, but for many others include tablets. Also, you can easily import your projects from Eclipse in to Android Studio.

Android Studio

Android Studio multi device preview

Watch the following video and you will have a pretty good idea about what I’m talking about.

That’s it for now.

What’s new in Delphi XE4?

This time you didn’t have to way a full year to see a new Delphi release, 8 months after XE3 release Delphi XE4 is out.

iOS development is the major topic of course and bring the second version of FireMonkey to iOS, a lot of expectation on this topic specially after XE2.

Also there is a bunch of new stuffs to talk about, like:

  • New Delphi compiler for mobile platform, which brings several changes in the language and set a future path to the Delphi language, obvious these changes will affect desktop development in the future and you need to start learning about that now.
  • The SQLite and InterBase support for iOS
  • ClientDataSet available on iOS
  • Several FireMonkey changes for iOS, componentes, new classes
  • Etc..

RAD Studio XE4 now includes only Delphi, C++Builder and HTML5Builder. Delphi Prism is no longer part of RAD Studio, the name is dead and from now you have to refer to Oxygene from RemObjects. You can check the official communication from RemObjects here, where Marc Hoffman provide more details about the future related to .NET development with Oxygene (old Prism) and their support to iOS and Android development.

Trial is already available here or if you prefer download the full Delphi and C++Builder ISO here.

The Delphi XE4 documentation has a extensive list of What’s new in Delphi and C++Builder XE4, below the table of content:

That’s it for now.

Delphi XE4 official announcement coming

Categories:DelphiTags: , ,

In general you expect a new version of Delphi around August, this year is going to be different, Delphi XE4 is coming next week.

I just heard that next week Embarcadero is going to announce Delphi XE4, which is part of RAD Studio XE4 and will include C++Builder XE4 and HTML5 Builder.

An important change initiated last year related to Prism (Delphi for .NET) will affect RAD Studio this year, I think you won’t see Prism included in RAD Studio, of course REM Objects continue to develop their compiler and integration with Visual Studio, so you will have order directly from them.

What’s new in Delphi XE4?

Delphi XE4 will bring Embarcadero’s new ARM compiler and will allow Delphi developers to compile FireMonkey apps to iOS devices at this point. The project around this new compiler started years ago, I had the opportunity to talk about this project with many Delphi developers, so the new compiler is really new and a beginning that will allow to move Delphi language much easier to other platforms, as you already heard Embarcadero is already promising Android support and it suppose to come soon.

The iOS support is going to be better them what you saw in XE2 and you are expecting something way better. A very important point is the focus on iOS, trying to make everything you use for Windows available on iOS is not the way to go, so in XE4 you will see what is specific for iOS when developing for iOS and this is good.

Of course Embarcadero will promote FireDAC as a new feature in XE4, even it came recently on XE3 still a good point to talk about this, since FireDAC is way better them dbExpress. I blogged about that recently and you can read here.

I believe you will see InterBase for iOS on this release, even you already have SQLite on iOS devices I see a lot of space for InterBase on iOS, especially for developers that need protect their data on mobile devices.

Upgrade and pricing

Embarcadero will release all the SKUs and upgrade paths. Early this year they mention about to release iOS support as add-on, maybe you will be able to buy just this piece, let’s wait and see.

There is a webinar scheduled for next Wednesday April 24th and it will show this new release.

I will be back in the following days and will share my comments about this release.

I just published an article covering What’s new in Delphi XE4 after the official launch, you can find that here.

What does AnyDAC acquisition by Embarcadero mean for Delphi and C++Builder Developers?

Categories:C++Builder, DelphiTags: , ,

Finally the day has come, Embarcadero acquired AnyDAC and there is a lot to talk about, early last year I invested a lot of time evaluating AnyDAC and know you know why :) – I was very impressive with the amount of features,  AnyDAC is everything dbExpress tried to be and never reached.

The reason I say that it’s because AnyDAC really allows developers to target multiples database without the workarounds required by  dbExpress, like: Field Mapping when you persist the TFields. For long time AnyDAC allowed developers that use Delphi/C++Builder Professional edition to connect their application to Enterprise databases like Oracle, SQL Server, Sybase, Informix and others, something that was only possible through Enterprise and Architect edition, and much more.

Beyond that, there is a lot of specific database features supported by AnyDAC, which I consider very helpful in any database development, here some examples per database:

  • For all databases
    • Automatic Connection Recovery
    • Unified DB Events Support
    • Simplified architecture, it means no more Query + ClientDataSet + Provider just for a bi-directional cursor
    • Much better performance when compared with dbExpress
    • TADMemTable – in memory dataset, faster than TClientDataSet
    • Much easier to migrate BDE applications to AnyDAC than the traditional dbExpress architecture
  • Oracle
    • SELECT FOR UPDATE clause – no more workaround doing UPDATE just to lock the record
    • Query execution aborting – we always need that right?
    • ROWID columns for fast data editing and refreshing
    • RETURNING clause for fast data refreshing – no more select after the update to get a new value generated by trigger
    • and more…
  • Firebird
    • RETURNING clause for fast data refreshing
    • Trusted authentication
    • DB services – backup, restore, validate, security, etc
    • Query execution aborting
  • PostgreSQL
    • Yep, now you can connect natively with PostgreSQL
    • and more…
  • SQL Server
    • Batch commands with multiple result sets – Now you can use that and improve your app performance
    • Query execution aborting
    • and more…
  • MySQL
    • AUTO_INCREMENT columns and retrieving of last inserted value.
  • Drivers for several databases on Windows, Mac and iOS

This is a small list of interesting things on AnyDAC, you can find more here.

AnyDAC is a step forward and worth the effort to migrate from dbExpress to AnyDAC, there are lot of feature needed by Delphi and C++Builder developers, many of these features has been requested for a long time and you will have when using AnyDAC.

You may ask what is going to happen with dbExpress? BDE is dead, but still around :), dbExpress is not dead and I don’t think will die soon, but there is no reason to keep two database access technology since AnyDAC is way better than dbExpress.

AnyDAC trial is available for download here.

 

Update 2 for Delphi XE3 and C++Builder XE3

Categories:C++Builder, DelphiTags: ,

Update 2 for Delphi XE3 and C++Builder XE3 is available, the majority of bugs fixed on this update are related with C++ 64-bit compiler, the Update 2 bug fix list is available here.

If you have a previous version of XE3 installed, you must uninstall it. In case you installed Platform Assistant before, you also need to uninstall it.

Update 2 is available for download on the registered user page, visit the following links: