2011-07-26 11 views
1

Mac OS X 10.7(Build:11A511)LionでAppleScript 2.2を使用してAppleScriptアプリケーションを作成しています。私のアプリケーションがやっていることは、現在のiTunesの曲をキャプチャし、曲が最後の曲と異なる場合に保存することです。それから、現在の曲をデータベースイベントを使用してSQLiteファイルに配置するように指示しました。基本的には、新しいフィールドに現在のソングを追加していますが、ソングが変更されると古いフィールドがないことを示してから、ソングを書き込みます(プロセスが繰り返されます)。フィールドを作った後で私はセーブを持っています。あなたがレコードとフィールドで少し混乱しているようだアプリケーションデータベースイベントでAppleScript 2.2でSQLiteファイルに書き込むとき

 if currentsong is not equal to previous_song then 

    tell application "Database Events" 
     tell database "songlist" 
      set song to make new record with properties {name:"songs"} 
      set song_count to count fields 
      tell song 
       make new field with properties {name:currentsong, value:song_count + 1} 
      end tell 
     end tell 
     save database "songlist" 
    end tell 

end if 

答えて

2

次のように

私のコードです。データベースにはレコードがあり、レコードにはフィールドがあります。あなたのコードでは、データベースにフィールドを数えるように指示しています...データベースにはフィールドではなくレコードがあるので、これは問題です。

したがって、「フィールド」を「レコード」に変更し、song_countを設定します。また、そのカウントが正しいようにする場合は、新しいレコードを追加する前にカウントを取得しようとしているため、新しいレコードを作成する場所の前にその行を置きます。

+0

それは自分自身をより良く言うことはできませんでした。 :) – fireshadow52

+0

あなたはとても仲良しです!確かに非常に役立つ! – Clement

関連する問題