Is it possible to create an Access runtime using MySQL tables to distribute to other people? - mysql

I am rather new at distributing databases and am unsure if this is possible without having to include MySQL drivers or whatever.

I have to say it's one of the oddest combinations I've heard of.
Windows does not include MySQL connectivity. Therefore you would have to ship and install MySQL drivers with your application.

I'm not sure what the question is, as the way you've worded it makes it seem like you understand the issues.
yes, you could create an Access runtime install that doesn't include the MySQL support, on the assumption that it's already installed.
I haven't used the recent runtime distribution tools, but the old ones used to allow you to chain installers, or include components from outside the runtime for installation. However, I didn't use ODBC back then, so don't know what the issues are for that.
you could use something like the Inno installer to have a single package that installs your runtime and your MyODBC drivers.
If you've tried any of these and run into problems, perhaps you should edit your question to incorporate that information, since that will help people provide better answers.

In my previous workplace there were an old application using MS Access VBA and MySQL. We used to distribute it with MySQL ODBC Connector, and storing the configuration in a local MS Access table.
At first the app relies on DSN ODBC to store the login information, but then we moved to what i mentioned above.
I tried to convince my boss to move the app to the .NET Framework but i didn't succeed because he loves VBA.

Related

What tools do you use to connect to AWS Athena via JDBC

I am trying to connect to AWS Athena via my Windows as well as Mac system. My goal is to have a SQL Editor that I can use to perform quick research about the data. I was trying to find tools and tutorials for connecting to Athena. So far I have only found some tutorials around SQL Workbench. What are some other tools that you guys leverage and is there something particular that you like about that tool and how easy was it to setup either on Windows/Mac.
I use SQuirreL SQL for connecting to Athena. It has served the purpose so far. Once you import the JDBC drivers(you can download them from AWS's site) the tool itself is pretty straight forward to setup. The URL that you can use to connect can be seen here -
jdbc:awsathena://AwsRegion=<AWS Region>;User=<AWS Access Key>;Password=<AWS Secret Key>;S3OutputLocation=<S3 folder>
I'm pasting the "Overview" of SQuirreL below:
SQuirreL SQL Client is a graphical Java program that will allow you to
view the structure of a JDBC compliant database, browse the data in
tables, issue SQL commands etc, see Introduction. The minimum version
of Java supported is 1.6.x as of SQuirreL version 3.0. See the Old
Versions page for versions of SQuirreL that will work with older
versions of Java.
SQuirreL's functionality can be extended through the use of plugins.
A short introduction can be found here. To see the change history
(including changes not yet released) click here.
For a more detailed introduction see the English or German of our
paper on SQuirreL.
Susan Cline graciously took the time to document the steps she
followed to setup an Apache Derby database from scratch and use the
SQuirreL SQL Client to explore it.
Quite some time ago Kulvir Singh Bhogal wrote a great tutorial on
SQuirreL and published it at the IBM developerWorks site. He has
kindly allowed us to mirror it locally. The tutorial is not really up
to date but especially for doing the first steps it is still of help.
SQuirrel was originally released under the GNU General Public License.
Since version 1.1beta2 it has been released under the GNU Lesser
General Public License.
Another tool that I have used pretty extensively is SQL Workbench. This is also sort of recommended on the AWS site. The is good, but I found that it would hang up sometimes and I would loose my work.
Both of these can be easily downloaded from the links provided or if you like to use CLI then Homebrew can be used on MacBook or Chocolatey on windows
Some other tools that you can use are DataGrip by JetBrains. Guide to setup the tool can be seen here. The functionality of DataGrip is also built into IntelliJ Ultimate Edition.
DB Visualizer is another tool that can be used to connect to AWS Athena the guide to connect can be found here
TeamSQL and Razor SQL are some other tools that you can leverage.
One of the strengths of JDBC drivers is that as long as a tool supports JDBC, you can use it for any data source which has a JDBC driver. First, get the JAR file for the JDBC driver for Athena here: Amazon Athena Connect with JDBC. Java works across platforms, so as long as you have Java in your Windows/Mac environment, you should have no problem using any of these tools.
The tool SQL Workbench/J is fairly popular, but I find it frustrating to work with when switching between multiple databases.
Another tool is Squirrel SQL, which also supports JDBC drivers. I prefer it, but it looks a little less pretty than SQL Workbench/J. Once you've downloaded the JDBC driver, configure it in SquirrelSQL by going to Drivers and then adding a new one. Label it "Amazon Athena" and specify the Example URL as jdbc:awsathena://AwsRegion=[Region];User=
[AccessKey];Password=[SecretKey];S3OutputLocation=[Output];
[Property1]=[Value1];[Property2]=[Value2];...
Leave the Website URL Blank, but specify the Class Name as com.simba.athena.jdbc.Driver. Add the .jar file of the JDBC driver to the "Extra Class Path" page.
Once you've set up the driver, you can set up connections by going to the Alias tab and hitting the plus sign. Simply fill in the values in the example URL to point to your data source. Once you're connected, you're good to start writing queries.
SquirrelSQL saves the connection information for you, allowing you to quickly jump between data sources, and makes it easy to write multiple queries in one input window, with their outputs going to separate tabs in the output pane. I've used it for database, exploration, DDL, and regular day-to-day tasks with data. It's been good for most anything I've connected it to. It is definitely not perfect, but it's getting better all the time.
I guess you need a Docker SQL Editor that you can use to perform quick research about the data.
But I suggest two ways.
One is Offline/Online and with installation methods, which you can use with a fixed connection.
The first solution is to select a system as a server and connect to it from other operating systems. This is the traditional / old solution.
In the second solution you just need to be trained to work with Docker. This is a newer and more popular solution.
if you want use MySQL in MAC read this article :
Installing MySQL in a Mac OS X environment
If you want use MySQL in windows read this article :
How to Install MySQL on Windows
But you need a synchronous space for use MySQL or other DBMS you can use docker.
Docker is very Flexible . But you need connect to internet.
If you want use Docker read this article and view docker site :
Docker : SITE
Docker Doc : Start a Remote MySQL Server with Docker quickly

Connect to MySQL database from 4Dv12 or later version?

Can anybody help me in connecting my MySQL database from my 4D database application. I have tried but still could not find any help. Please note that i want it without ODBC and want to directly connect to my MYSQL db.
I have integrated MySQL with 4D without ODBC using this C compiled library
https://www.pluggers.nl/product-category/4d-plugins/
The price is WORTH EVERY PENNY. I used both their MySQL and PostgreSQL wrappers.
I talked to the developers, they have done just what you want. Provided a 4D component C library wrapper to target functionality of other databases.
It is VERY FAST.
If you decide to use the ODBC connector use this command to target a pre established ODBC connection on the machine.
http://doc.4d.com/4Dv15/4D/15/SQL-LOGIN.301-2007437.en.html
Also. ignore the connectivity API is for version 2004 and is not relevant to your question.
-James
What I read is that 4D doesn't do this without the API (additional price of $59), API details seen here.
Another option I found, be out date, is to write something yourself in the C compiler which can talk to MySQL directly.
You may connect via web service such as SOAPand REST.
You may also retrieve both data in and out via JASON.
Also, Since 4D now support PHP, you may build an APPLICATION in php that will do the migration or Synchronization.
But if you are looking for Direct Query, I don't know about the latest version of 4D, but as for 4Dv12 that would be bloody if you tried to build your own, since the simplest way is to do it is via ODBC.
Before, I tried to connect it via EXTERNAL PROCESS and SERIAL COM using .Net but it's just to risky, so i just Give up.

How do I get my program to run on different machines without needing an installer?

I've created a program which is using a MySql.* reference for MySql commands. The program works great on my own PC, where I have the MySQL Connector/NET installed. Although when trying to use the program on another PC, it gives me a JIT error saying MySql.Data reference is missing.
Note: I don't actually publish the program duo to it's simplicity and because I prefer having a portable application, so I just grab the exe out of my Visual Studio\Projects\appDayZAdmin\appDayZAdmin\bin\Debug folder.
Is there any way for me to get this program to work on other PC's who don't necessarily have the connector installed? Or will I have no other option but to actually publish the project thus making an installer for it?
If you've written code to reference MySql.Data, you're going to either have to make it a precondition for using your program or offer a way to install it.
You might be able to assume availability of some generic database interface like OBDC or JDBC, but that won't be true on some percentage of systems. Even then, you may have versioning issues.

using MySQL without installing server

Is there any way to use MySQL without install? I am making an desktop application using Visual Studio and C# that uses MySQL. I will use this program on another computer.if this computer has no MySQL installation my program will also work? Can I move my database with my application?
No, you do not need the server installed locally. You do need some sort of client, though. For C, you would need the mysqlclient library. I assume C# has something similar to enable the CLR to talk to MySQL.
If you are looking for a portable database, check out SQLite. As for the best library for C#, see these answers:
What is the best way to connect and use a sqlite database from C#
Is there a .NET/C# wrapper for SQLite?
No... You will need the computer to have mysql and your compiled code. What you CUD do if your database is not too big is hardcode the data storage and retrieval in your code itself.. in that case you wont need mysql installed there..
OR you cud allow network access to mysql on another machine(server) in that case u only need mysql on the server

64-bit Alternative for Microsoft Jet

Microsoft has chosen to not release a 64-bit version of Jet, their database driver for Access. Does anyone know of a good alternative?
Here are the specific features that Jet supports that I need:
Multiple users can connect to database over a network.
Users can use Windows Explorer to copy the database while it is open without risking corruption. Access currently does this with enough reliability for what my customers need.
Works well in C++ without requiring .Net.
Alternatives I've considered that I do not think could work (though my understanding could be incorrect):
SQLite: If multiple users connect to the database over a network, it will become corrupted.
Firebird: Copying a database that is in use can corrupt the original database.
SQL Server: Files in use are locked and cannot be copied.
VistaDB: This appears to be .Net specific.
Compile in 32-bit and use WOW64: There is another dependency that requires us to compile in 64-bit, even though we don't use any 64-bit functionality.
Luckily, things have changed in the past two years:
Since Office 2010 is available in a 64-bit version, Microsoft had to create a 64-bit version of their Jet Engine. According to the Microsoft Customer Service blog, the Microsoft Access Database Engine 2010 Redistributable contains a 64-bit driver, which is able to access recent versions of the Microsoft Access database format.
Users can copy the database while it is open without risking corruption.
You can't do that with any database file with multiple users and/or processes modifying it.
What you're looking for is SQL Server Express with the portable .mdf files. To get around the copying limitation you need to make sure that the software in question doesn't keep connections open (i.e. create a disconnected data access layer).
Try to have a look at http://www.vistadb.net/
#Orion: Agreed, OP would be advised to go with SQL 2005 Express (if possible). The deal breaker is being able to copy the DB while in use/attached which is out of the question with SQL without using some kind of backup tool that can copy 'in use' files.
Another way would be to automate a backup and restore to roaming machine but this is getting a long way away from being able to just grab a copy of the file.
Another alternative you can look at is SQL Server Compact Edition (CE). I believe this has 64bit binaries.
I also agree with Orion and Kev about the copying the database.
What I am going to do is to create a separate 32-bit executable that connects to Jet that my 64-bit application can communicate with through COM.
This satisfies my general requirement of "work like Jet", because it is Jet. My customers don't get the benefit of 64-bit, but the other requirements are more important.