database - 使用应用程序数据库事件写入 AppleScript 2.2 中的 SQLite 文件时

标签 database sqlite applescript itunes database-events

我正在 Mac OS X 10.7(内部版本:11A511)Lion 上使用 AppleScript 2.2 制作一个 AppleScript 应用程序。我的应用程序正在做的是捕获当前的 iTunes 歌曲并在歌曲与上一首不同时存储它。然后我告诉它获取当前歌曲并使用数据库事件将其放入 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

最佳答案

看来您对记录和字段有点困惑。数据库有记录,记录有字段。在您的代码中,您告诉数据库对字段进行计数...这是一个问题,因为数据库有记录,而不是字段。

因此,将设置歌曲计数的“字段”更改为“记录”。此外,如果您希望该计数正确,则将该行放在创建新记录的位置之前,因为您要在添加新记录之前尝试获取计数。

关于database - 使用应用程序数据库事件写入 AppleScript 2.2 中的 SQLite 文件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6824569/

相关文章:

AppleScript 获取提醒中的事件列表?

macos - 从 AppleScript 检测不活动状态

database - 将 sqlite 数据库转换为 .db 文件

c# - 在 Web 和桌面应用程序中同步数据库?

python - Django:在管理界面中显示有用的数据库数据?

c++ - 为什么将 strlen 重新实现为循环+减法?

android - 如何忽略 SQLite 查询中的重音(Android)

cocoa - 如何使用 Perl 中的 OS-X ScriptingBridge 框架关闭窗口?

php - 学说 : Set primary Key

sql - 如何选择具有列别名的值?