Windows IoT Core と Raspberry Pi 3 での Actian Zen Edge 使用 株式会社エージーテック 2018 年 7 月 5 日
免責事項株式会社エージーテックは本書の使用を 利用者またはその会社に対して 現状のまま でのみ許諾するものです 株式会社エージーテックは いかなる場合にも本書に記載された内容に関するその他の一切の保証を 明示的にも黙示的にも行いません 本書の内容は予告なく変更される場合があります 商標 Copyright 2018 AG-TECH Corp. All rights reserved. 本書の全文 一部に関わりなく複製 複写 配布をすることは 前もって発行者の書面による同意がない限り禁止します すべての Pervasive ブランド名および製品名は Pervasive Software Inc. の米国およびその他の国における登録商標または商標です また すべての Actian のブランド名は Actian Corporation の米国およびその他の国における登録商標または商標です 文中の社名 商品名等は各社の商標または登録商標である場合があります Windows IoT Core と Raspberry Pi 3 での Actian Zen Edgw 使用 最終更新 :2018 年 7 月 5 日 2
目次はじめに 4 Windows IoT Core の設定 5 Actian Zen Edge のインストール 5 クライアントから Control Center で接続 6 クライアントからのアクセス 7 クライアントから Btrieve ファイル参照 7 Windows クライアントから SQL(ODBC) で接続 7 Non-UWP Btrieve API サンプルアプリの作成 実行 8 3
はじめに Actian Zen で新たに IoT 環境がサポートされました 本書では Raspberry Pi 3 に OS として Windows IoT Core をインストールした環境での Actian Zen Edge 設定 使用手順をご案内いたします Windows IoT Core は他の x86 環境と比べリソースに制限があるため Actian Zen Server/Workgroup の GUI ツール (Control Center 等 ) は含まれていません Windows IoT Core で Actian Zen Edge を使用するための設定に加え Windows 環境から接続して 設定等を行う手順についてもご案内します IoT 環境でのデータベースを利用した案件で Actian Zen Edge をご利用いただければ幸いです 4
Windows IoT Core の設定 現在の Windows IoT Core のリリースでは コードページは デフォルトで "Western European 1252" に設定されています コードページを変更するには PowerShell を使用します Actian Zen Edge が日本語の Shift-Jis データを処理できるために コードページを Microsoft Windows 932 に変更します 次の PowerShell コマンドを使用します Set-ItemProperty -Path HKLM: SYSTEM CurrentControlSet Co ntrol Nls CodePage -Name ACP -Value 932 Actian Zen Edge のインストール ターゲットシステムで管理者として PowerShell セッションを開始します 1. インストールの Install-Zen-IoT-yy.yy-zzz.zzz.winuwp.arm32.zip アーカイブを展開します PowerShell Expand-Archive コマンドレットを使用できます たとえば temp フォルダーにあるアーカイブを新しいフォルダー C: temp に展開するには 次の PS コマンドを使用します yy.yy-zzz.zzz は ビルド番号を表す 13.11-012.000 のような文字列です PS> Expand-Archive -Path "$env:temp Install-Zen-IoT-yy.yy-zzz.zzz.winuwp.arm32.z ip" -DestinationPath "C: temp" 2.PS コマンド Install-PSQL.ps1 server を使用し Actian Zen Edge をインストール します たとえば.zip ファイルを C: temp PSQL に展開した場合は 以下のコマ ンドを実行します PS> C: temp PSQL Install-PSQL.ps1 server 5
3.Windows IoT Core システムへの Actian Zen Edge のインストールでは Windows ファイアウォール規則によってファイアウォールを介した通信を可能にする必要があります これらの規則はデフォルトでは有効になっていません これらの規則を有効にするには デフォルトの Actian Zen Edge インストールの C: Program Files Actian PSQL bin に格納されている PowerShell スクリプト PS> & "C: Program Files Actian PSQL bin Enable-PsqlFirewallRules.ps1" Enable-PsqlFirewallRules.ps1 を実行します インストールの詳細は Getting Started with PSQL 製品マニュアルの Windows Nano Server および Windows IoT Core への PSQL のインストール セクションを参照してく ださい クライアントから Control Center で接続 クライアントの Control Center から [ エンジン ]->[ 新規作成 ]->[ サーバー ] で Raspberry Pi 3 のマシンを追加します DNS 等で名前解決ができるように設定していない場合 IP アドレスで指定します マシン名 (IP アドレス ) をダブルクリックして 接続します 6
クライアントからのアクセス Actian Zen Edge 製品に対し Windows および Linux クライアントから全ての Actian Zen インターフェイス (Btrieve API DTI ODBC ADO ADO.NET JDBC) がサポートされています また Windows IoT Core 上の Actian Zen Edge 製品がインストールされている環境からは Actian Zen Server Workgroup および Linux Server 他の Actian Zen Edge 製品がインストールされている環境に対し Btrieve API と DTI のアクセスがサポートされています Raspbian Linux 上で Actian Zen Edge 製品がインストールされている環境からは Btrieve API DTI JDBC 及び ODBC のアクセスがサポートされています クライアントから Btrieve ファイル参照 フォルダー共有が設定された場合 UNC 形式で指定するか Btrieve URI 形式で接続しま す 例 : 共有名で使用 サーバ名 c$ Data ProgramData Actian PSQL demodata person.mkd 例 :URI で使用 btrv:// サーバー名 /demodata?table=person Windows クライアントから SQL(ODBC) で接続 クライアントから ODBC で接続するには ODBC Administrator から DSN を追加します サーバー名にサーバー名または IP アドレスを設定し リストの取得 を行います リストボックスにデータベースがリストされますので 該当のデータベースを選択します 7
これで ODBC データソースを指定して SQL アクセスが可能です Non-UWP Btrieve API サンプルアプリの作成 実行 C 言語サンプル (btrsamp.c) のコンパイル 実行は次の手順で行います 1. サンプルが含まれる Btrieve API SDK をダウンロード次の WEB ページから Btrieve API SDK をダウンロードします https://www.agtech.co.jp/support/reference/actian/psqllib/access_methods/btrieve.ht ml Windows IoT Core 用のアプリケーションは一般の Windows 環境上でインストールされている Visual Studio 2017 でビルドします そのため Windows 用の Btrieve SDK 13.11.013.000 以降を使用します PSQL-SDK-Btrieve-yy.yy.zzz.zzz.exe 2. Visual Studio 2017 の ARM32-bit 用の ARM 用 Visual Studio C++ コンパイラと ライブラリ コンポーネントをインストールします 3.Visual Studio 2017 の構成マネージャーで ARM のプラットフォームを選択します 4. ダウンロードした SDK を解凍します 新規 Windows コンソールアプリケーションのプロジェクトを作成し 通常の Win32 の Btrieve アプリケーションと同じようにプロジェクトプロパティで 全般 -> 文字セット を マルチバイト文字セットを使用する に設定 8
VC++ ディレクトリ -> インクルードディレクトリ に Btrieve Intf c を追加 C/C++ -> プリプロセッサ -> プリプロセッサの定義 で BTI_WIN_32 を定義 C/C++ -> コード生成 -> 構造体メンバーのアライメント を 1 バイト (/Zp1) に設定 C/C++ -> プリコンパイル済みヘッダー -> プリコンパイル済みヘッダー を プリコンパイル済みヘッダーを使用しない に設定 リンカー -> 入力 -> 追加の既存ファイル に w3btrv7.lib を追加しますが arm32 用の w3btrv7.lib ライブラリを参照するため VC++ ディレクトリ > ライブラリディレクトリ に SDK の Btrieve Intf Implib winuwp arm32 フォルダーを追加します 5.Btrieve Intf c btrsamp.c にあるコードをアプリケーションのエントリポイントの cpp ファイルで使用し プロジェクトに Btrieve Intf c btrapi.c を追加します 6.Windows IoT Core では PSQL は通常と違うところにインストールされているため 下記の FILE1_NAME と FILE2_NAME の定義を下記のように変更します : #define FILE1_NAME "c: Data ProgramData Actian PSQL samples sample.b tr" #define FILE2_NAME "c: Data ProgramData Actian PSQL samples sample2. btr" 7. 最初にビルドを行う時 下記のエラーが発生する可能性があります : MSB8022 {0} プラットフォームのデスクトップアプリケーションのビルドはサポートされていません この問題を回避するには 一旦プロジェクトを終了し *.vcxproj プロジェクトファイルをテキストエディタで開いて ARM の PropertyGroup の設定の所 : <WindowsSDKDesktopARMSupport> true </ WindowsSDKDesktopARMSupport> を追加します 9
例 : <PropertyGroup Condition="'$(Configuration) $(Platform)'=='Release ARM'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>MultiByte</CharacterSet> </PropertyGroup> を <PropertyGroup Condition="'$(Configuration) $(Platform)'=='Release ARM'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseDebugLibraries>false</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>MultiByte</CharacterSet> <WindowsSDKDesktopARMSupport>true</WindowsSDKDesktopARMSupport> </PropertyGroup> に変更します 詳細は : https://developercommunity.visualstudio.com/content/problem/216867/visual-studio- 2017-with-windows-sdk-16299-broke-at.html を参照して下さい 8. プロジェクトを再度 Visual Studio 2017 で開いて ビルドします 9. 出来上がった EXE ファイルを PowerShell に移動し PowerShell で起動します 10