Obtención de datos de campo de una base de datos de Bento usando Applescript

2

Tengo problemas para obtener los valores de campo de una base de datos de Bento utilizando Applescript:

No estoy usando el siguiente código para obtener las entradas pero no puedo acceder a las celdas o campos asociados con las entradas. ¿Alguien puede señalarme en la dirección correcta?

tell application "Bento"
repeat with i from 1 to count of libraries
    set theName to name of library i
    log theName
    if theName is equal to "Reconnaissance site report" then
        log "The library has been found"
        set theLibraryProperties to properties of library i
        log theLibraryProperties
        tell library i
            repeat with j from 1 to count of entries
                set theEntryName to id of entry j
                set theEntryProperties to properties of entry j
                log theEntryName
                log theEntryProperties
            end repeat
        end tell
    end if
end repeat
end tell
    
pregunta Ian Turner 16.07.2011 - 19:29

2 respuestas

1

El diccionario de scripts de Bento es bastante delgado. Parece que campo , entradas y celdas están en el diccionario de scripts de Bento 3, por lo que es difícil saber si han estado allí todo el tiempo. o se agregan para uso futuro.

No tengo mucha experiencia en la depuración de AppleScript, por lo que no puedo ver ningún error con el código que publicaste.

¿Ha intentado hacer bucles sobre _source_items_ para campos y celdas ? El diccionario parece indicar que los datos se encuentran allí y no se puede acceder tan fácilmente desde una colección . Eso y una gran cantidad de registros pueden compensar la falta de una herramienta interactiva para consultar el puente de scripting.

La creación de scripts es un diferenciador de características entre Bento y el producto Filemaker con más funciones de las mismas personas.

¿Ha intentado usar sqlite3 para leer la base de datos en ~/Library/Application\ Support/Bento/bento.bentodb/Contents/Resources/Database ?

El esquema y las tablas están abiertos a cualquier herramienta SQL que desee. Espero que solo sea una cuestión de construir la consulta correcta si prefiere AppleScript (y hay mucho que preferir al respecto a las secuencias de comandos de la línea de comandos).

    
respondido por el bmike 16.07.2011 - 20:49
-1

La bicicleta tiene algunos buenos consejos, pero agregaré información útil y con suerte.

La biblioteca / colección que seleccionó, cada uno de los campos de la biblioteca debe almacenarse en la propiedad de los 'campos' de la biblioteca.

A medida que recorre las entradas, cada entrada contiene una colección de celdas donde el nombre de cada celda coincide con el nombre de los campos en la colección de campos

  

Establezca myValue en la celda "nombre de campo" de la entrada j

Lo siento, no puedo publicar ningún atm de código real, escribiendo desde el iPad.

    
respondido por el Stu Wilson 15.01.2012 - 23:28

Lea otras preguntas en las etiquetas