473,320 Members | 1,957 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,320 software developers and data experts.

Desktop database suggestion

Hi,

I'm writing a WinForms app in C# and need to store various items of lookup
data which will be accessible and maintainable by the user. I'm looking for
advice as to the best way to achieve this, according to the following
provisos:

1) The app must be able to "match" records according to various criteria in
a standard sort of "fetch me all the records where..." way. This doesn't
have to be SQL becuase it will all be GUI driven. E,g the user selects
various criteria via dropdowns (age, sex, area etc) and the app returns the
records which match those criteria, so the user won't care whether the app
uses SQL or another technology under the hood.

2) The schema is fairly flat with one main table containing about fifty
fields, and only a handful of related lookup tables.

3) There might be several thousand records in the main table.

4) There must be no additional licensing costs incurred with the database
software.

5) The data might be single-user standalone or accessed by multiple users at
once, so would have to be able to reside on a network share though, because
of 4) above, something like SQL Server is right out, unfortunately.

6) The data must be unreadable by anything or anyone other than my
application.

7) The data must be easily backed up and restored.

Given this, would you recommend:

a) a Jet database

b) some sort of XML file / schema structure

c) something else altogether,

Any assistance gratefully received.

Best regards,

Mark Rae
Nov 16 '05 #1
8 1528
If you don't want licencing costs and if you're not holding much data you
can use an XML file.
If it gets big, just compress it however! if multiple uses open and write to
this file you've got a sync problem and users can and will
overwrite data. You'd have to write a service that can maintain the xml file
in a syncronis pattern. so for eg: your app writes changes to single xml
update files on the disk, a service collects them and updates the main xml
storage file.

or you can use MySql .... its free and works damn well. I guess a normal
Access file would work too.

-p

"Mark Rae" <ma**@markrae.co.uk> wrote in message
news:OK*************@TK2MSFTNGP12.phx.gbl...
Hi,

I'm writing a WinForms app in C# and need to store various items of lookup
data which will be accessible and maintainable by the user. I'm looking for advice as to the best way to achieve this, according to the following
provisos:

1) The app must be able to "match" records according to various criteria in a standard sort of "fetch me all the records where..." way. This doesn't
have to be SQL becuase it will all be GUI driven. E,g the user selects
various criteria via dropdowns (age, sex, area etc) and the app returns the records which match those criteria, so the user won't care whether the app
uses SQL or another technology under the hood.

2) The schema is fairly flat with one main table containing about fifty
fields, and only a handful of related lookup tables.

3) There might be several thousand records in the main table.

4) There must be no additional licensing costs incurred with the database
software.

5) The data might be single-user standalone or accessed by multiple users at once, so would have to be able to reside on a network share though, because of 4) above, something like SQL Server is right out, unfortunately.

6) The data must be unreadable by anything or anyone other than my
application.

7) The data must be easily backed up and restored.

Given this, would you recommend:

a) a Jet database

b) some sort of XML file / schema structure

c) something else altogether,

Any assistance gratefully received.

Best regards,

Mark Rae

Nov 16 '05 #2
"ilPostino" <ne**@ip80.com> wrote in message
news:uc**************@TK2MSFTNGP11.phx.gbl...
If you don't want licencing costs and if you're not holding much data you
can use an XML file.
If it gets big, just compress it however! if multiple uses open and write to this file you've got a sync problem and users can and will
overwrite data. You'd have to write a service that can maintain the xml file in a syncronis pattern. so for eg: your app writes changes to single xml
update files on the disk, a service collects them and updates the main xml
storage file.
I'm sort of veering away from XML because of the multiuser requirement...
or you can use MySql .... its free and works damn well. I guess a normal
Access file would work too.


I'm sort of heading more and more towards an Access (well, Jet!) file
because I know Access inside out and it wouldn't require any runtime
licenses because of System.Data.OleDb
Nov 16 '05 #3
the msde engine might be a good alternative assuming you're comfortable with
SQL Server. It's free, it's SQL Server, but has a limit of something
ridiculous like 20 concurrent users. Assuming a 2 GB limit isn't a problem,
that's a lot of users.

Mark
www.dovetaildatabases.com

"Mark Rae" <ma**@markrae.co.uk> wrote in message
news:OO**************@TK2MSFTNGP09.phx.gbl...
"ilPostino" <ne**@ip80.com> wrote in message
news:uc**************@TK2MSFTNGP11.phx.gbl...
If you don't want licencing costs and if you're not holding much data you can use an XML file.
If it gets big, just compress it however! if multiple uses open and write
to
this file you've got a sync problem and users can and will
overwrite data. You'd have to write a service that can maintain the xml

file
in a syncronis pattern. so for eg: your app writes changes to single xml
update files on the disk, a service collects them and updates the main

xml storage file.


I'm sort of veering away from XML because of the multiuser requirement...
or you can use MySql .... its free and works damn well. I guess a normal
Access file would work too.


I'm sort of heading more and more towards an Access (well, Jet!) file
because I know Access inside out and it wouldn't require any runtime
licenses because of System.Data.OleDb

Nov 16 '05 #4


----- Mark wrote: ----
the msde engine might be a good alternative assuming you're comfortable wit
SQL Server. It's free, it's SQL Server, but has a limit of somethin
ridiculous like 20 concurrent users. Assuming a 2 GB limit isn't a problem
that's a lot of users


I think MSDE has a limit of running 8 (or 10? can't remember the exact number) concurrent queries. when you exceed that limit, it will put a delay in to slow down the performance on purpose. which won't be a problem when you only have a small amount of users. that's the best option

Access file is the second best, but it's no where near the performance of MSDE, which is essentially SQL Server for a small group of users

XML file is a poor choice because there's no way to update a small piece without rewriting the whole file. and a lot of manual synchronization.
Nov 16 '05 #5

SQLite (www.sqlite.org) ?
4) There must be no additional licensing costs incurred with the database
software. Free, open source.
5) The data might be single-user standalone or accessed by multiple users
at once, so would have to be able to reside on a network share though,
because of 4) above, something like SQL Server is right out, unfortunately. Depends on what you want. It looks the whole database when writing, not only
one record.
6) The data must be unreadable by anything or anyone other than my
application.

This is a problem with most "of the shelf" solutions.
If you plan to use some encryption, it will be a weak one or you will get a
bit performance penalty.
--
Mihai
-------------------------
Replace _year_ with _ to get the real email
Nov 16 '05 #6
"Mihai N." <nm**************@yahoo.com> wrote in message
news:Xn********************@63.240.76.16...

Thanks for the reply. We've decided to give users the choice of using our
desktop database (which will be Jet 4.0) or to use their own. There will be
an option in the app which will allow users to point at a file which
contains the OleDb connection string, either locally or on a network, which
allows for total flexibilty. The only proviso we make is that the RDBMS they
choose must support SQL. We will also provide an SQL script for
administrators to run so that they can create the database, tables and
fields that our app is expecting.
Nov 16 '05 #7
On Thu, 1 Apr 2004 09:40:57 -0600, "Mark"
<fi******@idonotlikejunkmail.umn.edu> wrote:
the msde engine might be a good alternative assuming you're comfortable with
SQL Server. It's free, it's SQL Server, but has a limit of something
ridiculous like 20 concurrent users. Assuming a 2 GB limit isn't a problem,
that's a lot of users.

Mark


MSDE is a good alternative, but depending on your deployment
constraints, can be problematic to fully integrate into your
deployment package.

If you have no problem with instructing your users to install MSDE and
then your product, its fine.
Nov 16 '05 #8
This is a problem we having been fighting for years. One example is the
like statement in access is 'Select * from Data where fullname like 'we*';
then sql standard uses 'Select * from Data where fullname like 'we%'.
There are many other examples. The SQL syntax differs for Access(Jet 4.0) vs
Sql Server.
"Mark Rae" <ma**@markrae.co.uk> wrote in message
news:%2****************@tk2msftngp13.phx.gbl...
"Mihai N." <nm**************@yahoo.com> wrote in message
news:Xn********************@63.240.76.16...

Thanks for the reply. We've decided to give users the choice of using our
desktop database (which will be Jet 4.0) or to use their own. There will be an option in the app which will allow users to point at a file which
contains the OleDb connection string, either locally or on a network, which allows for total flexibilty. The only proviso we make is that the RDBMS they choose must support SQL. We will also provide an SQL script for
administrators to run so that they can create the database, tables and
fields that our app is expecting.

Nov 16 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: jelle | last post by:
Hi, Has anyone so far been messing accessing / quering the google desktop database files? It seems it could be the best reflection of one in a couple of hundred mb, and i intent to unleash some...
9
by: Etienne Charland | last post by:
Hi, there is an application running on a remote desktop (under Citrix ICA, but the same problem applies for RDC or PC Anywhere). Now, I want to send keys to the remote application from a local app....
3
by: Bsiang Tan | last post by:
Hi all, Could anyone kindly point me the way to capture the desktop image (include the desktop icon) as bitmap ? Thank a lot Best regard, Bsiang
8
by: Mark Rae | last post by:
Hi, I'm writing a WinForms app in C# and need to store various items of lookup data which will be accessible and maintainable by the user. I'm looking for advice as to the best way to achieve...
3
by: Daniel Liberman | last post by:
Hi, everyone. That's my environment: - I have a pocket pc (iPAQ h4350) application developed with VSNET2003/C# that has a SQL Server CE Database, running. That's working fine. Obs: the pocket...
4
by: bz | last post by:
Hi, I need to create a win service that lookup a file ina folder, ands when received, read it then fir an event. Then I need a desktop app that, when runs, bind to the event from the win...
1
by: abhijitbkulkarni | last post by:
Hello, I am designing a .NET database application that uses 3 tier architecture. Starting initially, this application will be desktop application but I will convert it into a website later but...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.