1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claris FileMakerのODBC経由で.NET C#のプログラムが落ちる問題

Last updated at Posted at 2024-04-20

はじめに

この記事はClaris FileMakerでODBCによるデータ操作を検証し、 うまくいかなかったという事を発見した 内容となります。

Claris FileMakerとは

データベース管理とカスタムアプリケーション開発を容易にするための多機能プラットフォームです。
※ AI様より。

環境

  • FileMaker Pro 2023
  • Windows 11 Pro
  • Claris FileMaker 2023 向け xDBC クライアントドライバ
  • Visual Studio 2022
  • .NET8
  • C#

サンプルプログラム

以下のサンプルプログラムでテストしてみました。

// ODBCのデータソース名、ユーザー名、パスワードを設定
string connectionString = "DSN=データソース名;UID=ユーザー名;PWD=パスワード";

// ODBC接続を開く
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
    try
    {
        // 接続開始
        connection.Open();

        // SQLクエリ
        string query = "SELECT * FROM \"テーブル名\"";

        // ODBCコマンドの作成
        OdbcCommand command = new OdbcCommand(query, connection);

        // クエリ実行
        using (OdbcDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                // ここで、読み取ったデータを表示
                Console.WriteLine(reader[0].ToString()); // ここでエラーになる!
            }
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    finally
    {
        // 接続を閉じる
        if (connection.State == System.Data.ConnectionState.Open)
        {
            // 接続終了
            connection.Close();
        }
    }
}

上記プログラムで 「ここでエラーになる!」 の箇所でExceptionに飛んだ実行結果は下記のものとなります。

実行結果

StackTrace.Messege
Arithmetic operation resulted in an overflow.
Exception.StackTrace
at System.IntPtr.ToInt32()
at System.Data.Odbc.SQLLEN.op_Implicit(SQLLEN value)
at System.Data.Odbc.OdbcDataReader.GetSqlType(Int32 i)
at System.Data.Odbc.OdbcDataReader.GetValue(Int32 i)
at System.Data.Odbc.OdbcDataReader.get_Item(Int32 i)

放置された問題

この問題をネットで調べていると、先人の方が似たような問題に直面している事を発見しました。
11年くらい前から似たような現象があるので.NETで使うのは厳しいのかもしれません。
検証してませんがSelect文は通るのでUpdateやDeleteも成功しそうです。
ただし、Selectの結果が確認できないので、ODBC経由でデータ操作をするのは難しいかもしれません。

FileMaker ODBC Client Driver 64bit版の不具合

There is an error in the syntax of the query

解決策

Claris FileMaker 2023 Data APIというものがあり、RestAPI経由での連携が主流の様です。
※ ODBC接続は非推奨になっているようです。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?