2009-07-09 4 views
1

J'ai un script filemaker qui insère une nouvelle entrée sur plusieurs tables mySQL importées. Je dois obtenir l'identifiant unique de ces entrées au fur et à mesure de leur création (avant ou après, de toute façon) afin que je puisse y faire référence plus tard dans le script. C'est facile à faire en SQL avec LAST_INSERT_ID(), mais je n'arrive pas à trouver comment dans Filemaker.Filemaker Pro 10: Comment obtenir l'ID unique de la dernière insertion sur les tables mySQL (ODBC)

Ce que j'ai essayé n'a pas fonctionné:

  • GetNextSerialValue (Obtenir (NomFichier) & » .fp7" ; "jos_users :: id")
    #returns rien, ne fonctionne pas correctement tables ODBC
  • Get (RecordID)
    valeur #local ne correspond pas à l'ID unique de mySQL

Merci d'avance! Toutes les suggestions sont appréciées.

Répondre

3

Comment créez-vous les enregistrements dans votre table MySQL? Utilisez-vous la commande ESS et la commande "New Record" native de FileMaker pour insérer le nouvel enregistrement ou utilisez-vous l'action de script Execute SQL []? Ou quelque chose de différent? Les valeurs de série et d'enregistrement suivantes sont spécifiques à FMP et ne s'appliquent pas ici (sauf si votre clé primaire MySQL est une valeur série gérée par FMP). Avec "Nouvel enregistrement" FileMaker définit le contexte d'enregistrement du nouvel enregistrement. Donc, si votre occurrence de table "jos_users" est un alias de la table MySQL, l'appel de "New Record" vous placera dans le contexte de cet enregistrement. Vous pouvez ensuite définir une variable sur le contenu de la colonne "id".

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

Cela suppose que votre dossier MySQL est donné une pièce d'identité appropriée à un temps record d'insertion et que le dossier peut être commis passer des contrôles de validation que vous avez appliqué.

Si vous créez des enregistrements en utilisant un autre processus, faites-le nous savoir et nous pourrons vous conseiller sur la façon d'obtenir la valeur.

Questions connexes