4 返信 最新の回答 日時: Apr 2, 2009 9:31 AM ユーザー:Nbazaro

    ファイルメーカー10不具合

    Nbazaro

      概要

      ファイルメーカー10不具合

      問題の内容

      ファイルメーカー9までを使い、さまざまなアプリケーションを作成使用しています。ファイルメーカー10を使って新機能を入れたかったのですが、以下の問題で苦労しております。1)SQLの文法チェックが厳しくなっている数字関係のフィールドは、必ず0または数字がないとエラーになる。ブランクはダメ。日付もブランクはだめ。主にMySQLサーバーを相手にしていますが、今までブランクで実施するケースがあるものはすべて変更を余儀なくされています。同様に、LOAD命令でも、そのフォーマトがLOAD側のフィールド数に合わないとエラーです。今までは、必要とするところまででOKでしが。ここまでは、エラー修正するか否かで対応可能です(テクニカルサポートには、この情報はまだ本部から来ていないとのこと)2)LOAD命令で、テキストフィールドがあるときに、エラーになることを発見しました。これは、その対象フィールドが数字かアルファベットであれな問題ないのですが、漢字でイリーガルエラーになります。「今月」を入れると、\X8D\xA1\X8C\X8Eでエラーと報告され、止まってしまいます。バージョン9までは、まったく問題なし。 SQLの対象をファイルメーカーにしては実施しておりませんが、これには参りました。その他は、1項の問題が大きく、なんとかすべてを書き換えるつもりですが、2項は原因がわからず、検証ストップ。LOAD命令を使わずINSERTで逃げる方法もありますが、この先が不安で開発は一時ストップです。どなたか知恵を拝借できないでしょうか。

        • 1. Re: ファイルメーカー10不具合
          YODA
            

          Nbazaro さん、こんにちは。

           

          1) の現象ですが,Windows XP (SP3) 上の MySQL 5.1.32 (MySQL Connect ODBC 5.1.5 使用) の環境で FM8/9/10 からの SQL 実行を比較してみましたが,どのバージョンでも数字のフィールドへの空データ("")送信はエラーになります。当方では,送信時の SQL 文を IsEmpty 関数を使用した計算式で切り替えていますがいかがでしょうか。

           

          2) 上記の環境でですが,やはりFM8/9/10を使用して MySQL へ2バイトコードのデータを送信する動作に差があることは確認できませんでした。エラーコードからすると,コードの処理がうまくできていない(UTF-8→SJIS?)のではないかと思われますが,MySQL 側のテーブルスキーマや、ODBC ドライバでのコードの指定等をご確認されてはいかがでしょうか。※当方の環境では,MySQLのデフォルト文字セットをUTF-8に設定しています。

           

          MySQL や ODBC Connector のバージョン等により動作が変わる可能性もあり,同じエラーが再現できていませんが,参考情報として挙げさせていただきます。

          • 2. Re: ファイルメーカー10不具合
            Nbazaro
              

            ご返事、ありがとうございます。コード問題は、MySQLは全てsjisに統一していましたので、FileMaker9まではうまくいっていました。このシステムに移行する前のDBが全てsjisで、そのデータを使ってシステムを再現したので、このようになっています。UPDATEでコードでひっかっかるので、逃げようがないようです。

            左側がMySQLでデータ元の右側がファイルメーカーです。`item_ms`.`size`でひっかっかっていますが、そのファイルメーカのデータは、例えば、

            L:(約)着丈57㎝ 胸囲94㎝ 肩幅25cm

            です。

             

            "UPDATE `item_ms` SET

            `item_ms`.`tag_id` = '"&公開_非公開::tag_id&"',
            `item_ms`.`tag_name` = '"&公開_非公開::tag_name&"',
            `item_ms`.`tag_price` = '"&公開_非公開::tag_price&"',
            `item_ms`.`material` = '"&公開_非公開::素材&"',
            `item_ms`.`wash` = '"&公開_非公開::手洗&"',
            `item_ms`.`button` = '"&公開_非公開::ボタン&"',
            `item_ms`.`grass` = '"&公開_非公開::草&"',
            `item_ms`.`weave` = '"&公開_非公開::織&"',
            `item_ms`.`knit` = '"&公開_非公開::編&"',
            `item_ms`.`stich` = '"&公開_非公開::刺&"',
            `item_ms`.`spin` = '"&公開_非公開::紡&"',
            `item_ms`.`color_dye` = '"&公開_非公開::色染料&"',
            `item_ms`.`size` = '"&公開_非公開::サイズ&"',
            `item_ms`.`comment` = '"&公開_非公開::備考&"',
            `item_ms`.`season` = '"&公開_非公開::季節&"'

            WHERE
            `item_ms`.`item_id` = '"&公開_非公開::item_id&"'"

             

            内容はとても単純なので、逃げは難しそうですが、コード問題とは

            判明しても、sjisを止めるのは現実的ではないので、もう少し試してみます。困りました!







            • 3. Re: ファイルメーカー10不具合
              Nbazaro
                 失礼をしました。データにSJIS特有のものが混じっていました。直近の不具合はそのせいです。あと1件が解決するか追って調べます。
              • 4. Re: ファイルメーカー10不具合
                Nbazaro
                  

                最終結論を挙げておきます。sjis環境では、LOAD命令では、MySQLへうまく漢字をロードすることができませんでした。Pro9まではOKです。

                仕方ないので、Pro9までは使用していたLOAD命令で実行している部分は全てINSERT命令に書き換えました。LOAD命令は、メーカー

                ではあまりテストがされていないのではと思われます。これで、ようやくPro10でシステムが動き始めるかと思います。基本テストは

                全て完了しています。助言を頂き、ありがとうございました。