As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Simple question. I'm considering Firebird and SQLite for an upcoming project. SQLite has SQLite Administrator, which is pretty good but gets +1M because it has autocomplete. But Firebird supports FKs, so I'm more comfortable with it. I'm leaning toward Firebird right now.
What is your favorite Firebird IDE and why?
Edit: Personally, I'll be gravitating toward the free ones because I'm not making much on this project. But I'll leave the question as is.
Test all this !
IBEasy
http://www.marc-grange.net/telecharger.htm *
Firebird Editor Pro https://www.texteditor.pro/firebird/ *
IBExpert http://www.ibexpert.com *
Database Workbench
http://www.upscene.com *
FireFace http://www.fireface.eu
Firebird Maestro
http://www.sqlmaestro.com/products/firebird/maestro/
EMS SQL Mananger
http://sqlmanager.net/products/ibfb/manager *
BlazeTop
http://www.devrace.com/en/blazetop/
Firebird Development Studio
http://www.sqlly.com/
FlameRobin http://www.flamerobin.org/ *
Kevora IDE
http://kevora.sourceforge.net/
IBWebAdmin http://www.ibwebadmin.net/ *
RazorSQL http://www.razorsql.com/
SQuirel SQL
http://squirrel-sql.sourceforge.net/ *
OD Web ISQL
http://www.e-naxos.com/dnlManager.aspx?GROUP=6 *
DBeaver https://dbeaver.io *
For me the best is IBExpert and after Database Workbench because they have stored procedure debugger
(*) means free or have free version (personal...)
I like IBExpert for Firebird (or Interbase). They have a free personal edition.
I would not want to enter it into a contest for best Firebird IDE (yet), but you could look into FlameRobin for a free multi-platform administration program for Firebird. It has auto completion, starts as fast as no other GUI tool I know of, and the price should be right for you.
Databaseworkbench - does everthing - SQL Developer's heaven
I have used the free version of EMS SQL Manager. It is a great IDE with all the features I ever need and compares with something like Management Studio for SQL Server. Link
I can suggest you Firebird Maestro. It's not free but what you get for the price of a license is a very good product, especially because you can perform most of your tasks visually.
Aside from an IDE for Firebird, you may want to take a look at Sinática Monitor for Firebird.
It's great for finding bottlenecks.
I guess you are looking for AnySQL Maestro
Freeware
Able to work with Firebird and SQLite databases at the same time
The producer also offers a tool for SQLite (SQLite Maestro) that SUPPORTS FOREIGN KEYS (with referential integrity triggers) but it has only 30-day free trial (costs about $70).
FlameRobin is simple, easy to use, and has a small footprint. Additionally, it's free.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
We have a large web application that uses multiple databases (all currently MS SQL Server 2008 R2). This application is around 7 years old and was built around the EntitySpaces framework. It's currently using version 2009 of this framework, written using .NET in C# and targetting .NET 3.5
Now that ES is no longer around we have a need to change this to something else and are having problems deciding what to use.
Our database schema is very mature and works perfectly for us. The application is installed in over 80 sites across the UK.
Ideally we'd like a similar ORM tool that we can just point to the existing database schemas and generate our business and data acess layer classes. We don't mind about updating to a higher .NET framework if necessarry.
Our application makes use of both the Entityspaces objects and also call some stored procedures to provide reporting functions. This is something we cannot change so the ability to call parameterised stored procs is essential.
My question is - Has anyone had any experience of doing this and can anyone recommend any tools to use to try out?
Thanks in advance,
Andy
Entity Framework would be the obvious choice as Microsoft's own ORM. It definitely supports mapping to stored procedures, and generating models from databases (aka. "Database First" in EF parlance).
You mentioned that you use multiple databases - this makes things more complicated (in any ORM) - as a word of advice, there is absolutely nothing wrong with creating multiple models in EF, especially if you line these up with your bounded contexts.
Julie Lerman's books are probably the best resource for learning EF: http://www.amazon.co.uk/s/ref=nb_sb_ss_c_0_12?url=search-alias%3Dstripbooks&field-keywords=julie+lerman&sprefix=julie+lerman%2Caps%2C211
There are also lots of courses available at Pluralsight.
I would definitively recommend you to have a look at ServiceStack.OrmLite!
It fits exactly to your needs as it maps a POCO class 1:1 to an RDBMS table.
It allows you to call Stored Procedures, comes with T4 templates to help you out with the code generation part and it’s really simple and pretty fast!
I have use CodeSmith extensively, and can hightly recommend it: http://www.codesmithtools.com
I used Codesmith for a few years, creating my own implementation using the CSLA.NET framwork, these days however I use T4 Templates with the Entity Framework, which works very well.
I would recommend EF and T4 templates if you want to use EF and Codesmith if you want to build your own ORM based on your own architecture or something similar to that of ES.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
My application is in C. I have to add a functionality in my application so that it should be able to upgrade itself according to the latest version. More specifically it should recognize if any newer version is found and get updated with that newer version (according to
the new executable). There may be situations like schema of database may get changed in the newer version. So what provision can I give in my code so that it can recognize the new executable and upgrade itself according to that?
Platform: linux, gcc compiler
So you can update your binary as proposed by #Joachim and #awoodland above. While both are valid, I would err on the side of caution and simply get your package management tool to do the donkey work. Reasons being security and more critically to resolve dependencies. Unfortunately this requires you to maintain packages however given that you probably could get away with a deb file and an rpm file and cover the vast majority this is no biggy.
On the database upgrade side, create a SQL script that backup the db and one (or a series) to update it (adding the appropriate fields etc.)
Have your script create a database version table with the version number date and time of upgrade and the software revision number that performed the upgrade and whether it succeeded or not (anything you can think that is useful. Also make sure it inserts a row into your version table every time you upgrade.
When you start your binary program get it to check the maximum version number against the expected db version to ensure that the binary is compatible with the database version else upgrade.
Extending this further you can upgrade between vastly different versions by having it loop through a set of upgrade scripts. You should keep these as an embedded resource if you want to keep them safe(r) from prying eyes but this should resolve your problem.
Hope this helps, I haven't had my coffee yet but it may point to a solution. Going a step further you could also create an upgrade log table to record how the upgrade went and if any problems were encoutered, to help in those situations that hopefully will never happen.
How about it simply overwrites its own executable, then use fork to create a new process and exec the new executable?
This is not very safe or reliable however, as has been noted. A better solution might be for the program to check a special location for an installer, preferably signed, that is downloaded and run. This installer than has to ask the user for permission to install itself. Much like the Firefox update on Windows.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am new to programming (1 year of C#-winforms) and am from a non CS background. I have not worked with databases yet. As an application programmer, how much should I know? and where should I start from?
EDIT:
Specific topics, books, tutorials, blogs would be appreciated.
Introduction to Databases course: http://infolab.stanford.edu/~widom/cs145/
and this textbook: Introduction to Database Systems, An (8th Edition)
If you just want to get some experience with databases you may want to download and install postgres, and try designing a simple database to use that.
If you don't want to learn SQL then you could get a good book on LINQ, or some tutorials, on DLINQ, aka LINQ to SQL and just start to work with your database that way.
Basically, just install a database, come up with a simple project and start working with it. There are several frameworks you can use, but LINQ may be the easiest to start with.
At the very least, familiarize yourself with relational databases and SQL syntax. Later, learn about stored procedures and advance data manipulation techniques. The internet is full of tutorials and sample code. install (the free) Sql Server 2008 Express for best .Net integration, or MySql if you're Linux-inclined, and start playing. Good luck!
Best place you can start is here:
http://www.w3schools.com/sql/default.asp
Since you're new to C#, it probably means you'll be doing a lot of work in the future using .NET and SQL Server, so you'll want to download SQL Server Express:
http://www.microsoft.com/express/sql/default.aspx
And finally, you should start a pet project to develop your skills. I recommend writing a blog, message board, or version control system from scratch. The idea here is not to produce a commercial product, but to learn the ins and outs of SQL Server, database normalization, and common data modeling problems you'll encounter in the real world.
Good luck!
Start by understanding how databases are structured! Skip SQL for now, just work with the designer of your DB of choice.
One-to-many relationships
Many-to-many relationships
Keys (primary, surrogate, candidate, compound)
Afterwards you can move onto the bible of good database design: Normalization. Learn 1-3rd normalization-form.
Now, you can design a db (yay), and throughout those learning hours I'm sure you've seen some SQL syntax. If you want you can learn SQL here, or you can just sit back and have an ORM do your dirty work (personally, I'm not really good at SQL, I got that "I know what this does"-feeling, which is the bare minimum. I'm doing alright using NHibernate though :) )
Start by learning SQL language. Install a database engine and create/query tables. Then, you could learn how to use an ORM, but only once you know how sql language works.
Begginers tutorial
http://www.w3schools.com/SQl/default.asp
Some orms for .net
http://social.msdn.microsoft.com/Forums/en-US/architecturegeneral/thread/84229d82-1065-4c56-bd12-e95f5a545a02
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Which database would you use for an Open Source Project?
I am looking for something that has little or no setup required by the end-user.
Update: Database size will be relatively small (less than 100,000 records). Application will be written in C#.
If you're looking for embedded database (I guess you do if you ask for something easy for end-user), then SQLite is the most widely deployed SQL database in the world.
Depends on what language you're using, you might need appropriate wrapper for SQLite library.
Update: For .NET, the best wrapper for SQLite is System.Data.SQLite.dll from phxsoftware.
SQLite is nice if you want an SQL-queryable DB:
http://www.sqlite.org/
It doesn't require a server; you just need to include and use the appropriate API libraries in your project. Your database gets stored as a single file on disk.
It depends so very much on how much heavy-lifting that database has to do, but I think it's worth looking into SQLite. It's an amazing little piece of C/C++ code, it's distributed under a public domain license (meaning you can literally do anything you want with it, including resell it).
If you do not need atomic transactions, or very intense type-checking, then there probably isn't a better database. You add the library to your application and it works like a SQL database. Most programming languages have bindings for it. It would be hard for you to describe a case where some other database would be needed.
If it's a web app with PHP then MySQL ... it's installed pretty much everywhere that has PHP installed (which is almost every host).
If it's not... consult the other answers :)
Go with SQLite. It does not need any kind of installation by the end user. It just works.
What about an object database like db4o.net?
Have you looked at SQL Server Express It isn't open source but it is free. I'm a big fan of SQLite but if your in the .net world and want to use a microsoft stack it may be a better choice. It provides some things like T-SQL and a strong type system that SQLite doesn't provide. It does have performance and db size limits not found in the full SQL Server versions but this probably doesn't matter for your application.
I'd second the comments regarding SQLite. It's great for what it is - and for most small, no install DBs, it works very well.
There are a couple of other options, though.
Firebird is one option. It has a pretty impressive feature list, and also includes a .net provider (albeit in beta still).
Another option, though not open source, is VistaDB. It's a 100% managed option, unlike SQLite and Firebird (and most other DBs out there), and has a lot of advantages because of that. It's fairly consistent with MS SQL syntax, supports stored procedures, and many other nice features. They have an "Express Edition" that's free, and can be used in open source projects.
It would depend on what you mean by "end-user"
As others have said SQLite is a great choice if you are looking for something embeddable or for a desktop use.
If you are thinking of some sort of web app, I'd say either MySQL or PostgreSQL as these will provide better performance and be able to handle a large data set more naturally.
If it's windows only Sql Server Compact Edition is a good choice for small apps. It is freely redistributable.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Which language for quick GUI app + sqlite database CRUD (2-4 tables). Java, Python? (Please no jokes like VBasic), some reference, source code to look on?
added:
First idea:
1 database SQLite (Win) + client GUI app (Win)
clients table + orders table + others
import, export database
add, del, edit, etc. entries
Second idea:
1 hosted database (PostgreSQL ,MySQL) + web app client
clients table + orders table + others
import, export database
add, del, edit, etc. entries
Thinking about Django, RoR or local Java(Netbeans), Python(wxPython+ORM).
???
Try python with wxPython for UI programming. I suggest, that you look for an ORM mapper like SQLachemy.
Somebody suggested dabo which is made especially for your purpose, but I have no experience with it (yet). It works with wxPython and databases like SQLite.
Delphi. It's an ideal fit for this kind of desktop application, and there's a SQLite wrapper available.
Ruby on Rails will do simple CRUD operations very easily - although doing more than that can be a little more complex (would require some reading about RoR's way of doing things). The latest version of Rails automatically uses sqlite databases, and in fact the whole database, and CRUD GUI code can be created with one command (scaffold).
If this is to be deployed then that can be a bit more difficult (although I hear that Capistrano is good) - but for local or intranet use then that's what I'd do.
Whatever you are most familiar with.
Or whatever have better set of ready to go components, so either Java (Netbeans/Matise + wizards) or something else.
Need more info. For in house or will you distribute? Desktop or web-based? If web-based, do you host it or will you have it hosted?
Then there's your personal goals. Really, really do it quick, or let it be an opportunity to learn a language/technology you are curious about, like Ruby on Rails? Linq?
Xojo (formerly called REALbasic), if you want to do a desktop app. The Personal edition comes with SQLite built in and is free on Linux, cheap on other platforms. It's a very clean OO language and reasonable IDE, about as productive as VB6 to work in but much cleaner.
I've been doing cross-platform development for about 15 years and REALbasic is now my tool of choice for straightforward database form apps, including an enterprise accounting system I'm currently working on.
I also am working in Swift, WPF/C#, C++ and Cocoa/Objective-C so I'm not just a "Basic-weanie" :-)
GUI development isn't much easier than with Tcl/tk. Also, Tcl has arguably the best interface to sqlite. If deployment is an issue there's definitely no language that can compete with tcl's tclkit/starkit/starpack packaging mechanism.
Write a XulRunner app; this can run with Firefox 3.0.
http://developer.mozilla.org
C# and WPF, it;s preatty easy and good to know (I've been playing with it for 1 week and fully wrote a twitter client in a few hours.
now Cocoa, and the interface Builder, that is a cool approach even for a simple app.
If you were developing a web app I would suggest a scaffold-enabled site like rails, django or ASP.NET MVC (dynamic data). If its a windows app, nothing beats the productivity and features of WPF/Silverlight, if so consider using OrmLite, a POCO-driven lightweight ORM providing a set of useful extension methods around the common ADO.NET IDbConnection and IDbCommand interfaces. Using only convention and DataAnnotation attributes for configuration, it's effortlessly able to persist models with deep complex object graphs.
A live working example using Sqlite (with full source code) is available here:
http://www.servicestack.net/ServiceStack.Examples.Clients/Default.htm
There is also a complete end-to-end example (i.e. stand-alone, no other config required) on stackoverflow:
xml to sql using linq and C#