• Visitors can check out the Forum FAQ by clicking this link. You have to register before you can post: click the REGISTER link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. View our Forum Privacy Policy.
  • FREE workshop: Preparing contractors for Autumn : Weds 29th Sep at 7.15pm. More details here.

You are not logged in or you do not have permission to access this page. This could be due to one of several reasons:

  • You are not logged in. If you are already registered, fill in the form below to log in, or follow the "Sign Up" link to register a new account.
  • You may not have sufficient privileges to access this page. Are you trying to edit someone else's post, access administrative features or some other privileged system?
  • If you are trying to post, the administrator may have disabled your account, or it may be awaiting activation.

Previously on "Embedded Database for Windows Forms App"

Collapse

  • DimPrawn
    replied
    Originally posted by pjclarke View Post

    I think its going to stay single-user for now. If there's a demand for multi-user, it will become web-based and those asking can pay for me to learn web development
    The InterWeb will never catch on. Who even uses it?

    Leave a comment:


  • pjclarke
    replied
    Originally posted by DimPrawn View Post
    I'd just install MS SQL Express on a server and use that. Works really well and doesn't have any connection limit. 10GB per database which is plenty.
    The target market is scuba diving clubs and centres, with a variety of hardware and IT savviness. So I want to keep installation and maintenance as simple as poss.

    I've done a POC with SQLite and, once I figured out which package to get, I was impressed with its simplicity of installation, good integration with Vis Studio and its speed. Seems the way to go.

    I think its going to stay single-user for now. If there's a demand for multi-user, it will become web-based and those asking can pay for me to learn web development

    Leave a comment:


  • DimPrawn
    replied
    Originally posted by pjclarke View Post
    They had me up to 'Pricing'.

    Seriously, though, first three users free is a model I can work with. Thanks.
    I'd just install MS SQL Express on a server and use that. Works really well and doesn't have any connection limit. 10GB per database which is plenty.

    Leave a comment:


  • pjclarke
    replied
    Originally posted by DimPrawn View Post
    If you would like to use SQLite, but require multi-user, networked access to the data, one solution is:

    cubeSQL » high performance DBMS based on sqlite database
    They had me up to 'Pricing'.

    Seriously, though, first three users free is a model I can work with. Thanks.

    Leave a comment:


  • pjclarke
    replied
    Originally posted by DimPrawn View Post
    If you are using mutiple winform front ends (ie. multiuser on multiple machines) it isn't an embedded DB solution any longer, it's client server - You need a database server.

    MS SQL (ie. Express), MySQL, Firebird, PostgreSQL etc.

    Embedded file based DB drivers never work reliably across a network. You always end up with corruption and or locking issues. Trust me, had that pain.
    The Prawn speaks sense.

    Leave a comment:


  • DimPrawn
    replied
    If you would like to use SQLite, but require multi-user, networked access to the data, one solution is:

    cubeSQL » high performance DBMS based on sqlite database

    Leave a comment:


  • DimPrawn
    replied
    Originally posted by pjclarke View Post
    There are things you can do, - splitting the front and back end, avoiding memo fields etc, that can reduce the likelihood, but even MS admit that corruption can occur in a networked environment. That's why they include a repair tool.

    Moot, tho, cos I've ruled it out.
    If you are using mutiple winform front ends (ie. multiuser on multiple machines) it isn't an embedded DB solution any longer, it's client server - You need a database server.

    MS SQL (ie. Express), MySQL, Firebird, PostgreSQL etc.

    Embedded file based DB drivers never work reliably across a network. You always end up with corruption and or locking issues. Trust me, had that pain.

    Leave a comment:


  • pjclarke
    replied
    Originally posted by EternalOptimist View Post
    SQLite obv
    but if you using access and corrupting it, you are incompetent
    There are things you can do, - splitting the front and back end, avoiding memo fields etc, that can reduce the likelihood, but even MS admit that corruption can occur in a networked environment. That's why they include a repair tool.

    Moot, tho, cos I've ruled it out.

    Leave a comment:


  • EternalOptimist
    replied
    SQLite obv
    but if you using access and corrupting it, you are incompetent

    Leave a comment:


  • pjclarke
    replied
    Originally posted by MicrosoftBob View Post
    .Net CMS like Umbraco still use Windows CE heavily so it may not have a long future but it is still being used, and good enough for clients too tight to pay out for a proper license

    I've not encountered issues using Visual Studio but most of my back end code is just ADO.Net hand written code, maybe all the gui stuff is starting to hate it ?
    Accordin to Erik at the excellent 'Everything SQL Server Compact' blog, CE goes out of support in 2021

    Everything SQL Server Compact: Comparison of SQL Server Compact, SQLite, SQL Server Express and LocalDB

    Yes, the dataset designer in the latest VS is not compatible with CE and VS does not seem to recognise CE data connections when I open a 'legacy' project in the latest community edition VS. Not good omens.

    Leave a comment:


  • MicrosoftBob
    replied
    .Net CMS like Umbraco still use Windows CE heavily so it may not have a long future but it is still being used, and good enough for clients too tight to pay out for a proper license

    I've not encountered issues using Visual Studio but most of my back end code is just ADO.Net hand written code, maybe all the gui stuff is starting to hate it ?

    Leave a comment:


  • pjclarke
    replied
    The more I read around the topic, the more I like SQLite. MS want to push people onto SQL Server but have deprecated the Compact Edition, so I think if I wanted an MS multi-user solution would mean SQL Server Express which just feels like overkill for this app.

    The Jet db seems to have been deprecated at v4, which is 32-bit only, which puzzled me as Access seems to be going strong as part of Office. However it seems the core RDBMS has been frozen and MS are just maintaining the driver (ACE) which enables 64 bit systems to access the db engine. Not sure I want to tie myself to a deprecated tech.

    Leave a comment:


  • VectraMan
    replied
    Originally posted by pjclarke View Post
    So nobody has experience of using Jet for this kinda thing? It used to be the default database for .net not so long ago ISTR.
    I have in the dim and distant past, but via ODBC and C++. It's essentially the same as SQLite being based on a single file and with no server process, but with ODBC you had to faff around creating a DSN and have the driver installed so a bit more difficult to set up than SQLite. But I remember it working well enough.

    Leave a comment:


  • pjclarke
    replied
    PS. If you want multi-user a browser front end with ASP.NET is a much better solution. You can use SQLite like I did on the webserver in that case no problem.

    PPS. If you want to stick with a WinForms GUI and multi-user access, you should move to a client-server database. For small amounts of data just use SQL Server Express as the DB server.
    As a first cut, I've ported to SQL Server and that seems to work well, though I'm not sure that it qualifies as lightweight. Been looking at the LocalDb option but cannot seem to get a straight answer a to whether it supports multiuser/concurrency, as I understand the term.

    The target market is mainly very small orgs with maybe 1/2 PCs in an office plus users who may want to use the app on a laptop. Little or no tech support. My skillset does not include webserver in any depth, so I'm sticking with what I know for now.

    Thanks for all the answers, food for thought. So nobody has experience of using Jet for this kinda thing? It used to be the default database for .net not so long ago ISTR.

    Leave a comment:


  • DimPrawn
    replied
    Originally posted by Boo View Post
    If the db is entirely kept on the user workstation then SQLite is an obvious candidate. It compiles into your application as a bunch of C files (actually there is a single-file version too) so you may need to do some cross-language development if you are using another language for your application.

    Boo
    If you are using .NET, the ADO.NET provider takes care of everything, as simple as opening a connection, read and write, manage transactions etc. It talks to the SQLite.dll using P/Invoke internally.

    Leave a comment:

Working...
X