What are you trying to do?
different things.
1.) i like to build a dictionary with LOTS of words for the user to search
for. Here i'm speaking about 100000 records and more - but only two or
three tables with max. 5 rows. Simple Database - but to heavy for the
Access-File-Format (limited to 65k records and to ~16k records with
indexes)
2.) i like to build an application for the user to enter some information
while they are working, visiting etc... Before the user is going to work he
will export the data for the day out of a big system. And when he's back to
office he will copy his data back into the big system.
Here i'm talking about 8000 rows on the PocketPC (most of the time it will
be less - maybe 50 to 1000 rows - but i could be more).
Because the user needs to export the data it would be cool, if i could
create the "right" format on the desktop/server machine so that the user
could simply copy the resulting-file (database) to the PocketPC (for
example with the File-Sync of ActiveSync). I don't like the idea, that the
user has to copy a textfile which then has to be parsed into a
pocketPC-Database (...time...space... you know)
What search capabilities do you need?
1.) full text to find the right words. SQL would be great (Select...
Like...)
2.) very few. Just reading records with the right ID. A simple Index,
GetGreaterOrEqual (like old BTrieve times) would be enough. SQL would be
cool though....
Is it only 8000 rows at most? or only 1000?
1.) much more
2.) mostly less than 8000
Have you tried to use a simple textfile?
yes. but much too slow. It may OK for 100 or 200 lines - but then... i
don't like the user to wait seconds to input the data - it has to be
quicker than using a simple sheet of paper!
Is MDB/CDB sync also too slow for 8000 rows?
what is MDB/CDB?
How often are the user syncing 8000 rows?
every morning/evening of a day
8000 rows should be quite big anyway, 500kB - 1MB.
it depends on the data
Most of it are IDs (for the big system to know where to put the data in
when the user is coming back to office) or simple texts (short
informations)
The Dictionary may be 2 to 5 MB ... maybe more (stored as simple text) - i
have startet to load it in a SQL-CE File with indexes... after 20 MB i've
stopped it. Too heavy!
I assume the PDA user only reads the 8000 rows, not adding, deleting
changing them.
adding maybe!
deleting - no!
changing - yes!
If they do you only have to add some extra columns for the changes and send
back those with your C# code. The 8000 lines doesn't have to move back to
the server.
if i could simply copy the whole file - it doesn't matter.
When i need to export, i would only export changed records of course.
few thousand lines, then CDB is better, CSV or XML could also work if your
requirements are simple.
CSV is too slow for bigger files and doesn't work for the dictionary at all
XML is much slower when the files are getting bigger and you need LOTS of
memory
The Access-Database could be the solution for my 2. application - but i
need to buy the wrapper from InTheHand ... But it's not that expensive.
But for the 1. application it's no help at all.
I wonder how other companys are able to write knowledge-Base-Application
for Palm and PocketPC with tons of records which are very quick and
lightweight...
You don't need SQL Server, only MSDE. You can run insert or update on the
PDA in C#, and 1000 lines should be quite ok to update from a CSV, try it,
what is the performance?
What is MSDE?
Reading CSV is too slow. It's OK for <500 records but not more - and i
don't like the idea to read thru all records in a loop everytime the user
is searching for something. Not very scalable...
If you find a quick solution for database/text/xml data, even without SQL
querying I would like to know.
:-D ... i havn't yet ... this is because i'm asking in this group ;-)
After learning the tricks and limitations with SQL CE and CDB I'm happy with
it, it's fast and simple but you have to select the right tool for your
task.
i like to believe this - but first i need a good simple database-solution
;-)
I didn't do that in the beginning and I was very frustrated... blaming M$
for all sorts of things... ;-)
Oh, i don't blame MS! I'm sure the SQL-CE is a great tool! But it's much
too much for me and my clients.
What would be really great:
- Create a small Paradox/DBase Database on the Desktop (in one directory)
- Copy the Directory to the PPC
- Start work on the PPC
- Copy the Directory back to the PC
- ready
But i havn't find a solution for these files yet (which will work on the
CompactFramework with C# and which are payable and usable for
shareware-tools too)
Boris