Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

SQLite3 und Apple Script

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
MichaHo
•->
•->


Anmeldedatum: 03.11.2010
Beiträge: 9

BeitragVerfasst am: 05.08.2011 - 11:52    Titel: SQLite3 und Apple Script Antworten mit Zitat

Hallo,

gibt es eine einfache Möglichkeit mit AppleScript auf eine SQLite Datenbank zuzugreifen?

Den SQL Browser und die SQLite3 Bibliothek habe ich schon aufm Mac, allerdings weis ich nicht genau was mit der Biliothek zu tun ist und wie ich aus AS Zugriff auf die Datenbank bekomme.

Mein Versuch ist natürlich kläglich gescheitert.

Code:
tell application ???
   set newEntry to create new record to table "aZeit" to database "mhoIT"
end tell


Gibts vieleicht ein Tutorial??

Vielen Dank

Grüße

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger
hubionmac
•--->
•--->


Anmeldedatum: 26.02.2004
Beiträge: 245
Wohnort: Münster

BeitragVerfasst am: 05.08.2011 - 22:25    Titel: Antworten mit Zitat

Das machst Du vermutlich ehr über das Shell-Programm:
http://macscripter.net/viewtopic.php?id=24744
_________________
hubionmac.com akzeptiere Paypal und Pizza
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
woodpecker
•--->
•--->


Anmeldedatum: 12.10.2010
Beiträge: 150
Wohnort: Roggentin/Rostock

BeitragVerfasst am: 06.08.2011 - 13:00    Titel: Antworten mit Zitat

Du kannst die SHELL unter Nutzung des Tools sqlite3 verwenden. Der erste Aufrufparameter ist der Name der Datenbank. Als 2. Parameter kann ein SQL-Kommando angegeben sein. Ist kein zweiter Parameter angegeben, dann liest das sqlite3 bis EOF von der Standardeingabe SQL-Kommandos.

Im Terminal sieht es z.B. so aus (erste Variante):

Code:
sqlite3 Datenbank.db 'select * from table1 where pid in (25,34,89);'


Zweite Variante (z.B. als Here Document):

Code:
sqlite3 Datenbank.db  <<++xx
create table table1 (pid short,Name varchar(30),primary key(pid));
create table table2 (doctyp short,docname char(10), datum char(10),primary key(doctyp,docname));
insert into table1 values(1,'blabla');
insert into table1 values(2,'blub');
++xx


Das ganze brauchst Du dann nur mit "do shell script" aufrufen, fertig.


Viel Erfolg.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
MichaHo
•->
•->


Anmeldedatum: 03.11.2010
Beiträge: 9

BeitragVerfasst am: 08.08.2011 - 07:58    Titel: Antworten mit Zitat

Hallo an beide,

Super, Vielen Dank.

Damit kann ich schon mal arbeiten.

Grüße

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger
MichaHo
•->
•->


Anmeldedatum: 03.11.2010
Beiträge: 9

BeitragVerfasst am: 08.08.2011 - 11:03    Titel: Antworten mit Zitat

Hallo nochmal,

eine Frage noch.

Mein Script klappt, allerdings schreibt er mir die ID nicht automatisch.

Habe in meiner Tabelle das erste Feld id genannt und den Typ auf Integer Primary Key gesetzt.

was muss ich meinem SQL statement denn mit geben, damit er das erste Feld automatisch eins hoch zählt?

Ich erhalte den Fehler, das 4 Felder vorhanden sind, aber nur 3 Values übergeben werden.

Klar, denn die ID soll er ja selbst vergeben.

Oder geht das so nicht? dann lass ich die ID weg.

Vielen Dank

Grüße

Michael

P.S. hier noch mein Script:

Code:


set loc to space & "~/Scripting/DB/mhoIT" & space
set head to "sqlite3" & loc & quote
set tail to quote
set dat to date string of (current date)
set kommen to time string of (current date)
set aktZeit to (current date)
set tmpgehen to aktZeit + 28800 + 2700
set gehen to time string of tmpgehen
set d1 to "insert into aZeit values('" & dat & "', '" & kommen & "','" & gehen & "') ;"
do shell script head & d1 & tail


Für den Zugriff auf die DB zum prüfen nutze ich SQLite Browser
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 08.08.2011 - 12:26    Titel: Antworten mit Zitat

In Oracle wird das m.W. mit einem Trigger gemacht. Und ich meine auch (bey MySQL) mal was von einer Sequenz gehört zu haben. Ich denke, das ganze is DB abhängig und Du wirst nicht umhin können, mal die Anleitung von SQLite zu lesen.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MichaHo
•->
•->


Anmeldedatum: 03.11.2010
Beiträge: 9

BeitragVerfasst am: 08.08.2011 - 12:39    Titel: Antworten mit Zitat

Hallo Snow,

Danke für Deine Antwort.

Hab bisher immer nur mit MySql und php gearbeitet, da geht das mit dem Key automatisch...

Habe aber jetzt eine andere (bessere) Lösung gefunden.

Habe bei einer Doku zu AppleScript eine Funktion für den Tag des Jahres gefunden.

Diesen Tag (für heute 220) schreibe ich einfach als id ins entsprechende Feld und kann mich dann immer darauf beziehen.

Trotzdem Danke für Eure Mühen.

Bis dann

Grüße

Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger
woodpecker
•--->
•--->


Anmeldedatum: 12.10.2010
Beiträge: 150
Wohnort: Roggentin/Rostock

BeitragVerfasst am: 09.08.2011 - 12:47    Titel: Antworten mit Zitat

Automatisch geht es wohl nicht, aber Du kannst dir einen Handler basteln, der automatisch die die nächste zu vergebende id ermittelt. Der müsste ungefähr so aussehen:


Code:
set id to do shell script "sqlite3 daten.db 'select max(id) from table;'" as integer
return id+1


Wenn Du diesen Code in einen Handler packst, kannst Du die id beim Insert der nächsten Tabellenzeile verwenden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 09.08.2011 - 13:49    Titel: Antworten mit Zitat

MichaHo hat Folgendes geschrieben:

Hab bisher immer nur mit MySql und php gearbeitet, da geht das mit dem Key automatisch...

Und hättest Du die Dokumentation von sqlite gelesen, wärst Du auf dies hier gestoßen, oder?

http://www.sqlite.org/autoinc.html
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter