Switching from MS-Access to Oracle [closed] - oracle

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Apologies beforehand if I've been an unlucky searcher, but I feel like I'm either using the wrong keywords or there is nothing to find on the subject.
A colleague of mine has been using MS Access for decades and has no experience with other SQL tools. Most of the systems in our organisation are built on Oracle databases (and in quantities too large for MS Access), so data integration is often complex for him. To facilitate things, he will be moving his data sources to one of the Oracle servers, and will be able to access that data with Oracle SQL Developer.
All I'm able to find on the internet is how to migrate data but I'm looking for functionality differences from the perspective of a data analyst or a reporting developer, who works with preparated data.
I tried explaining it in simple terms, such as: "there are tables here as well", or "Oracle views are like Access queries", but there's a lot of ground to cover and I'm looking for some handles.
Do any of you know of a good source to read on this subject? Books, videos, articles, websites, anything. If at all possible, it should be in terms familiar to an MS Access user.

You not make it clear what developer tools you plan to replace Access with. Remember Access has two parts. The database part (the data engine). The data engine allows you to build tables, and execute SQL queries to retrieve data. This is also what the Oracle database allows you to accomplish.
Then there is the developer part. That is the part that lets you build forms (to edit data) and that of reports. This part is NOT part of the database engine (for Access or oracle).
So the differences in the database engine are NOT that important here, but MOST important is what tools you plan to build the reports and forms to edit data with?
You can most certainly continue to develop your software using Access. So Access has a VBA programming system, has the ability to develop forms, and also that of reports. However the database engine and table can be form the Oracle database.
So your question shows much confusing here since you not making any distinction between the developer tools (Access), and the database system you choose to WORK WITH Access. Access is a developer tool, much like VB6, c++, vb.net etc. It allows you to build reports and write code and build a user interface. A database system such as ACE, or Oracle or SQL server has no such ability.
The Access database engine (used to be called JET and is now called ACE) is a separate issue.
So a developer writing some software in say vb.net can choose to use the Oracle database system or can use the Access database engine called ACE.
It not clear if you plan to continue to use the Access development system, and then choose an appropriate database system such as SQL Server, MySQL or in your case Oracle as the database engine to work with Access.
If you plan to not use the Access development system to build reports and forms and write code, then you have to share with everyone here what tool(s) you plan to use. Since it sounds like the user is being dictated that they MUST use Oracle as the database system, then it likely that what developer tools such as vb.net, C++ or perhaps MS Access is also going to be forced upon the user.
Until such time you expand on what developer tools which are SEPARATE ISSUE from the database system is shared here, then any real answer is sheer speculation and a waste of our time.
So keep in mind that the Access databases engine, or SQL server, or Oracle or MySQL are database engines. AFTER you choose the database engine/system, you can then write code + forms in something like:
Vb.net
MS Access
Asp.net
Etc. etc. etc .etc
You also choose such systems as SQL reporting services, or whatever oracle has these days.
So if you crystal reports with ACE (the Access database engine), or you use crystal reports with SQL server or Oracle, then the feature set in crystal reports is VERY MUCH THE SAME in all cases.
And you might use MS Access reports with Oracle or SQL server or often the ACE (the default database engine for Access).
The user can continue to use Access as the user “interface” developer tool, and the data can be in any industry database engine that supports ODBC. The database system does not have nor include the user interface and reporting tools.
You not shared what reporting and development tools you plan to use with Oracle. As to what tool, well that like asking what kind of car to drive or what software development system should one choose. We don’t even know if the user has a choice. If they have a choice then they can continue to use Access and you have no need for a question here!

Related

How to read from an EDB database file

Microsoft Edge and other Microsoft products use an Extensible Storage Engine. If you have edge installed on windows, you can find the database file here:
C:\Users\username\AppData\Local\Packages\Microsoft.MicrosoftEdge_xxxxxxx\AC
\MicrosoftEdge\User\Default\DataStore\Data\nouser1\xxxxxxxx\DBStore\spartan.edb
I would like to read this database from my .NET app.
The only tool I have seen for viewing this data appears to be deprecated:
http://www.woanware.co.uk/forensics/esedbviewer.html
I can't seem to find any relevant nuget packages for querying this type of database. Does anyone have experience working with this type of database?
The database engine is esent.dll, and you can access it in several different ways:
C API. https://msdn.microsoft.com/en-us/library/gg269259(v=exchg.10).aspx
C#. https://github.com/microsoft/managedesent
Simplified C# (Isam layer). Easier to use, but not everything is exposed. https://github.com/Microsoft/ManagedEsent/tree/master/isam
(Disclosure: I've worked on the above products.)
That being said, if you just modify a random database, you can impact the host process's integrity, and it might end up crashing.
If you're a law-enforcement agent and it's for forensic purposes, Microsoft should be able to assist you (I haven't done it myself, but I've heard that they'll do it).
-martin

Oracle distributed databases and MSVC

I am using Visual Studio 2008 C# and SQL for my development.
Which oracle version should i download? Oracle 10g?
Does it have a design interface like sql server mangement studio?
Will this distribution concept have a graphical tool which say "Hi, on which servers would you like to distributed the database and on what basis"?
Using a local application, when I connect to its server and try to enter or delete data not on that server, will the oracle DB management system transparently access other servers to get or insert data? Or will it produce an error?
In reverse order:
Oracle does not do distributed in the way you (seem to) imagine. It's not Voldemort or Cassandra. It's one database per server, unless you're talking about RAC: but RAC is shared everything, so it's transparent (but way complicated).
The nearest Oracle has to SQL Server Management Studio is, I guess, Enterprise Manager. But I suspect OEM is probably not as easy to use as its MSSQL counterpart.
If you have a free choice use 11gR2. Why wouldn't you not use the latest version?
Oracle does support one application using multiple databases. However, this is normally due existing (even legacy) databases providing some of the data for an application. You should not deliberately set out to have separate databases on multiple databases, because distributed transactions are slower, less reliable and harder to tune. Find out more.
If you want to have multiple servers for resilience or scalability then as I said before RAC (Real Application Clusters) is Oracle's solution. This is a different architecture from SQL Server's federated approach. Find out more.
"so this link thing is support by free
versions of oracle?"
There is only one free (as in free beer) version of Oracle, and that is the Express Edition (currently still 10g only). That edition does support Database Links. I suggest you read two related articles by Lewis Cunningham: one explaining about DB Links and the other on linking multiple XE instances.
Oracle 10g Express is a great starting point. You would then need the Oracle Developer Tools for Visual Studio package.
Although the database comes with a fairly basic web-based interface, you would fare much better using a proper tool as Oracle SQL Developer (it's free). It's possibly not as complete as SQL Server Management Studio in terms of what it graphically offers, but it's good enough.
The difference between connecting a database hosted on your local computer and one hosted 450 miles away usually boils down to correctly configure your connection strings. However, it will not ask you 'graphically'; in the C# application you will be creating, you'd have to configure that by the way of code. Oracle SQL Developer, on the other hand, will ask you kindly. :)
Your local application would operate over the database instances which you have set it up to do so. You could configure your application to connect to 3 (or more) different databases, and it's not that the database system will know, but that you would be the one managing the operation.

Which MS technologies would be suited for a data intensive application?

I'm a junior VB.net developer with little application design knowledge. I've been reading a lot of material online regarding different design patterns, frameworks, and methodologies. It's become a bit confusing for me.
Right now I'm trying to decide on what language would be best suited to convert an existing VB6 application (with SQL server backend.) I need to update the UI and add more user functionality and reporting capabilities. Initially I was thinking of using WPF and attempting the MVVM model for this big project. Reports would be generated from SSRS.
A peer suggested using ASP.net and I don't have enough experience to determine what would be better. The senior programmers here are stuck on using VB6 and don't have any input on what to use. They are encouraging me to use the latest technologies.
This application would be for ~20 users in a central location. Ideally I would stick to a Microsoft .net language. Current interface is similar to a datagrid table where the user would click in to see the detail of each record. They would need to have multiple records open at any given time.
I look forward to all the advice I can get.
EDIT 2010/04/22 2:47 PM EST
What is your audience? Internal clients within an intranet
How complex are the interactions you expect to implement? not very... displaying data from SQL server to UI. Allow user updates to said data. Typically just one user modifying a record.
Do you require near real-time data updates? no
How often do you expect to update the application after the first release? twice/year
Do you expect a well-defined set of client platforms? Yes, windows xp environment, potentially upgrading to Win7. Currently in IE.6 moving to IE7 or 8 within a couple of months.
Do users need access from anywhere? No, just from their PC.
What would be wrong about building a simple ASP.Net application in VB.Net using Gridviews for allowing the data access and manipulation? Seems like a simple ADO.Net trial application if you aren't familiar with it in the beginning you will be by the end. CRUD applications are pretty common so it shouldn't be too hard to build it and then refine it as more requirements become apparent.
Sounds like you need to use a web-based solution--this eliminates alot of your potential distribution woes with multiple users. You could use silverlight, but if you are locked into SSRS, this might not be the way to go.

Simple database application for Windows

I need to build a simple, single user database application for Windows. Main requirements are independence from windows version and installed software. What technologies (language/framework) would you recommend? My preference for language is the Visual Basic.
EDIT: What about VB.Net and SQL Server Compact Edition?
I would recommend Sqlite. It's completely self-contained, and public domain so there are no license issues at all.
Single user or multi user?
For single user, the answer would be SQLite
For multi user (or multithread), try MySQL or PostgreSQL.
Since your requirement is a windows based application i would suggest that you go with sql server 2005 express edition which is a free tool, but with certain small limitations. you can upgrade to a bigger version when you go with a paid version.
There are other DB engines like SQL Lite or FireBird, choose them if the support and growth options they provide are good enough for you
Additionally, Visual Basic is eof lifed. VB.NET might be a better windows based platform currently. It would give a better platform / features to start with and when you want to expand the talent you have working on the project, i assume .NET talent might be more available than programmers who want to work with a dead language.
duplicate of What options are there for a quick embedded DB in .NET?
I'll repeat my answer from there:
"Or theres Esent, the built in database that exists in every copy of windows. Read about it here: http://ayende.com/Blog/archive/2008/12/23/hidden-windows-gems-extensible-storage-engine.aspx" and http://www.codeplex.com/ManagedEsent
SQLite will work for a local desktop application. If you want several users, a few gigas of data, and multiple connections I would use mysql or Firebird.
http://www.mysql.com/
http://www.firebirdsql.org/
FireBird SQL server will be thing of choice. It can be used in both embedded and multiuser mode like traditional databases. It implements many of the SQL standards and has strong community base. It is available for Windows, Linux, Solaris, OS X, HP-UX
As mentioned, SQLite is a great single-user database. This page has VB/SQLite examples. Once concerns is that SQLite parses foreign key constraints, but does not enforce them. You can use this code to generate "foreign key triggers" for SQLite, thus gaining an easy to use database with FK constraints.
Depending on how demanding your database needs are, though, you might want to consider MS Access.
I used SQL Server Compact Edition. It's like sqllite. A single SDF file accessed using ADO.NET.
You can develop your application using Visual Basic .NET and manage you database (add tables, columns, constraints, etc...) using Visual Studio.
SQLite may be what you are looking for. http://www.sqlite.org/
Depending on your needs for the application.
You could use SQLLite which is a very nice database with no installation required.
You could also use Microsoft SQL Server: SQL Server Compact 3.5.
Both are free!
It's not quite clear from your post whether you want a web application or not.
For a web application, MySQL works effectively on the Windows platform. You also have nearly limitless options for development environment including, PHP, Ruby on Rails, Django, and .Net.
If you are looking at a desktop application, MS Access might be suitable ... incredible easy for simple applications.
Well, assuming you don't have any prior experience...
You need some kind of persistence storage (for example a database) and a client.
For the storage you could use almost anything. For example you could create your DB in MS Access and just ship it as a file, using ADO to access it.
Other options are MS SQL Express edition (comes pre-installed on some machines or could be installed for free) and plenty of open source databases like SQLite
For the client side you could not go wrong with VBScript and ADO (using OLE DB drivers). They come with every Windows installation since Dark Ages, you will have plenty of references/tutorials/answers online.
A drawback: no UI to speak of, so you'll have to build a command line interface (which was for a 'simple' application).
If you want to build a UI I would suggest using .NET WinForms. The overhead will be substantially bigger but .NET is now installed on all XP/Vista machines and even if it is not you could always install the framework with you application.
If you want to build application that can move to other pc easily,I prefer Microsoft Access it is small database easy to use and no need to install.It suites for application like Addressbook,mini crud system.
But if you want to develop enterprise database system you should use MySQL instead.
I do not understand what you mean with "independence form [...] installed software". You ever need at least the DBMS installed as well as one client or user interface.
I recommend using MS Access. It is easy and cheap for simple, single user tasks and rapid prototyping development. Only development version have to be bought ("normal" Access) to create DBs. Runtime version of Access 2007 can be downloaded free of cost from Microsoft Homepage - for using only the database you created.
Also it combines DBMS and GUI frontend in same tool.
Dare I mention MS Access...?
If you are looking for small footprint (up to a few MB) and easy deployment (end-user should only install your application to get it working), then your options are SQLite and Firebird embedded.
Of those two, I'd pick Firebird any time, because of it's full support for SQL (you can't, for example, drop a column in SQLite), ACID compliance, and ability to go client/server without any changes (just change the connection string from embedded to server) to the code if you ever decide to let multiple users work on the same database.
Not to mention that you can use full server to develop (which means your application and database administration tool can be connected to database at the same time).
I'm successfully using Turbo Delphi (free for commercial and no commercial use) + ZeosLib (zeos.firmos.at).
The only things you need to distribute with your .exe are the database client dlls (no need to install the client, just put the dlls in the same directory).
Would Kexi work?
I can recommend from personal experience "My Visual database"
free, no code, no sql, just drag and drop.
http://myvisualdatabase.com/
Best Option would be to create a Win32 native application using Delphi and use SQLLite as the database.
Reason being Delphi can produce native win32 applications without any other product being installed on the machine.

Which Reporting technology? [closed]

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 reporting technology would fit for the best situation/type of product? I am now thinking of 3 technologies:
Embedded Reports (Crystal Reports;MS Reporting services)
Server reports (MS Reporting Services)
OLAP Databases (MS Analysis Services)
Which report technology would you use for an off the shelf product? Is it possible to have a OLAP type based reporting side of things from a off the shelf product?
Which technology is best suited for historical data? I would guess here OLAP database would be quicker, but that would depend the size of the database, because I reckon you could also use Embedded Reports for historical data.
Which technology would be best for custom software solutions?
I like the idea of having reporting on the server where a user can go log in and run reports like with MS Reporting services. And really only have reports for stuff like invoices, bills, customer information sheet etc as Embedded reports. And also have Reporting services over an OLAP database for historical data.
Unfortunelaty does management not see this layout and wants a off the shelf product, with olap reporting right inside the application with all other reports.
OLAP isn't a reporting platform, it's in the database layer.
If you're going to have a collection of pre-planned, canned reports, then Crystal or RS are the best ideas. Personally I prefer Crystal but it can be quite a pain to develop reports - but when they're approved, Crystal is a rock steady platform. (We integrate Crystal with .NET apps.)
RS integrates just as nicely, but you do have to maintain the server. Their big advantage is dynamic/reactive menuing, but they are just as tricky to develop and maintain when not quite perfect.
OLAP is a really powerful technology - but if you've not got local knowledge, it's a really challenging product to deploy accurately. But, again, it's not a reporting product - but there are some interesting layers on top of it (e.g. ProClarity, Excel plug-in).
I like reporting services. It can be used as you say, with the customer logging into the reporting services web site. But there is also a component you can add to your application which uses reporting services on the back end. Best of both worlds.
Also, you can access data in analysis services or any other database.
Also you could take a look at (our very own) i-net Clear Reports (used to be i-net Crystal-Clear). Fully Java-based, can read Crystal Reports templates, and offer both a nice and simple API as well as a servlet for any major web server. Has nice charts using JFreeChart. Can export to PDF, HTML, SVG, as well as to a Swing Java Viewer you can embed into your own applications. We also offer a free and fully functional standalone report designer.
Costs a lot less than CR, also.
We are using XtraReports from DevExpress. The ratio price/productivity is very high and you can get source codes.
You can use it for desktop or web applications ( or export to pdf, doc, html, etc...) and end-user designer is delivered natively by DevExpress. I believe, this is one of the best reporting suite ( with Telerik Reports ).
I really like Reporting Services. You can embed reports into web pages, you can give users access to your reports over the web, you can even automate report delivery by having reports emailed to users at a set schedule. You can also create reports off OLAP databases. Plus Reporting Services comes with SQL Server so it can save some money.
Crystal reports is very easy and quick to use but it is also fairly limited. If all you need to do is slap some aggregate information onto a report, right out of a database, then crystal reports will be fine for you. Not sure about the others.

Resources