ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →無償トライアル:
無償トライアルへ製品の情報と無償トライアルへ:
Exact Online ODBC ドライバーは、ODBC 接続をサポートする任意のアプリケーションからリアルタイムなExact Online データに直接接続できるパワフルなツールです。標準のODBC ドライバーインターフェースを使用して、データベースのようにExact Online にアクセスし、アカウント、事業部、営業案件などの読み、書き、更新を実行できます。
古川えりか
コンテンツスペシャリスト
インターネット上には、膨大な数のPostgreSQL クライアントが存在します。標準ドライバーからBI、Analytics ツールまで、PostgreSQL はデータアクセス用の一般的なインターフェースです。 ODBC Drivers に含まれるSQL Gateway を使用することで、どの標準クライアントからでも接続が可能なPostgreSQL エントリポイントを作成することができるようになります。
Windows でPostgreSQL データベースとしてExact Online データにアクセスするには、CData SQL Gateway およびODBC Driver for ExactOnline、EnterpriseDB のMySQL 外部データラッパーを使用します。この記事では、外部データラッパーをVisual Studio でコンパイルして拡張機能としてインストールし、PostgreSQL Server からExact Online データをクエリします。
接続プロパティが未設定の場合は、まずデータソースのODBC DSN で設定します。これはドライバーインストール時の最後の手順にあたります。Microsoft ODBC データソースアドミニストレーターを使ってODBC DSN を作成および設定できます。
Exact Online はOAuth 認証標準を使用します。埋め込みクレデンシャルを使用する、またはExact にOAuth アプリを登録して独自のクレデンシャルを取得できます。 OAuth 値に加え、Region を指定します。Division が設定されない場合は、デフォルトのDivision が使用されます。
詳しくは、ヘルプドキュメントの「はじめに」を参照してください。
MySQL リモートサービスは、クライアントからのMySQL 接続の受信を待機するデーモンプロセスです。CData SQL Gateway でMySQL リモートサービスを構成するには、SQL Gateway の概要にあるセットアップガイド を参照してください。
外部データラッパー(FDW)は、PostgreSQL を再コンパイルすることなく拡張機能としてインストールできます。Unix ベースのシステムでPostgreSQL を実行している場合、PostgreSQL Extension Network(PGXN)を使用してFDW(mysql_fdw)をインストールできます。Windows でPostgreSQL を実行している場合は、拡張機能をコンパイルして最新バージョンを使用していることを確認してください。以下のステップに従って、Visual Studio から拡張機能を構築するのに必要な編集を行います。
外部データラッパーを構築するために、以下を行います。
必要なソフトウェアとソースコードを取得したら、Visual Studio で拡張機能をコンパイルする準備ができました。以下のステップに従い、mysql_fdw ソースを使用してプロジェクトを作成します。
以下のステップに従ってプロジェクトを構成します。
以下のステップに従って必要な依存関係を追加します。
postgres.lib
libmysql.lib
WS2_32.lib
Secur32.lib
さらに、「Inherit From Parent」または「Project Defaults」がチェックされていることを確認します。
MyMySQLConnectorCInstallation\include
MyPostgreSQLInstallation\MyPostgreSQLVersion\include\server\port\win32_msvc
MyPostgreSQLInstallation\MyPostgreSQLVersion\include\server\port\win32
MyPostgreSQLInstallation\MyPostgreSQLVersion\include\server
MyPostgreSQLInstallation\MyPostgreSQLVersion\include
プロジェクトを設定したら、Visual Studio でmysql_fdw を構築するために以下の変更を加えます。
#define dlsym(lib, name) (void*)GetProcAddress((HMODULE)lib, name)
#define dlopen(libname, unused) LoadLibraryEx(libname, NULL, 0)
mysql_dll_handle = dlopen(_MYSQL_LIBNAME, RTLD_LAZY | RTLD_DEEPBIND);
mysql_dll_handle = dlopen("libmysql.dll", 0);
__declspec(dllexport) extern Datum mysql_fdw_handler(PG_FUNCTION_ARGS);
__declspec(dllexport) extern Datum mysql_fdw_validator(PG_FUNCTION_ARGS);
これで、Release 構成とビルドを選択できるようになりました。
DLL をコンパイルしたら次のステップに従って拡張機能をインストールします。
拡張機能をインストールしたら、次のステップに従ってExact Online データへのクエリの実行を開始します。
C:\> psql -U postgres
postgres=#CREATE EXTENSION mysql_fdw;
postgres=# CREATE SERVER ExactOnline FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host
'127.0.0.1', port '3306');
postgres=# CREATE USER MAPPING for postgres SERVER ExactOnline OPTIONS (username
'admin', password 'test');
postgres=# CREATE SCHEMA ExactOnline_db;
postgres=# IMPORT FOREIGN SCHEMA "CData ExactOnline Sys" FROM SERVER ExactOnline INTO ExactOnline_db;
これで、Exact Online へのread/write コマンドを実行することができるようになりました。
postgres=# SELECT * FROM ExactOnline_db."accounts";