Gustav Brock
Gustav at cactus.dk
Tue Jan 11 10:42:56 CST 2011
Hi John First, I don't think SQL Server (Express) is overkill as you - as I understand - have several engines running, so one tiny database more a less wouldn't make noticeable difference. Then, you could for a single user app use the SQL Server Compact (file based as Access/JET) or even an mdb file. Or, you could use the built-in XML storage which is simple and fun. Just remember that it writes _all_ tables of the dataset in one go when you call WriteXml() as shown below - if you attempt to write one table only (which can be done), only this table will be held in the XML file, all other tables will get lost. This we discussed 2009-09-02: For example, read one XML file with one dataset containing several tables: private void InitializeDataSet() { _dataBaseFile = Path.Combine(_execPath, _dataFileName); this.DlDataSet.ReadXml(_dataBaseFile); } Write the (modified) dataset to one XML file: private void SaveData() { this.DlDataSet.WriteXml(_dataBaseFile); } Resulting XML for one table with one record: <?xml version="1.0" standalone="yes"?> <DataSetDL xmlns="http://tempuri.org/DataSetDL.xsd"> <DataTableSys> <Id>0</Id> <SmtpServer>smtp.webpartner.dk</SmtpServer> <SmtpUserName /> <SmtpPassword /> <EmailAddressSend>cactus at cactus.dk</EmailAddressSend> <EmailAddressReceive>gustav at cactus.dk</EmailAddressReceive> </DataTableSys> </DataSetDL> /gustav >>> jwcolby at colbyconsulting.com 11-01-2011 16:58 >>> I want to build a little application where I have a very simple zip code table of about 40 thousand zip codes, with things like household count, population count, lat and long. My application would take lists of zip codes and sum the population and household counts, count the zips etc and put a count on the screen in a table format. I already do this using SQL Server to hold the zip code table. I get the zip lists into csv files, then create a table inside of SQL Server, join on the zip code and sum the population and household counts. Now I want to build an application to do this but SQL Server is way overkill. Can I use a csv or even xml to hold the zip table, create an xml table to hold the zip lists entered by the user and so forth. IOW I need a low impact alternative to SQL Server. Even express is just way overkill for this. Somewhere in the back of my mind I am thinking that ADO.net knows how to load tables, create relationships between tables, enforce the join etc. IOW do the store entirely in XML and just use ADO to do the rest. Is this possible? Would the speed be acceptable for a join between tblZipMaster and tblZipUserXyz on Zip count(zip) sum(household) etc. directly in memory. -- John W. Colby www.ColbyConsulting.com