2009-01-07

『FlexMy売管』を作るぞ! (3) --- FileMaker から MySQLに接続できない!?


【FileMaker/MySQL関連の追加情報】
『売上猫くん on MySQL』開発日記の記事一覧
FileMaker/MySQL関連の記事が増えてきたので、目次にしました。(2012/06/25追記)

AccessとFileMakerの実行速度比較テスト記事とその動画 (2011/11/17追記)

FileMaker Pro 10/11、MySQL 5.1、ODBC 5.1.6~によるフリーウェア『売上猫くん on MySQL 5.0β』をリリースしました。ダウンロードは→こちら。 (2011/01/27追記)



前回、MySQL でデータベースとテーブルを一つ作成したので、FileMaker から接続できるか、試してみることにする。

1. 事前準備
FileMaker は MySQL には ODBC 経由で接続するので、まず、MySQLのODBCドライバ 3.51をインストール、さらにシステムDSNとして登録した。 接続テストを実行すると、「Success; connection was made!」と表示されるので、ここまでは問題ない。

2. FileMaker Pro 9 で接続できない!?いざFileMaker Pro 9を起動してテスト用ファイルを作成。[ファイル]メニュー→[管理]→[外部データソース...]を選択し、上記で作成したDSNを指定。

さらに、[ファイル]メニュー→[管理]→[データベース...]→[リレーションシップ]タグを選択し、ウィンドウ左下にある“+”ボタンをクリックしてMySQLのテーブルを選択、“OK”すると、

「必要なテーブルが見つからないため、この操作は実行できません。」

とメッセージが表示されてしまう。 そんなこと言っても、FileMaker はテーブルとして認識してるやん?
この後、いろいろやってみたが、どうも FileMaker Pro 9 は、MySQLのテーブル、コラムに日本語が使用されていると、そのテーブルは使用できないらしい。 SQL-Server は日本語使っても全然問題ないのに…
試しに、日本語を英語に変更してみると、ちゃんと使用できる。

ただ、今回はSQL-Server ベースの『FlexSql売管』をできる限り手間をかけずMySQL に移植する(テーブルさえ全部作ってDSNを入れ替えれば、『FlexMy売管』があっという間にできるだろう)ということを前提としていたので、いまさらコラム名(フィールド名)を変更する気力は、、、、無い、 全然。
ということで、FileMaker Pro 10 のリリースをまって、再度試してみる(かも)。

【メモ】
  • 実は、MySQLコマンドでもデータベース、テーブル、コラムに日本語を使用していると、文字化けする。My.iniをいじったり、コマンドプロンプトの環境をUTF8にしたりしてみたが、問題は解消せず。ただ、MySQL Administrator だけは、データベース構造に日本語を使用しても問題なく認識してくれる。
  • ODBC5.1を使用してDSNを作成しても駄目。
  • FileMaker Pro 10 プレリリース版を使用してもやっぱり駄目。
新情報
FileMaker社は公式にサポートを言っていないが、MySQL ODBC 5.1 だと、日本語OK。 昨年の3月位から某案件で使用し始め、今のところ大きなトラブルは無し。 この某案件については、時間があれば書きたいな、っとこちら
(2010/2/5追記)
(2010/2/19追記修正)
(2010/3/25ODBC5.1の部分を打ち消す)

2008-12-19

『FlexMy売管』を作るぞ! (2) --- MySQL データベースを作ってみる

(FileMaker Pro 10/11、MySQL 5.1、ODBC 5.1.6 の環境であれば、→ここ(開発日記) とか ここ(日記番外) の方が参考になるかも。 2010/10/21追記 )

1. 取り合えず、リモートのMySQL Administrator で接続していみる

大分前にインストールしたMySQLの管理ツール MySQL Administrator と、今回インストールした MySQL 5.1 は異なるサーバ上にあるが、MySQL Administrator を起動して MySQL 5.1 に管理者権限でアクセスしようとすると、以下のエラーが出る。


    Could not connect to the specified instance.
    MySQL Error 1045.


MySQL 側に移動して、grant all priviledges on *.* to untara@"%" identified by "kantara" を実行し、ここで指定したユーザ名とパスワードとにより、リモートの MySQL Admin からアクセスできるようになる。 




2. Migrationツールはスキップ

MS SQL-Serverで作成した『FlexSql売管』のデータベースがあるので、本当ならこれを MySQL Migration Toolkit という奴で MySQLのデータベースに変換(マイグレーション)できるといいのだが、以前失敗してるので、今回はやめておく。



3. SQL-ServerでCreate文を生成し、MySQLでそのCreate文ファイル実行

まずは、create database flexmy うんたらとやって、データベースを作成。 

次に各テーブルは『FlexSql売管』の SQL-Server のデータベースから create table 文を生成して、MySQL側で実行しようと画策。 SQL-Server Management Studio Express を起動し、取引先テーブルを指定してcreate 文を作ると、こんな感じになる。

USE [neko]  //『FlexSql売管』のデータベース名
GO
/****** オブジェクト: Table [dbo].[取引先] スクリプト日付: 01/07/2009 13:35:41 ******/
SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[取引先](
  [〒] [varchar](8) COLLATE Japanese_CI_AS NULL,
  [Fax] [varchar](50) COLLATE Japanese_CI_AS NULL,
  [Tel] [varchar](50) COLLATE Japanese_CI_AS NULL,
 ~~~~~~~~~~ 中略 ~~~~~~~~~~
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF


この文章をtorihikisaki.sqlとして保存し、プロンプトの画面で、

  $ mysql flexmy < torihikisaki.sql

を実行するも、SQL-Serverの吐いたSQL文をそのまま実行できるはずも無く、紆余曲折の末、以下のように変更して上記コマンドを実行すると旨く行った。

CREATE TABLE 取引先(
  〒 varchar(8) NULL,
  Fax varchar(50) NULL,
  Tel varchar(50) NULL,
  ~~~~~~~~~~ 中略 ~~~~~~~~~~
PRIMARY KEY (id) );

以上でSQL-Serverのテーブル等は比較的簡単にMySQLに移植できそうなことが解かった。ところがこの後に思わぬ悲劇が待っていた。

以上

2008-12-17

Wi-Fi Skypeフォンは時期尚早

Wi-Fi Skypeフォン: PC無し、単体でSkypeが実行できるWi-Fi 対応の携帯電話機

どのメーカーもやる気がないようで、後継版も無く発売停止になるか、評判は概して芳しくない。

・Logitec Skype専用 無線LAN携帯 --- 悪評有、2008年以降ファームのアップ無、でも販売継続中
・Belkin Skype 専用 Wi-Fi® フォン --- 速攻で発売終了、後継機無し
・Buffalo WSKP2-G/BK --- 速攻で発売終了、後継機無し
・Panasonic KX-WP800 --- 比較的評判良し、2008年発売、高い、市場モニタ製品? 松下はやる気あんの?

Wi-Fiじゃ無く有線
Webt@lker5000 --- よさげ