I'm new to Delphi, and I'm trying to find an componnent to connect with a SQL Server database. In Delphi XE I used ADOConnection, but I can't find any component that serves to this propose.
You're using the Starter Edition, which does not include database access components according to the Delphi Product Editions matrix. In order to connect to databases, you'll need to upgrade to a higher SKU (edition).
Most third-party alternatives won't work with Standard either, because the underlying classes they would need to use don't exist in the Standard SKU.
Related
I am starting with Firebird and have found components to access a database by Devart.
They offer native components (IBDAC) or DBExpress drivers. (I am using Delphi XE2 Pro which doesn't include Firebird drivers)
I guess native components are a bit faster, but that's not too important for me.
What are the advantages/disadvantages of each approach and why should I choose one over the other?
Check Anydac. It is universal data access library, but supports most of Firebird specific features including - multiple transactions, database events, services (backup/restore), etc. The performance is very good. Sorry, i cannot imagine dbExpress advantages over Anydac.
IBdac
your application is tied to firebird
you are familiar with bde or ado
performance
maximal Firebird support
DBexpress
portability (it is easy to port you application to anther database).
upgrade pro edition to enterprise so you can use one supplied by
embarcadero.
You can check Devart FAQ.
FIBPlus and UIB are also good choice
Native components can support database specific functions. I've missed event support with DBExpress when using 3rd party driver from Upscene.
DBExpress should make it easier to create database agnostic application, but I've no experience about that.
ZEOSlib might be a nice alternative, actively developed and supporting many databases including Firebird.
My application uses TDbChart and ADO. I was wondering, for deployment, do I need to include BDE files too?
Do you know other charting tools that can be used with ADO (freeware preferably)? I just need simple charting tool. TDbChart is a good one, but if I need to deploy BDE files too, I think it's becoming too bulky and complicated.
Thanks!
No, you don't need deploy the BDE if you are using ADO. ADO and BDE are two different technologies to connect to an database.
Moreover the TDbChart is a data-aware control, because that can be used with any TDataSet descendent connected to an TDataSource.
So you can use ADO, Zeos, dbexpress or the bde components (and many more). to connect your TDbChart to the data.
I would like to know the better alternatives to the Delphi BDE. We have this huge application using Firebird 1.5 and BDE, and would like to consider the following alternatives:
IBObjects
FIBPlus
The migration will involve conversion to Firebird 2.5 dialect 3.
Can I get your ideas on which one is better? Your input is highly appreciated.
Thank you.
I have never used IBObjects because I was quite happy with FibPlus. FibPlus datasets support interesting "separate transactions" feature that makes possible to write applications which are very similar to BDE applications but at the same time use Firebird transactions more effectively and support other Firebird specific features. I have written some beginner's notes about using FibPlus that may be helpful as a starting point.
Both components are very good. Migrating from BDE will be easier with IBO, because it has components with the same property and methods names used in the "BDE" ones, and you can use the GReplace utility to change all the declarations from "BDE" to "IBO", ie: TQuery to TIBOQuery, etc. Check more info at http://www.ibobjects.com/ibo_help/convertbdetoibo.htm
Anyway, you should understand how IBO works to fine tune your application after the conversion.
It would be easier to migrate to FIBPlus if your app was using IBX instead of BDE.
I have Delphi Professional 2007 and 2009 and was thinking of upgrading either or both to Enterprise due to a new project that requires me to interface to a Sybase ASE database.
I did some research and it appears that 2007 Sybase driver leaked memory and it doesn't appear that this problem was fixed.
Does anyone know if the Codegear Enterprise drivers for Sybase ASE are reliable and do any alternatives exist?
The BDE had some huge shortcomings and it seems that a lot of those were brought right into DBExpress. Some of these include:
No suport for multiple result sets
No way to get your hands on server messages that are not errors
No control over where the cursors are located
No support for async calls (where you use ct_poll)
My advice would be to write your own (simpler than it sounds) or to use ADO. ADO exposes a lot of ASE's functionality and the performance is very good.
Have you looked at NativeDB? The website might be a little off-putting, but I have a legacy D5 app that connects to ASA using their tools. At some point in the next month or two I'm going to have to buy an upgrade so that I have their latest D2007 driver, because I need to move that legacy app to D2007.
It works well (and it's damn fast) with ASA - I don't know about ASE but it might be worth a quick email asking them, or downloading a trial component. It's not that expensive for what it does, either.
In the sample Delphi web service tutorials I've read, they tend to build a web service that returns a simple string or integer, e.g.
http://blogs.codegear.com/pawelglowacki/2008/12/18/38624
However, I read it's possible in .NET to build a web service that returns a DataSet or even an object. Is this possible in Delphi 2009, and if so where can I find more info on this?
Also, what's your opinion on tools for building a web service, between Delphi and .NET?
Delphi 2009 has full suport for returning classes and datasets from webservices.
Datasnap is the framework that supports datasets you can find more information in this video by Nick Hodges, Delphi Product manager, this whitepaper by Marco Cantù (whitepaper extracted from his book “Delphi 2009 Handbook” and this code by Bruno Lichot.
Yes, it is possible to do so; you can do it by using Delphi's DataSnap with SoapConnection.
DataSnap is Delphi's multi-tier solution. In Delphi 2009 it saw a major update, and named DataSnap 2009, but DataSnap 2009 doesn't yet support some features of old DataSnap, like using WebServices for communication. The good news is that the older DataSnap is still available in Delphi 2009, and you are not forced to use DataSnap 2009.
OK, please let me know if the following is correct:
DataSnap 2009 can transmit datasets, but does not support communication via web service. i.e. both the client and server must be written in Delphi 2009?
Plain old DataSnap can transmit datasets using web service, but requires COM?
So next question would be, what would be use to consume a dataset returned by a web service?
As far as I know, .Net and Java clients can access DataSnap 2009 server too.
Old DataSnap doesn't use COM for SoapConnection, but COM is used for other kinds of connections (e.g. socket connection).
So next question would be, what would
be use to consume a dataset returned
by a web service?
On the server side, you can put DatasetProviders which connect to the dataset controls, and provide datasets for clients.
On the client side, ClientDataset is used to receive data provided by DatasetProviders on the server.