2011-07-26 2 views
1

Mac OS X 10.7 (빌드 : 11A511) Lion에서 AppleScript 2.2로 AppleScript 응용 프로그램을 만들고 있습니다. 내 응용 프로그램이하는 일은 현재 iTunes 노래를 캡처하여 노래가 마지막 노래와 다른 경우 저장하는 것입니다. 그런 다음 현재 노래를 가져 와서 Database Events를 사용하여 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를 설정하십시오. 또한 그 수를 올 Y 른 경우 새 레코드를 추가하기 전에 수를 가져 오려고하기 때.에 새 레코드를 작성하는 위치보다 먼저 해당 행을 넣으십시오.

+0

나 자신을 더 잘 말할 수 없었습니다. :) – fireshadow52

+0

당신이 너무 많은 친구! 정말로 도움이된다! – Clement