469,902 Members | 1,978 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,902 developers. It's quick & easy.

Can I write an application with no server ?

[cross-posted on .databases.informix and .databases.ibm.db2]

Hello

I have an application using an internal database (user doesn't know
about it) and I would like to know if I can use some IBM product with a
run-time that I could emmbed in my app and redistribute, to provide SQL
access to database and possibly to let me create the database on first
run (after my app is installed). All that without the user having to
provide me an working instalation of a server. I would like just some
lite run-time to do the job. That is I am looking for a replacement to
Microsoft JET and MDAC.

Does anyone know an appropriate product from IBM that could do what I need ?

I tried searching IBM sites for DB2 and Informix and found nothing
relevant :(

Thank you
Timothy Madden
Romania
Jan 12 '06 #1
6 1220
Consider HyperSQL http://sourceforge.net/projects/hypersql/ then maybe
IBM Cloudscape
http://www-128.ibm.com/developerwork...es/cloudscape/ that are
very lightweight (with a tiny memory footprint) and "in theory" don't
require administration. AFAIK, HyperSQL may even be embedded in your
application.

Jan 13 '06 #2
Timothy Madden wrote:
[cross-posted on .databases.informix and .databases.ibm.db2]

Hello

I have an application using an internal database (user doesn't know
about it) and I would like to know if I can use some IBM product with a
run-time that I could emmbed in my app and redistribute, to provide SQL
access to database and possibly to let me create the database on first
run (after my app is installed). All that without the user having to
provide me an working instalation of a server. I would like just some
lite run-time to do the job. That is I am looking for a replacement to
Microsoft JET and MDAC.

Does anyone know an appropriate product from IBM that could do what I
need ?

I tried searching IBM sites for DB2 and Informix and found nothing
relevant :(


I'm going to commit heresy here and suggest that you look into c-tree Plus
from Faircom. It's an embedded ISAM style database with Relational features
and an available embeddable and stand-alone client server SQL engine and
separate user level SQL interface. You get all of these interfaces with the
same application source and ctree's highly portable source code to boot.
You get the best of both - an embeddable database and the ability to give
your uses an adhoc query tool and to hook them in from many ODBC tools they
may already know like MS Access and other unspeakable abominations.

C-tree was my favorite before I met Informix.

See www.faircom.com/products/ctree

Art S. Kagel

Jan 13 '06 #3
Faircom seems to support C/C++ interface only, what if the application
is java?
Also it's a commercial product whereas HyperSQL and IBM Cloudscape are
freeware (might not be an issue though)

-Eugene

Jan 13 '06 #4
Eugene F wrote:
Faircom seems to support C/C++ interface only, what if the application
is java?
Also it's a commercial product whereas HyperSQL and IBM Cloudscape are
freeware (might not be an issue though)

-Eugene


Thank you all for your suggestions.

My app is C++, but when I will chose a product, I will have to convince
my manager it is ok to switch. So a product with IBM brand on it would
realy help. It's not clear to me as yet if Cloudscape can be emmbeded
and the run-time redistributed with my app. I will have to check that.

What can you tell me about stability ? My is supposed to keep phone
calls in the database for an unlimited period of time (several years),
so I can take no chances to get the databse corrupted. Unfortunatly it
still happens with many, many new and young products :(
Timothy Madden
Romania
Jan 13 '06 #5
Timothy Madden wrote:
[cross-posted on .databases.informix and .databases.ibm.db2]

Hello

I have an application using an internal database (user doesn't know
about it) and I would like to know if I can use some IBM product with a
run-time that I could emmbed in my app and redistribute, to provide SQL
access to database and possibly to let me create the database on first
run (after my app is installed). All that without the user having to
provide me an working instalation of a server. I would like just some
lite run-time to do the job. That is I am looking for a replacement to
Microsoft JET and MDAC.

Does anyone know an appropriate product from IBM that could do what I need
?

I tried searching IBM sites for DB2 and Informix and found nothing
relevant :(


There are a number of companies who embed DB2 into their products with the
number growing with each release. The downside is that DB2 is still a
server (even if you turn off remote connections), and that you are still
limited to a single copy of DB2 on the system (i.e., if your customer
wanted to use both your product and to use DB2 normally, on the same
machine, they would have to be the same copy).

The real big upside to using DB2 (or Informix or ...) is the wealth of
experience that their code brings to your product. This can be a real
value-add for larger clients where they may outgrow a single computer and
need to cluster, for example. Or just in the fact that you no longer need
to worry about ACID requirements or backups/restores (you may just need to
provide an interface to the backup/restore functionality if you want to
hide the underlying database).

With DB2 as the example (since I don't know Informix), you can embed DB2 by
using the silent (response-file) install. You may also look into the
db2iprune tool if you're on Windows in order to remove optional components
that you don't want so as to shrink the size of the DB2 image and possibly
fit both your application and DB2 on the same CD if that's how you
distribute your software. (You can do the same on unix/linux, but the tool
is called 'rm' - I'd go into more detail, but I think you're worried only
about Windows.)

In that response file, you can install and set up DB2 for immediate use.
Then you can create any databases and start using the product immediate as
part of your own. I don't think the learning curve to do this is very
large at all - if you can write C++, this should be trivial ;-)

Jan 13 '06 #6
Timothy Madden wrote:
Eugene F wrote:
Faircom seems to support C/C++ interface only, what if the application
is java?
Also it's a commercial product whereas HyperSQL and IBM Cloudscape are
freeware (might not be an issue though)

-Eugene


Thank you all for your suggestions.

My app is C++, but when I will chose a product, I will have to convince
my manager it is ok to switch. So a product with IBM brand on it would
realy help. It's not clear to me as yet if Cloudscape can be emmbeded
and the run-time redistributed with my app. I will have to check that.

What can you tell me about stability ? My is supposed to keep phone
calls in the database for an unlimited period of time (several years),
so I can take no chances to get the databse corrupted. Unfortunatly it
still happens with many, many new and young products :(


C-tree is very stable. Haven't used it myself for years, but I first used
it in 1982 or so and the API and core embedded direct access code has not
changed much since. The whole client-server version is newer (circa 1990)
but still venerable and stable and the API is identical so you can ship with
the embedded DB but offer a client server upgrade and it could be handled by
installing the server and setting a config variable on the clients.

I do agree with Darin that using a true and complete RDBMS like DB2 or
Informix will give you a far more robust product, but your customers will
have to pay licensing fees through you which will boost your sales price or
cut into profits.

Art S. Kagel
Jan 13 '06 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Angelos Karantzalis | last post: by
reply views Thread by Zed | last post: by
11 posts views Thread by Michael Powe | last post: by
4 posts views Thread by Ross | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.