I've been using LabVIEW for a few years for automation testing tasks and until recently have been saving my data to "[DescriptorA]\[DescriptorB]\[test_info].csv" files. A few months ago, a friend turned me on to the concept of relational databases, I've been really impressed by their response times and am reworking my code and following the examples with the Database Connectivity Toolkit (DCT) to use "[test_info].mdb" with my provider being a Microsoft jet oldb database.
However, I'm beginning to see the limitations of the DCT namely:
No support for auto-incrementing primary keys No support for foreign keys Difficult to program stored procedures and I'm sure a few more that I don't know yet.
Now I've switched over to architecting my database in MySQL Workbench. Suffice to say I'm a bit out of my depth and have a few questions that I haven't seen covered in tutorials
Using Microsoft jet oldb I made a connection string "Data Source= C:\[Database]\[databasename.mdb]" in a .UDL file. However, the examples I've seen for connecting to MySQL databases use IP addresses and ports.
Is a MySQL database still a file? If not, how do I put it on my networked server \\[servername\Database\[file]? If so, what file extensions exist for databases and what is the implication of each extension? I know of .mdb, but are there others I could/should be using (such as .csv's vs .txt's) My peers, who have more work experience than me but no experience with databases, espouse a 2GB limit on all files (I believe from the era of FAT16 disks). My current oldb database is about 200mB in size so 2GB will likely never happen, but I'm curious:
Do file size limits still apply to database files? If so, how does one have the giant databases that support major websites? Questions (LabVIEW Specific):
I can install my [MainTestingVi.exe], which accesses the jet oldb database, on a Windows 10 computer that is fresh out of the box. When I switch over to having a MySQL database, are there any additional tools that I'll need to install as well?
For anyone else who may run across this...
The PC is Win7 64-bit. We're using LabVIEW 2012 SP1 32-bit. I was creating a configuration screen including entering an ODBC database name and login information, selecting a table, and selecting columns in the table. There are VIs with LabVIEW to get a list of tables and a list of columns. The challenge was getting a list of ODBC databases. Google brought up a registry entry containing values of the ODBC connection.
This does not pull up the information in the registry entry referenced. The reason for this is here and here. Windows redirects the 32-bit application to a different registry key. The second link includes how to bypass the registry redirection and further link in which registry entries are redirected.
The other bit that was biting me was setting up the ODBC connection. We were going to Control Panel->Administrative Tools->Data Sources (ODBC) to configure a SQL Server database. This is where I went to on my development machine to setup a MySQL database and did not have any issues. The SQL Server setup tested OK in the ODBC setup, but was producing the message, "The specified DSN contains an architecture mismatch between the Driver and Application" when tried to connect to the database in LabVIEW. The message was tracked to this article, which indicated we needed to run "c:\windows\system32\odbcad32.exe" instead of the ODBC configuration in the control panel.
Note that I only had to run the odbcad32.exe for SQL Server and not MySQL.
I've developed program that calls subvi that queries data from MySQL data base. It works fine till I publish it as a web service. While running program, I receive errorCode and errorDesc from subvi as follows:
errorDesc=NI_Database_API.lvlib:DB Tools Open Connec (String).vi->checkLog.vi->vigateway.vi->vigateway.vi.ProxyCaller<ERR>ADO Error: 0x80004005
Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified in NI_Database_API.lvlib:DB Tools Open Connec (String).vi->checkLog.vi->vigateway.vi->vigateway.vi.ProxyCaller
It happens on LV 2012 and 2013. I've tried also with wi-fi switched off and it's the same. ODBC is supposed to be properly configured (it works for undeployed program). Everything is fine with Web Server configuration. VI works when it is run as application and web service but the problematic is VI I attached.
I'd be grateful for your help.