Programming magic, glory, and juices.

FileMaker Pro ODBC Quirks

December 24th, 2007


Connecting to a FileMaker Professional 8 database requires use of the DataDirect ODBC SequeLink 5.4 driver. The driver has a lousy SQL parser and it makes creating third-party FileMaker programs more difficult. Below are some of the quarks that I’ve come across, the errors, and their solutions.

ERROR [HY000] [DataDirect][ODBC SequeLink driver][SequeLink Client]TCP/IP error, connection refused

Problem: ODBC driver cannot make a connection to the database

Solution 1: It could be that FileMaker is closed, so open it.

Solution 2: Sharing could be turned off, turn it on. Goto Edit, Sharing, ODBC/JDBC.. and turn On ODBC/JDBC Sharing.

ERROR [HY000] [DataDirect][ODBC SequeLink driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]Parse Error in SQL

Problem: There is an error in your sql syntax or the ODBC driver just doesn’t like what it sees.

Solution 1: Sometimes the driver will throw this error for what would appear to be no reason. To fix it make sure that all your column names / fields are surrounded by double quotes. In other words, SELECT “Field1″, “Field2″ FROM “Table1″ and not SELECT Field1, Field2 FROM Table1.

Solution 2: SELECT statements must have fields that are comma separated and proceeded by a space. In other words, SELECT “Field1″,”Field2″,”Field3″ FROM “Table1″ would throw this error where as SELECT “Field1″, “Field2″, “Field3″ FROM “Table1″ would not.

Solution 3: You could have strings with single quotes in them. So if you used ‘%Maggie’s%’ it would throw the error. Instead use ‘%Maggie’’s%’. Single quotes within a string should be doubled.

ERROR [HY000] [DataDirect][ODBC SequeLink driver][SequeLink Client]Internal network error, session aborted, connection closed

Problem: ODBC driver just is retarded

Solution 1: Try Solution 1 from the error above.

ERROR [HY000] [DataDirect][ODBC SequeLink driver][ODBC Socket][DataDirect][ODBC FileMaker driver][FileMaker]password incorrect (213)

Problem: Cannot connect to database due to invalid password

Solution 1: Self explanatory

If this driver didn’t have so many quirks there would be no need to document them. If anybody else has come across these same issues or other ones I invite you to add a comment. I’ve found that there are only a hand full of newsgroup posts that deal with FileMaker Professional ODBC databasing.

47 Responses to “FileMaker Pro ODBC Quirks”
  1. Asad
     

    What are the other alternatives to Sequelink for Filemaker – I have created a website using Filemaker as a back end and to be honest i think the Sequelink driver is slowing the website down a bit – do you think thats possible?.
    I find Sequelink to be a nightmare to work with you cant do many things that a normally you would be able to do with sql.

  2. Nathan
     

    FileMaker pro comes with ODBC/Sequelink or JDBC for Java.. If you needed better SQL support you could buy DataDirect’s latest version of their ODBC for FileMaker Pro. Or maybe the latest version of FileMaker pro comes with a better DataDirect driver. I don’t know.

  3. Asad
     

    One other quirk I have come accross if the date fields – when trying to input using the ODBC/Sequelink driver using the format dd/mm/yyyy throws up an exception – I found this when entering ‘high’ values such as 30/12/2007 – for some reason ODBC/Sequelink doesn’t like this! The work around i employed was to input in the format dd/mm/yy. have you come accross this?

  4. Nathan
     

    I have not used anything with dates. It probably throws an exception because it expects the date format to be in the american standard mm/dd/yyyy. It could also be that it always expects a 2 digit year. I wouldn’t be suprised.

  5. Kevin
     

    On the desktop end, you can’t use the AS keyword in your query to alias column names when working with Microsoft Query. This means writing SequeLink->FileMaker queries from any of the Office line of products will not work with the AS keyword.

  6. Tom
     

    I’m getting the TCP/IP connection refused response…been at if for hours. Confident I’ve set everything up right, but it just won’t connect. Using FM 9 pro on Mac OSX leopard.
    any ideas?

  7. Mike
     

    About the slowdown — I’ve noticed that the FMP server gets pegged at 100% CPU when a JDBC (or ODBC) client makes a request for column metadata, via the “DatabaseMetaData.getColumns” call. Even on a production server, this command takes up to 15 minutes to complete! This could also explain your slowdown.

    Also, I’ve noticed that column names with length >= 64 characters appears to cause issues for the driver, resulting in an “error in result columns” error. Rename the column, or alias it in your query, to avoid this issue.

  8. Sammond
     

    I too am getting the TCP/IP connection refused when trying to connect using FM9 to FM9 on Tiger.

    Interestingly, I can connect using FM9 to FM6, however with the older version it fails to recognise multiple files no matter what the DSN is set to! :(

  9. Han
     

    Same to you Sammond I get the TCP/IP connection refused when trying to connect using FM9 to FM9 Serevr Adv on Win. XP

    Sequelink Error : 2306

    what’s wrong..????
    come on FileMaker…. please Help me..!!!!! :(

  10. Nathan
     

    Are you using the latest version of Sequelink driver that comes with FileMaker Pro 9 or are you still using the Sequelink driver that comes with FileMaker Pro 6.

  11. Dave
     

    Looks like FMP8+SequeLink5.4 does require dates in a 2-digit year format. I was trying to insert a whole bunch as 4-digit – some would insert, some would except. In 2-digit, everything inserts. (Luckily, all dates are fairly current – I don’t have to worry about the wrong century!)

  12. Urban
     

    I get the password incorrect error though I´m absolutly sure I am using the correct password. I changed the password and tried again with the new one but got the same error. When retreiving data from Filemaker database to MS Excel it works just fine with the same driver but not from a C# application using the connectionstring: “DRIVER={DataDirect 32-BIT SequeLink 5.4};Hst=localhost;Prt=2399;dsn=Filemaker_Felrapport;db=Felrapport_RevA;uid=admin;pwd=******”;
    What am I doing wrong?

  13. Nathan
     

    Are you using any weird characters in your password? Maybe the driver doesn’t agree with them. As for it working in Excel and not C#, don’t know.

  14. Urban
     

    Problem solved when using this connectionstring:
    “Dsn=Felrapport;Driver={DataDirect 32-BIT SequeLink 5.4};uid=Admin;pwd=******;sdsn=Felrapport_RevA;hst=localhost;prt=2399″
    Im not going to bother with trying to understand why, Im just glad it works.

  15. Bill
     

    I am running the SequeLink drivers (ivslk20.dylib) on Mac Os X (10.4.11). I get the TCP/IP connection refused error when trying to use ODBC to connect to FM9 Server running on a remote Mac server. This happens from either MS Excel or FM7 as client to the FM9 server. (By the way, I have it working with FM9 Pro serving on localhost.)

    Any advice?

  16. Nathan
     

    Make sure there is no firewall blocking the connection. Make sure ODBC sharing is turned on, on the remote mac server and that you are using the correct port to connect to and that the remote mac server has those ports open/forwarded. You could try to telnet to the address to see if you can establish a connection. If you can then there is something wrong with your connection string.

  17. terry carter
     

    i’m trying to use filemaker pro 6, 7, or version 9 as a datasource; and have excel connect via odbc to run sql queries; but i can’t find the correct odbc driver

    i’m in mac os x, leopard; but can do it in vista if necessary too

    can anybody help me find a link to the correct odbc driver to use.

    thank you

  18. Nathan
     

    It comes on the FileMaker cd and is called SequeLink. If you read FileMaker’s ODBC connectivity documentation it will tell you where it is located.

    http://www.filemaker.com/help/15-Using%20ODBC.html

  19. Eric Briggs
     

    I’ve managed to connect to a FMP9 database through the SequeLink driver Ok, I can insert records Ok, but whenever I use the ‘WHERE’ clause either a ‘SELECT’ or ‘UPDATE’ statement I get the dreaded ‘Parse error in SQL’ message. I’ve surrounded fields/column names with single/double quotes with no success, any ideas?

  20. Nathan
     

    What is your SQL statement?

  21. Nathan
     

    Here’s an example of an UPDATE WHERE statement.

    UPDATE “MyTable” SET “Column1″=’Value’,”Column2″=’Value2′
    WHERE “RecordID”=’Record ID: 1001′

    I have it so that database object names are double quoted and that strings are single quoted and dates are {}’ed. Example:

    ..WHERE “FromDate”={MM/dd/yyyy}

  22. Eric Briggs
     

    Thanks Nathan,
    I’ll try the example tommorrow, I’m out of the office today.
    I’ve tried lots of permutations of the ‘UPDATE’ command, to make it work I’ve even reduced the number of update fields to one, as well as only one search field and hardcoded the field contents. I’ve tried several variants of the single and double quotes.
    eg latest attempt.
    UPDATE ‘Article’ SET ‘articletype’='xxxxx’ WHERE ‘articleid’ = ‘phil01_1505′ ;
    I’ll try your permutation to see if it works.
    Thanks

  23. Eric Briggs
     

    Your mixure of single and double quotes works! I’ve also found that FM dosen’t like the ‘;’ at the end of an SQL command with the ‘WHERE’ clause. I don’t think I’ll try SQL JOINS or ALTERS with FM.

  24. aguspiza
     

    ODBC Prepared Statements do not work for LONGVARCHAR when you try to insert very long (>65000 chars) data. It is a known missing feature of de DataDirect SequeLink ODBC Driver

  25. aguspiza
     

    INSERT INTO (longtextcolumn) SELECT ‘longtext’

    for longtext > 800 chars or even less

    hungs DataDirect SequeLink OBDC driver so you have to restart FileMaker Server

  26. aguspiza
     

    With DataDirect SequeLink OBDC driver:

    SELECT count(*) FROM table

    is VERY SLOW! for every 200 records you get a 0.1 seconds delay!.
    i.e. for a 5000 records table, that query will take 2.5 secs to execute

  27. aguspiza
     

    With DataDirect SequeLink OBDC driver in general it takes 1 second to retrieve 2000 records of a query result

  28. Bill
     

    Thanks for these tips – you saved me!

  29. Jer
     

    Here’s a strange one: I can’t enter a date into the FileMaker database via a SQL Insert statement. If I enter it as ‘10/10/2008′ it throws an error, and when entered as 10/10/2008 it sees it as division and enters it as 10 divided by 10 divided by 2008. Any ideas?

  30. Nathan
     

    Have you tried 10/10/08?

  31. Ingo
     

    For Date, Time or Timestamp fields, you must use the appropriate ODBC literal, e.g. {d 2008-10-10} or {t 23:49:15} or {ts 2008-10-10 23:49:15}

  32. SurturZ
     

    FM Pro 9 only seems to allow ODBC connections using the loopback IP (127.0.0.1) … is this correct??

    Also, I am having tremendous troubles doing SELECTs where the fieldnames have spaces in them. Using double quotes seems to crash FM! Any ideas? I can’t change the field names; it is a third-party system.

  33. SurturZ
     

    To add to your list:

    [DataDirect][ODBC SequeLink driver][SequeLink Server]Authorisation failure.
    Problem: When using FileMaker Pro (as opposed to FileMaker Server), the only allowable IP address is the loopback IP address 127.0.0.1
    Solution: This seems to be by design. Use the loopback IP address 127.0.0.1

  34. SurturZ
     

    Another one for your list:

    [DataDirect][ODBC SequeLink driver][SequeLink Client]TCP/IP, connection reset by peer
    Problem: A firewall is blocking the FileMaker ODBC driver.
    Solution 1: Ensure you firewall allows FileMaker access to the network, and that the ODBC port for Filemaker (usually 2399) is open.

  35. Nathan
     

    @Surturz: Try enclosing the field names in double quotes, otherwise it might not work.

  36. YB
     

    Client of mine is using Shopworks with FIlemaker Pro. I have an application (VB) pulling data using the Filemaker pro driver. when shopworks is shut down and restarted and I try to pull data I get an ODBC error. If I shut down my application once shopworks is shut down and restart it I get a good connection. The only other time I have seen this is when I have made connections to a MYSQL database. The driver is quirky at best and sometimes doesnt make a good connection. Any ideas…

  37. Nathan
     

    It sounds like an issue with your application. If you can’t get it working unless you restart your application, then something is wrong with your application. Perhaps it doesn’t gracefully detect connection intermittentency.

  38. Mike H.
     

    Hi, one thing I came across that was causing errors like “Number contains an invalid character” and “The value of the current row cannot be obtained for the column ___ – conversion not permitted” when using a linked server connection from SQL Server 2008 to FileMaker was that the “Allow InProcess” option for the MSDASQL provider must be UNchecked. It is checked by default. I found this by experimenting.

  39. Carlos
     

    Hi sorry for my english i’m trying to make a program to export filemaker DB to a MysqlDB. There’s no problem with the filemaker file opened. But i want to do it without open it. Please help. Thnx for reading me

  40. Carlos
     

    Here the error:
    ERROR [HY000] [DataDirect][ODBC SequeLink driver][SequeLink Client]TCP/IP error, connection refused
    ERROR [HY000] [DataDirect][ODBC SequeLink driver][SequeLink Client]TCP/IP error, connection refused
    your solution is to open the file. Is it absolutely necessary??

  41. David L
     

    Trying to insert data into a text field in FM, and I get the error “Binding to SQL_LONGVARCHAR/SQL_WLONGVARCHAR is not supported”. I found that by changing the text field properties in FM and making the max length 255 (or whatever), the error goes away – but the application exporting the data (simpleindex.exe) still throws out a spurious error that the user may not have write access to the database. I tried using “Limit Cursor Column Size” in the connection string as recommended in the Sequelink Developers reference, but I’m not sure what number I should set it to. So I cannot get simpleindex to export text data directly to FM. For now, I have to export to MYSQL and use the very nice MYSQL ODBC driver to connect to FM. That works but I would prefer not to have that extra layer.. any ideas ?

  42. David L
     

    Further to my above post.. the Limit Cursor Selection Size’ (LCCS) attribute is actually in Sequelink 6.0, not 5.5. Its is an attribute specific to Filemaker. I installed the trial version of 6.0 and it works – I can now insert data into text fields.. BUT I would have to BUY version 6.0, Filemaker only ship v 5.5…. which is now 4 years old ! While testing all of this I also found out that exporting my data directly to FM using Sequelink took 38% longer than exporting to MYSQL and from MYSQL to FM.

  43. Nathan
     

    If you are using Windows 7 and you receive an error “Unable to open file (802)” when trying to access a FM database via ODBC, then you should update to the latest version of 10, which is 10.0v3. After upgrading I no longer received this error when attempting to connect to the database.

  44. A Sawyer
     

    I am getting the error
    [datadirect][ODBC SequeLink Driver]File not found ‘odbc.ini’
    when I try to test the System DSN that I created.
    This is on Mac Snow Leopard with FM 10 Pro Advanced installed.

    Any ideas?

  45. Squiten
     

    Regarding the problem with connection refused, Ive also posted it on the fmforums.com

    Ive experienced the same error a couple of times both on my developer machine and server, usually with a interval of 3-8 weeks apart.

    There are 2 items to check.

    1. Is the server listing on port 2399
    This can be checked the following way
    Run -> cmd -> netstat -a

    2. Is SLSocket54 causing a error
    This can be checked the following way
    Administrative tools -> Event viewer
    Usually it shows 2 errors or 5 errors in the
    Event viewer

    If only the first one is present, then a restart of the server should do the trick.

    If both 1 and 2 is present, then the error is placed in starting the SLSocket54 service.
    This can be fixed by first stopping the server, then deleting everything in the folder “Filemaker server\Extensions\Plugins\xDBC Support\logging”

    If this does not solve the problem, then a reinstall of the server is required. First uninstall and check if the above folder is also deleted, if not then delete it and reinstall.

    If the above folder is not deleted, the problem will persist.

    I think the problem is caused by some kind of corruption of the file “Filemaker server\Extensions\Plugins\xDBC Support\logging\SLSocket54.trc”

    Hope this helps.

  46. Ewout
     

    [DataDirect][SequeLink JDBC Driver][ODBC Socket][DataDirect][ODBC FileMaker driver]Invalid character value. Error in column 5.

    This appeared to be caused by a Time column with a time greater then 24h. The column number is base 1, so examining the nth column of your query may be helpful.

  47. Pequeajim
     

    Does anyone have an example of VB connecting to a FM?

    I have 10 advanced server and have configured the Data Direct 5.5 ODBC driver. I can connect to the server with a SQL client, see the tables, browse, etc.

    My next step is to write a small VBA application that will insert a record into the DB.

    Any help would be appreciated

Leave a Reply