Hi,
I have used the Jet database engine in .NET for an application in the past, and did not have any issues at all. I am working on a much bigger application, but can't see any obvious pitfalls (a few million rows perhaps is all I anticipate at worst). Moreover, this is a Windows application, so I don't have many other choices, it seems.
I was wondering when this Jet database/mdb file solution would give out and force me to use bigger iron. I would like to live with the simplicity and elegance of this as long as possible. Any pointers on when to rethink this approach would be highly appreciated.
Thanks,
Regards,
Srini

Jet database engine/mdb file - issues?
Miljac
Incidentally, I found a free utility on the web called SQL Buddy that I use to probe the database created. If you are OK with actually typing SQL to create tables and data (I have been spoiled by VS.NET and Access), this tool beats a command line approach hands-down.
bobby_macnair
MarcStevenson
This really sounds like a job for SQL. Either MSDE (if the filesize and concurrent user count are small enough), or SQL Server Standard.
You might look over the thread at:
http://www.windowsforms.com/Forums/ShowPost.aspx tabIndex=1&tabId=41&PostID=23456
Note that Microsoft states: "Microsoft Jet is not intended to be used with high-stress, high-concurrency, 24x7 server applications, such as Web, commerce, transactional, and messaging servers. " (http://support.microsoft.com/default.aspx scid=kb;en-us;q300216)
SQL is just about as easy to use as Jet (there's only a few minor syntax changes for most statements). You can still use ADO.Net with a SQL provider if you don't want to move to pure .Net Data Access.
Jojy
(i) Can I assume that my deployment project will be able to take in the database dependency and automatically put it in the user's machine's MSDE when it is installed
(ii) When I read up on MSDE, (on the MS URL that you provided) I noticed that the database maxed out at 2 GB. One other response on this thread quoted the same number for Jet as well. In that case, in MSDE being "industrial strength" relative to Jet, what am I gaining, if I have only one database on the server
(iii) Is it legal to put a copy of MSDE on the user machine The thread you pointed to seems to offer mixed opinions (viz. "MS wont like it ...").
Thank you very much for your responses.
Regards.
Patel Mayur
The file size of the database is unlikely to exceed a few hundred MB's. Most of the time, it may not even get to a hundred MB. As for your other questions:
high-stress: I don't know what that translates to. But my application is not going to be doing high stress read-writes to the db. The db is just a convenient way to store my data, and do incremental saves which I cannot with other means, and to impose relationships.
high-concurency: none. This is a single-user application.
24X7: Not at all.
Web, commerce, transactional, messaging: None
Significantly, I am limited to a PC. Putting a SQLserver for a single user seems daunting.
But having said all that, I am quite interested in exploring the MSDE option after you pointed me to it. I studied your responses on the other thread. I did find an MSDE on my machine (it has VS.NET 2003 Professional editioninstalled). Earlier, I used to wonder why I had a free SQL server running on my machine; now I know. :-) It also seems that porting a Jet model to the MSDE model is a relatively simple affair. Is that correct
After reading your thread, I played around with the MSDE and had another, more technical question. I found that I could only create a table on the tempdb and nowhere else. When I tried to create a db or tables elsewhere, I got an ADO error; the complaint was that it could not obtain an exclusive lock on the MODEL. Is this normal because I am using a stripped down version of the database, or is it something else i.e. my novice status is showing
Thanks & Regards.
yadav.shivam
To answer your questions:
1. You can create a deployment project that will create a database in MSDE during your application's installation. I've seen it done but I'm not sure how it's done. I don't know if you need to write an installer app that creates the database and run it as part of your installation or if the depolyment project itself can handle this. I'd post this question on the deployment forum.
2. You'll find that 2GB is a common file size maximum. This is mostly a leftover from the FAT16 days. Even though Access and MSDE have a common maximum file size, the performance of the SQL data engine compared to the Jet data engine is much greater. Since you will have over a million records to deal with, you'll find that MSDE returns queries and performs updates much faster than Jet - Jet can also become unreliable and buggy at those file sizes.
3. Yes, it is perfectly legal; that is what the software is for. Someone made the comment in the other thread that Microsoft might not like multiple users all pointing to a single instance of MSDE, but they don't mind becuase the MSDE engine will not perform well with more than 5 or so users (except when those users are coming from IIS, then you get as many as 25 before performance is impacted).
Hope that helps! Good luck!!
Hrcko
While its true that its a relatively simple affair to migrate from Access to Sql, you may have found your first difference in the way you are trying to add a table.
You shouldn't get an error; you are allowed to add new databases to the MSDE SQL Server. If you use the server explorer in Visual Studio, you should be able to add new databases to your SQL instance.