Can I use Knime to write to a Microsoft Access database? - ms-access

I'm trying to get Knime setup to export data into Access but I'm having trouble figuring out what node(s) to use and configuring them. I'm starting to wonder if it can write to Access or only read from it. Any ideas?

There is no need to add driver for Microsoft Access database cause dedicated Microsoft Access Connector node is available from KNIME version 4.0. After successful connection you should be able to both read data from and write data to it. Check this workflow for example.

It seems you can use UCanAccess JDBC driver for writing to a lot of Access database types. You need to register it -and its dependencies- here (File | Preferences | KNIME | Databases | Add):
You need to change the Database type from default to msaccess and add the required files/directory.
After that, you can use the DB nodes to read/write Access dbs.

Related

Prevent concurrency violation in MySQL and Devart MySQL Connector

I have inherited support for an application used by a number of charities.
The application uses an Access database for local storage and has a web based interface with a MySQL database.
The application syncs data to the MySQL database using a Devart MySQL connector but this is constantly giving the following error:
Concurrency violation: the Update Command affected 0 of the expected 1 records.
I've checked and I think this is due to a setting in Devart Found records but as I can't recompile the application I don't think there's a way to fix it from that side.
Are there any changes I can make from the database side to prevent these errors?
Setting "FoundRows=true;" in the connection string is the only way to change the provider behavior. Please check your application, maybe it allows modifying the connection string via its *.config file?

connecting to a local database with nodejsn

I want to have a database on my local hard-drive (say, made in MS Access) and connect to it with node.js (like you do with the MySql module).
Is there a way to do it?
Checkout this package:
https://www.npmjs.com/package/node-adodb
You will need to install MS Access Driver in your system (windows) to use it, but it applies to every other language too if you want to access MS Access db.

extract and load from mysql DB to another

I would like to extract and load data from mysql DB to another mysql DB without shutting down mysql in the process.
Tried to use the open source Talend community edition.
Used mysql input component, filled connection details which were tested to work.
Component could not connect to mysql and got the error:
Exception in component tMysqlOutput_1
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
though I added to eclipse project the jar: mysql-connector-java-5.0.8.jar
The mysql components in talend should absolutely work out of the box without the need to load any additional drivers. I'd say reinstall talend because something else is wrong.
To manually load your mysql connector, you can use the tLibraryLoad component.
Choose the jar file from the dropdown in the "Basic Settings". It should be there if it's been included in the project.
You can also pick a lib path in the component's advanced settings and add the import line below that.
Again, you certainly shouldn't need to do this for the mysql component. Talend comes with the drivers to connect to all databases that have components.
In fact I've copied those drivers to other programs that didn't come with them.
Good luck!

What is the purpose of an ODBC driver when connecting to a MySQL server?

I've been wondering what are the benefits of using an ODBC driver to interface with a MySQL server? What advantage does that have over directly connecting to the server via TCP and firing off your SQL commands directly?
I'm working with a code base written in labVIEW that references a UDL file which references a data source and its associated ODBC driver to handle the connection to the server. I'm not yet convinced its necessary. I can see the benefit of using a driver if you are connecting to Microsoft Access or excel but if your recipient is an SQL server of some type why would you need a middle man to handle your SQL commands?
I have used the ODBC driver 3.51 for connecting to MySQL Community Server 5.1 for some time now. The ODBC driver allows you (on a Windows computer) to add your MySQL connection to the ODBC data sources list. Now you can reference this data source in many compatible applications. I have been able to use this ODBC connection in VB.Net applications as well as proprietary applications for printing and other functions with ODBC functionality.
I would say that when coding web or python applications i always use the built in MySQL packages, but if you need to access your data through VB.Net or another proprietary application (like a stand-alone windows app) you probably need to set up a system ODBC data source to access your database. To me the ODBC lets Windows access MySQL easily. Without Windows i don't think you need it.
Why ODBC and not JDBC? Some reasons come to mind in order of helpfulness when using JDBC:
Standard api to access the results from a query. To iterate over the results and to get the actual values with the appropriate type.
No need to know how the protocol works to connect to the server. Just use the host, user, password, send the SQL and iterate over the result.
Abstract out the connection to the database. Changing the database should be simpler.
Standard way to commit and rollback for transaction based changes.
In my experience, JDBC is very verbose. You need to write many lines to accomplish simple things. I've found the Spring JDBCTemplate wrapper to be an extremely easy to use alternative for simple stuff.

delphi mysql offline connection

I wonder whether it is possible to read data from mysql database not remotely from server, but just from a file on my disk, like from .mdb files. A happened to work with 2010 Office which gives .accmdb files rather then .mdb and cannot convert them, that's why I switched to mysql.
Any help would be greatly appreciated.
You can use MySQL Embedded server. That will be similar to how you are working with Microsoft Access. AFAIK, Anydac supports MySQL Embedded server. May be other libraries too.
But I does not see a reason to replace Access with MySQL. To work with .accdb files you need to use different OLEDB provider (I expect you are using ADO) - "Microsoft Office 12.0 Access Database Engine OLE DB Provider" or similar.