Translator cannot be found

Hi.

I have just started to work with FactorySQL.
I am doing an inhouse test before I shall implement a project at a customer.
The inhouse test is with a Sybase database (which we happen to use for our products), and the customer database will be Oracle.

The inhouse test works partially.
From DB to OPC, data is transferred. I get a “translator not found” but it works. There is a green “RUN” indicator on the group.
From OPC to DB, data is NOT transferred. I also get the “translator not found”. There is a red exclamation mark on the group.

What can I do about this problem ?
I suppose that it will not be a problem at the endcustomer since there is a translator for Oracle. But it is important for me to run a full test before I go to the customer.

Thanks in advance for any tips.

From control panel->administrative tools->odbc please select the drivers tab and post the exact name and version.

We need to modify a “translator” definition for your connection type. This is what tells FactorySQL how to put queries together for a given database type. It appears that the following translators are installed by default: Access, EnterpriseDB, Firebird, MySQL, Oracle, PostgreSQL, and SQL Server - not Sybase.

The fix should be a matter of copying a small text file to program files->Inductive Automation->FactorySQL->database.

edit - You could also try using a “native” “SQL Server” connection. SQL Server and Sybase should be syntactically similar. The port is probably 4100 or 7100 instead of 1433.

Hi Nathan.

  1. I am using ODBC and Sybases own ODBC driver.

I just made a test with the native SQL Server driver.
When testing I then get “A connection was succesfully established, but then an error occurred during the login proces (provider: TCP provide, error: 0 - An existing connection was forcibly closed by the remote host).” Maybe it has to do with Sybase and SQL Server differences ?

  1. The log file error says:
    “The database translator cannot be found for connection [‘test_hhf’]
    at FactorySQL.Groups.StandardGroup.DBItemExecutionCollection.GetWriteCommand()
    at FactorySQL.Groups.StandardGroup.DBItemExecutionCollection.WriteData()
    at FactorySQL.Groups.FSQLGroup.InternalExecute(EvaluationToken EvalToken)”

Jesper - sorry, I must have edited my post while you were responding.

If you post the ODBC driver name and version I’ll try to make you a definition file.

The ODBC driver is called “SQL Anywhere 10”.

The exact version is “10.00.00.2465”.

Here’s my first stab at it.

  1. rename the file to: Sybase.xml (forum wouldn’t let me upload that extension)
  2. Copy the file to program files->Inductive Automation->FactorySQL->database
  3. Disconnect or close the frontend then restart the FactorySQL service

edit - Even if it does work, I’ll need to go through the config to make sure that each setting is correct. In particular, I’m not sure what does.
Sybase.txt (2.11 KB)

I have copied the file into the directory and renamed it to Sybase.xml.
Is there a function to restart the service, or shall I locate it in the list of running services ?

The service is factorysql. Just type “net stop factorysql” then “net start factorysql” or go through the control panel->admin tools->services.

Restarted the service manually.
Reads and writes are now working OK !

Thanks :thumb_left:

No problem - I’ll leave it up to the experts to correct all the XML details for a “production” version. You can open it up if minor things don’t work right - creating/listing tables, etc. You’re not going to get intermittent problems - either the query syntax is correct or it’s not.

Here’s one that came bundled with an older version of FactorySQL (with your driver name added). Let me know if it works for you.
Sybase.txt (2.18 KB)