Filemaker Pro 10: как получить уникальный идентификатор последней вставки в таблицы MySQL (ODBC) - PullRequest
1 голос
/ 09 июля 2009

У меня есть скрипт filemaker, который вставляет новую запись в несколько импортированных таблиц mySQL. Мне нужно получить уникальный идентификатор этих записей по мере их создания (до или после, так или иначе), чтобы я мог ссылаться на них позже в сценарии. Это легко сделать в SQL с LAST_INSERT_ID(), но я не могу найти, как в filemaker.

То, что я пробовал, не сработало:

  • GetNextSerialValue (Get (FileName) & ". Fp7"; "jos_users :: id")
    # ничего не возвращает, некорректно работает с таблицами ODBC
  • Get (RecordID)
    # Локальное значение не соответствует уникальному идентификатору mySQL

Заранее спасибо! Любые предложения приветствуются.

1 Ответ

3 голосов
/ 21 июля 2009

Как вы создаете записи в своей таблице MySQL? Используете ли вы FileMaker ESS и собственную команду «Новая запись» для вставки новой записи, или вы выполняете шаг сценария «Выполнить 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 присваивается правильный идентификатор во время вставки записи и что запись может быть зафиксирована с помощью любых проверок, которые вы применили.

Если вы создаете записи с использованием какого-либо другого процесса, сообщите нам об этом, и мы посоветуем вам, как получить значение.

...