0
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?

FileMakerとODBCを使ったデータ連携の手順

Last updated at Posted at 2024-09-03

はじめに

社内でFileMakerを使用している方もいるかと思いますが、今回はパブリッククラウドへのデータ連携などを行うために、FileMakerをデータソースとして利用できるかを検証してみました。

本記事の対象者

・基本的なプログラミングを理解している方
・FileMakerを利用している方

準備

・FileMakerProまたはFileMakerServerをインストールした端末
・Visual Studioなど、データ出力用のプログラムを開発できる環境

FileMakerとは

・プログラミングの知識がなくても、ドラッグ&ドロップで簡単にデータベースを作成できるローコードツールです。アドオンを使って、様々な機能を追加することも可能です。

検証

FileMakerの設定

FileMaker Proで、ODBC接続ができるようにユーザー設定と共有設定を行います。

・FileMakerで対象のテーブルを開き、
「ファイル」>「共有設定」>「ODBC/JDBCを有効にする」
を選び、共有を「オン」にします。
また、アクセスを許可するユーザーを設定します。
image.png

・ユーザーの追加は
「ファイル」>「管理」>「セキュリティ」
から行えます。
image.png

ODBCドライバのダウンロード

以下のサイトからFileMakerのODBCドライバをインストールします。インストールする際は、使用中のFileMakerのバージョンとOSに合ったドライバを選んでください。

なお、ODBCドライバは異なるデータベース間でデータをやり取りできるようにするためのソフトウェアで、データベースとアプリケーションの間の橋渡しを行います。

ODBCドライバのインストールと設定

ダウンロードしたODBCドライバをインストールし、その後ODBCデータソースアドミニストレーターを使用して接続設定を行います。

・まず、Windows 64bit版のドライバをインストールします。
image.png

・次に、ODBCデータソースアドミニストレーターを開き、システムDNSタブで「データソースの新規作成」を選択し、インストールしたODBCドライバを設定していきます。
image.png

・最後に、接続テストを実行して設定が正しく行われているか確認します。
image.png

C#コンソールアプリでデータを出力

C#のコンソールアプリケーションを使用して、FileMakerからデータをテキストファイルとして出力します。以下は、そのコード例です。

using System;
using System.Data;
using System.Data.Odbc;
using System.IO;

class Program
{
    static void Main(string[] args)
    {
        // ODBC接続文字列を作成(DSNを使用)
        string connectionString = "DSN=fmservername;UID=your_username;PWD=your_password";

        // ODBC接続を作成
        using (OdbcConnection connection = new OdbcConnection(connectionString))
        {
            try
            {
                connection.Open();

                // SQLクエリを定義
                string query = "SELECT * FROM test";

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

                // データリーダーを使用してデータを取得
                using (OdbcDataReader reader = command.ExecuteReader())
                {
                    // 書き出すテキストファイルのパスを指定
                    string outputPath = "output.txt";

                    using (StreamWriter writer = new StreamWriter(outputPath))
                    {
                        // カラム名を書き出し
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            writer.Write(reader.GetName(i) + "\t");
                        }
                        writer.WriteLine();

                        // データを一行ずつ書き出し
                        while (reader.Read())
                        {
                            for (int i = 0; i < reader.FieldCount; i++)
                            {
                                writer.Write(reader[i].ToString() + "\t");
                            }
                            writer.WriteLine();
                        }
                    }
                }
                Console.WriteLine("データの書き出しが完了しました。");
            }
            catch (Exception ex)
            {
                Console.WriteLine("エラー: " + ex.Message);
            }
        }
    }
}

結果

テキストファイルとしてデータを正常に出力することができました。

・ビルドファイル
image.png

・出力テキスト
image.png

注意

今回のテストは自身のローカル端末上内でFileMakerにODBC接続しましたが、対象のFileMakerファイルを開いた状態にしておく必要があります。

感想

参考となる記事が少なく、最初は戸惑いましたが、やり方が分かれば思ったより簡単にデータ出力ができました。FileMakerをデータソースとして利用するためのODBCに関する情報が少ないと感じました。おそらく、新規でFileMakerを使い始めるユーザーが減っているため、それに伴いFileMakerとパブリッククラウドのデータ連携の事例が少ないのではないかと思います。

0
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
0
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?