При записи в файл SQLite в AppleScript 2.2 с приложением События базы данных - PullRequest
1 голос
/ 26 июля 2011

Я делаю приложение AppleScript с AppleScript 2.2 на Mac OS X 10.7 (сборка: 11A511) Lion.Что мое приложение делает, так это захватывает текущую песню iTunes и сохраняет ее, если песня отличается от предыдущей.Затем я сказал ему взять текущую песню и поместить ее в файл SQLite, используя Database Events.В основном это добавление текущей песни в новое поле, но когда песня меняется, она говорит, что старых полей нет, а затем записывает песню (процесс повторяется ...);У меня есть сохранение после того, как оно делает поле.

Мой код выглядит следующим образом:

        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

1 Ответ

2 голосов
/ 26 июля 2011

Кажется, вы немного смущены записями и полями.База данных имеет записи, а запись имеет поля.В вашем коде вы указываете базе данных подсчитывать поля ... что является проблемой, потому что в базе данных есть записи, а не поля.

Поэтому измените "поля" на "записи", где вы устанавливаете song_count.Кроме того, если вы хотите, чтобы этот счет был правильным, поместите эту строку перед тем местом, где вы создаете новую запись, потому что вы пытаетесь получить счет до того, как добавите новую запись.

...