We are embarking on a grand/huge project which will take us around 1 full year of coding (by 4 developers) to get off the launch pad.
It is a complete Business Management System.
We can use any commercially available RDBMS like Oracle, MS SQL Server, etc. but we are looking out to use freeware and open source RDBMS system like FireBirdSQL, PostgreSQL, etc.
I would like to know as to which is the best RDBMS to use and which has got best support for stable OLEDB Providers. We have experimented with OLEDB Providers which are freeware for FireBird and pgSQL but are not satisfied with their performance and features.
Any suggestions please....
If there are any other Freeware and/or Open Source RDBMS other than listed above with high performing OLEDB Providers please enlighten me.
Yogi Yang
Note: We will be using VB 6 only and none other development tools or compilers! The target software will have to run on Windows9x based PCs (about 60 users) and the RDBMS server will run on Linux/Windows which ever is suitable.
I'd be as conservative as possible, since your client hardware and software will need tender loving care. Since SQL Server and VB6 (and Windows) all come from Microsoft, I don't see how you have any other choice.
You might even consider using an older version of SQL Server, since the standard OLEDB server and client parts might line up better, and be lighter-weight. Otherwise SQL Server Express on Windows XP I think can serve that many connections. It certainly would have the horsepower.
The OLE DB providers for SQL Server and SQL Native Client work well with SQL Server Express, as you'd expect from Microsoft, and therefore are an excellent choice for VB6.
We can use any commercially available RDBMS like Oracle, MS SQL Server, etc. but we are looking out to use freeware and open source RDBMS system like FireBirdSQL, PostgreSQL, etc.
What's wrong with the free versions of SQL Server, Oracle, or DB2? They are all significantly more powerful than the alternatives you mentioned and they give you an upgrade path if you need it.
I've had good experience with a MSSQL2005 database backend, with VB6 clients upward of 60-100 concurrent client instances... And this was a data-heavy application with A LOT of chatty database traffic, row locking, and what not.
Worked great. Interacting with the database was the least of the problems.
On that note...
Please use parameterized queries, unless you hate yourself and want to suffer needlessly.
Related
It's been years since I've worked with DB2, but I just inherited a legacy appllication that reads/writes to DB2 via JDBC and it runs on an AS400. I don't have a lot of details yet on the platform or versions, but I am wondering is it generally possible to migrate a copy of the DB to either Windows or Linux version of DB2? The application accesses the data over a very slow pipe and I'd like to be able to cut a copy of the DB for local development. The JDBC driver used is:
com.ibm.as400.access.AS400JDBCDriver
If that helps...
Any/all replies are appreciated!
Update: I just found out that DB2 version is 7.1 and the platform is iSeries (should I be asking for additional details regarding the platform?)
~~ Cheers ~~
If you install iSeries Navigator (Database component at the least), you can drill into the needed schema (or schemas) and select the option to 'Generate SQL' for the various object types that SQL recognizes. The SQL can then be ported to whatever DBMS you'll use.
Of course, that's separate from any data. And there's significant chance that numerous objects won't make any sense to any other platform. There's a small chance that the "database" won't make much sense on a different platform. It'll depend on how long the database has existed (it might predate SQL), how progressive the developers were over the years, how much advantage they took of platform-specific features, etc.
The QA department that tests my apps at work uses an Oracle database that they all share. Things get really hairy w/ their cases getting changed. bug reported filed + I spend time just to find out the test case has been changed = time wasted.
What I'd like is for dev and qa to all have our own copy of Oracle running on our machines, so we can protect our data and chase our tails... less.
The problem, which I understand, is we don't have funding for all those licenses. Using an open source database won't work because we have all kinds of PL/SQL packages and triggers that I'm sure tie us to Oracle.
Does anyone know of a way (or maybe an open source product) to "fake" an Oracle database? There are no performance requirements at all. I don't mean mocking objects (we do use that for unit testing), but the actual "listening on a port for your request" RDMS. It's a longshot, but I have to ask.
Use Oracle Express for this purpose.
http://www.oracle.com/technetwork/products/express-edition/overview/index.html
Oracle Database 11g Express Edition
Free to develop, deploy, and distribute
Oracle Database 11g Express Edition (Oracle Database XE) is an
entry-level, small-footprint database based on the Oracle Database 11g
Release 2 code base. It's free to develop, deploy, and distribute;
fast to download; and simple to administer.
Oracle Database XE is a great starter database for:
Developers working on PHP, Java, .NET, XML, and Open Source
applications
DBAs who need a free, starter database for training and deployment
Independent Software Vendors (ISVs) and hardware vendors who want a
starter database to distribute free of charge
Educational institutions and students who need a free database for
their curriculum
With Oracle Database XE, you can now develop and deploy applications
with a powerful, proven, industry-leading infrastructure, and then
upgrade when necessary without costly and complex migrations.
Oracle Database XE can be installed on any size host machine with any
number of CPUs (one database per machine), but XE will store up to
11GB of user data, use up to 1GB of memory, and use one CPU on the
host machine.
Support is provided through a free Oracle Discussion Forum monitored
by Oracle employees as well as community experts.
You can use Oracle XE (Express Edition) which is free.
You can download it here.
Assuming that each developer needs less than 11 GB of data in their personal copy of the database, have you looked at using the free express edition of the Oracle database? You can install that on your local machine or even deploy it in production free of charge. You can't use enterprise edition features but basic PL/SQL should work exactly as it does in whatever edition of the database you're using now.
It's not obvious to me, however, that this is really the solution to the problem you're having. If test cases are getting changed without that information getting communicated to developers or test data that one person is relying on is being changed by some other person, creating more database instances with more copies of the same data isn't likely to be terribly helpful. If you have a local copy of the database, you need some way of getting the current version of all the objects (tables, packages, triggers, etc.). You need some way of getting the data that a particular tester is relying on. You need some way of moving your changes from your machine to the shared databases in a way that doesn't stomp on the changes other developers are making. None of these hurdles are insurmountable, but they do require a very solid build and deployment process-- otherwise, you end up with chaos where the version of code in your database is subtly different than the version of code in everyone else's database and the test data in your system has slightly different characteristics than the test data that QA is using leading to lots of bugs that are reproducible on one system but not another. If your current build and deployment process can't even ensure that test cases aren't changing while bugs are being investigated, I would tend to expect that adding more instances is going to make the problem worse, not better.
We have a Delphi 5 app connecting to an Oracle 8i database.
Most logic is siting in the database as Stored Procedures. Currently we are using the Borland Database Engine (BDE) to connect to Oracle via OCI client 9.2.
This app was originally written in '96 using Delphi 1 then upgraded to Delphi 5 in '99.
The plan is to upgrade to XE client and Oracle 11g.
What are what the options to simply replace the BDE with something else and keep the effort to a minimum?
So far I have seen:
AnyDAC (http://www.da-soft.com/anydac/)
devart ODAC (http://www.devart.com/odac/)
DOA (http://www.allroundautomations.com/)
I am not considering DBExpress as I do not believe that it will have the performance that we need.
Things that are important are:
ease of upgrade, e.g. wizard or some other tool to convert DBE components,
Good Performance.
I am leaning towards devart as they do have a migration tool (although it only does a partial job) and they have a direct TCP option to connect to database without the need for a client.
You will need to learn about the differences between BDE and other architectures. Whether you plan to move to dbExpress or not you should read and learn from this whitepaper.
The architecture of dbExpress is an intentional architecture, designed to address critical flaws not only in the BDE's lowest levels, but also in its upper levels (the TTable/TQuery components) and architecture. Understanding the reasons for those changes, and the limitations in the BDE that they address, is a key element in moving your app off the BDE, to anything.
As for your contention on performance, I like to see people use real data, not form opinions based on hand-waving, or adjectives like "fast" imparted upon objects, without experimental backing.
I have not personally used DOA, but if I wasn't going to use dbExpress, that would be the next thing I would evaluate, for Oracle-only environments. nevertheless, I wouldn't assume that dbExpress is slower, without testing both in my own environment.
Updated: Originally I mentioned Delphi OCI, but it turns out it's out of date, and not very active. DelphiOCI project on sourceforge, works with Delphi 7 and before, not on unicode delphi, and only with older (Oracle 8i and older) oracle versions... If this was able to work in my environment, I'd have tried it. Oh, and it's GPL. Okay. Not so great.
Both ODAC and DOA (although DOA development is pretty stale lateley) will give you access to Oracle features dbExpress and other generic DB access libraries will usually not allow access to. If your application does support Oracle only, and doesn't need to support other DBs, it's IMHO far better to exploit Oracle capabilites fully.
The ease of port depends on how you wrote you BDE component code. ODAC has tools to simplify BDE porting (I never used them, though), while AFAIK DOA has not.
DOA TOracleQuery is not a TDataset descendant, and thereby is not a direct TQuery replacement, although it has less overhead, and thereby has good performance, while TOracleDaset is the only dataset-like component.
I would not use the ODAC direct TCP connection to Oracle without the Oracle client but for very special needs - it is an unsupported (by Oracle) connection, I'd prefer to use Oracle Instant Client if a small (relatively...) footprint is needed, at least it is a fully supported option and let you (or your customers) open support request with Oracle if needed.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I see this claim made in a rant here http://discuss.joelonsoftware.com/default.asp?joel.3.456646.47 . As well as in various other rants that can be looked up on google using "oracle sucks". Ok, well, if let's say something as low key as Drupal doesn't have an easy to use visual IDE I can understand why, but if this is really true about something as big money as Oracle, why don't we see an entire ecosystem of user-friendly visual tools for basic DBA work on Oracle? I mean, people who work on Oracle work for companies with big budgets, so surely they could afford a license for a fancy "sit tight and enjoy the ride Oracle admin studio" of some sort to help developers do some stuff by themselves without pestering the DBA? Or do these tools really exist and do good job whereas the people doing the rants are simply unaware of them?
Quest Software has a variety of tools, primarily TOAD but also Spotlight and there is a backup monitoring tool in beta, for database admin.
Part of the issue is that Oracle runs on a variety of platforms, such as Solaris, Linux and Windows. The larger (and therefore more complex) installs have been on more exotic hardware. A 'full stack' admin tool would really have to be native to the database platform, and that just hasn't been practical. That's one reason why the OEM stuff is built as a web-app, and why SQL*Plus, the standard client, has stuck as a command line tool. As has RMAN, the backup/recovery manager.
Another issue is that there is a lot of baggage in Oracle. Rather than a simple "Database = File" or "Table = File" model, Oracle needed to cope with data volumes too big for single files. So they have a concept of a tablespace which maps database objects to data files. That's not so much an issue with modern filesystems.
Finally, Oracle is a high-end product. You use it in situations where the cheaper alternatives can't cut it. So it is often applied in more complex environments which would require more admin anyway. In that way, it is more a case that with Oracle, you can admin your way out of situations which impossible for a competitor product.
There are tools for Oracle, both built-in and third-party.
I think that the tools for SQL Server are a lot easier to use. And third party tools for SQL Server (i.e. Red Gate) are also extremely easy to use and powerful (compared to Toad, which has a byzantine and complex user interface)
Oracle is a multi-platform database and it dates from the original RDBMS implementations generation (one of the first which competed to replace older systems), so it has a lot of layers at install which can be very challenging to deal with. PL/SQL is also more difficult for development compared to SQL Server, MySQL or DB/2 in many ways.
From the point of view of small development shops without dedicated development DBA (or a production DBA who actually understands development) resources, Oracle is less productive than SQL Server or MySQL.
For DBA management and monitoring there's Oracle Enterprise Manager Grid Control. Not an IDE, purely an enterprise-wide administration tool for all of the databases in an organization. Everything from backups to performance monitoring, job creation, alerts, and so forth.
When I was a grasshopper Master Po told me : 'A fool with a tool is still a fool'. As others have pointed out Oracle is a high-end product. You really have to read the documentation, once you understand the basic concepts of oracle there are a lot of tools available. Allmost all tasks are command-line based. A lot of different GUI applications are available to assist you. Oracle's main tools are Enterprise Manager and SQL Developer. Server side you have a few tools you can use: Database Configuration Assitant, Network Configuration Assistent, Migration Assistent, etc. Choose the one you like for a sprecific task. Bottom line is : it's not a point and click application.
If you're deploying Oracle in a large corporate environment, there is an ecosystem of user-friendly tools to administer the database. But most of those tools are relatively painful to install-- they need their own database, for example, and install components on the database server along with the central repository. It makes perfect sense to invest in this sort of heavy-weight infrastructure when you're spending 6 or 7 figures on Oracle database licenses and you need to handle things like continuous monitoring and alerting.
On the other hand, most of the folks that are complaining about Oracle usability are trying to install and run Oracle in a much different environment. If you're a developer, for example, that wants to run Oracle on your local laptop so that you have the full stack installed, you're not going to need or want one of these heavyweight tools. Those folks are going to end up with whatever tools Oracle installs by default. Traditionally, those tools have been somewhat less than ideal. Oracle is getting better about that by shipping a lightweight Enterprise Manager web client with the database that is very useful for these types of installs. But it can still be a bit of a fight to ensure that the Enterprise Manager web client works perfectly on a developer's Windows laptop install which leads a non-trivial number of developers to conclude that "Oracle sucks".
I use an app called PL/SQL developer, and it works pretty well, IMO.
www.enterprise-elements.com is one such tool
You have noticed that you are pointing to a four-year-old rant right? By a supposed DBA who didn't even know enough to turn off unneeded services in order to shorten up the load time?
I'm sorry, but if the complaint is "why can't this industrial-strength DB be managed as easy as this lightweight, feature-poor, freeware?" then I think it is a self-answering question.
To answer the rest, yes there are tools out there. To specifically answer your " I mean, people who work on Oracle work for companies with big budgets, so surely they could afford a license for a fancy "sit tight and enjoy the ride Oracle admin studio" of some sort to help developers do some stuff by themselves without pestering the DBA? " , this is more often a factor of a DBA choosing to lock down privileges - not a function of the database itself. A tool is no use to a developer if their user account is not granted the rights to do what they want.
Rants like that one? Looks like someone tasked with running an app they had no interest in actually learning much about. No wonder they got frustrated. Yes, sometimes Oracle causes frustration of its own, but many of these rants are from people who probably picked a database platform far above their needs, and are disinclined to really learn how to manage it.
I started learning .net about 3 years ago. I have gone thru a boot camp during that time learning OO and various data access technologies such as NHibernate, Subsonic, LINQ TO SQL.
didn't wanna try EF cause it hasn't reached version 3 :)
As far as reporting goes, I have heard that many ORM'S fall flat on their face when it comes to reporting. We have AS400 OR DB2 as our backend. I have heard that LLBLGEN does a good job on reporting for this product. But it is a commercial product and not FREE. Can someone point me to some good resources for Reporting from DB2? thanks for any links/blog articles
Reporting on DB2 will work the same as reporting on almost any other database - you can use ODBC, JDBC or native DB2 calls to the database. So, you don't need DB2 reporting references - any database reporting references should meet your needs.
The only thing special about DB2 might be a little of the syntax extensions, and how you scale up the back end through parallel database servers (like MapReduce, Teradata, etc). But neither should be of much concern - since it's extremely ansi compliant and the scalability should be largely invisible to the reporting developer.
And Crystal Reports, Brio, Cognos, Business Objects, Microstrategy, Actuate, JasperReports, Birt, etc should all work fine.
ORMs are typically terrible for reporting - since they're object rather than set oriented. You'll especially feel the pain with very large data volumes, complex reports or a large number of reports.
Please, don't overlook the most obvious answer: Query/400!
It is native iSeries software. You configure and runs the report on the iSeries but it works great. It is simple, straight forward and maybe a little bit limited but you get most of the works done.
Don't be scared of the green screen or the simple interface. It's really a powerfull tool that does handle the iSeries database very well.
Can someone point me to some good resources for Reporting from DB2?
RPG I!
Light up those indicators!
Query Manager:
You cam use SQL (that can take input parameters) to build it, then create a "form" that will provide totals, level breaks, counts, customized headers, titles, etc.
Query/400 does not accept parameters AFAIK.
Free manual at:
http://publib.boulder.ibm.com/infocenter/iseries/v6r1m0/topic/rzatc/sc415212.pdf