1

インポートされたいくつかの mySQL テーブルに新しいエントリを挿入するファイルメーカー スクリプトがあります。これらのエントリの一意の ID を作成時に (前または後、いずれかの方法で) 取得する必要があるため、後でスクリプトでそれらを参照できます。これは、SQL では簡単に実行LAST_INSERT_ID()できますが、filemaker では方法が見つからないようです。

私が試したことはうまくいきませんでした:

  • GetNextSerialValue ( Get ( FileName )&".fp7" ; "jos_users::id" )
    #何も返さない、ODBC テーブルでは正しく機能しない
  • Get (レコード ID)
    #ローカル値が mySQL の一意の ID に対応していません

前もって感謝します!任意の提案をいただければ幸いです。

4

1 に答える 1

3

MySQL テーブルにどのようにレコードを作成していますか? 新しいレコードを挿入するために FileMaker の ESS とネイティブの「新しいレコード」コマンドを使用していますか、それとも Execute SQL[] スクリプトステップを使用していますか? それとも何か違う?

次のシリアル値と recordID 値は FMP 固有であり、ここでは適用されません (MySQL プライマリ キーが FMP によって管理されるシリアル値でない限り)。

「新規レコード」を使用すると、FileMaker はレコード コンテキストを新しいレコードに設定します。したがって、「jos_users」テーブルのオカレンスが MySQL テーブルのエイリアスである場合、「New Record」を呼び出すと、そのレコードのコンテキストに配置されます。次に、「id」列の内容に変数を設定できます。

Go To Layout ["jos_users" (jos_users)]
New Record/Request
Commit Records/Requests[No dialog]
Set Variable [$lastInsertID; jos_users::id]

これは、レコードの挿入時に MySQL レコードに適切な ID が与えられ、適用した検証チェックに合格してレコードをコミットできることを前提としています。

他のプロセスを使用してレコードを作成している場合は、お知らせください。値を取得する方法をアドバイスできます。

于 2009-07-20T21:55:11.167 に答える