08mmarte schrieb:
090415 8:17:57 [ERROR] Fatal error: Can't open and lock privilege tables: Can't
find file: 'host' (errno: 2)
Offensichtlich ist der DB-Katalog nicht installiert, es fehlen die Systemtabellen. Gibt es da irgendwo ein mysql_install_db oder ein Front-End für diesen Befehl?
UPDATE DatenGekuerzt
SET DatenGekuerzt.ID_ScheibenTypen = ScheibenTypen.ID
FROM DatenGekuerzt, ScheibenTypen
WHERE DatenGekuerzt.Kantenradius = ScheibenTypen.Kantenradius
AND DatenGekuerzt.Winkel1 = ScheibenTypen.Winkel1
AND DatenGekuerzt.Scheibendurchmesser = ScheibenTypen.Scheibendurchmesser
So funzts.
Das ist doch das schöne an SQLite, keine (bzw ganz wenige) feste Datentypen,
alles wird als string gespeichert. Damit's beim Indizieren auch numerisch klappt
kann man die Spalte als real kennzeichnen.
Sie http://www.sqlite.org/lang_createtable.html
Also ich will ein Besucherzähler machen. Ich habe eine Tabelle (besucher) und 3 Spalten.
1. Spalte: ID
2. Spalte: IP
3. SPalte: Timestamp
Was und wie die Werte in den Spalten stehen ist selbserklärend.
Ich habe schon diese SQL-Abfrage:
SELECT COUNT(DISTINCT IP) AS Anzahl FROM besucher
Mein Problem ist, das eine IP, die vor 3 Wochen schonmal da war, zwar in die Tabelle geschrieben wird, aber bei der Auslese ignoriert wird.
Wie kann ich machen, dass das DISTINCT nicht mehr zugreift, wenn der Timestamp zum letzten Besuch eine bestimmte Zahl größer geworden ist.
Ich hoffe man kann es verstehen.
Stratege993
Edit:
Habe nun eine Spalte hinzugefügt. Dann brauch ich diese Abfrage nicht mehr.
-Shelling- schrieb:
Soweit ich das bis jetzt sehe, gibt es bei postgreSQL lediglich ein Forum, das anscheinend aber gut besucht ist.
Es gibt Anbieter, die kommerziellen Support leisten. Bisher habe ich damit keine Erfahrung, da es noch nicht notwendig war.
-Shelling- schrieb:
Bzw. Wie viel Wartung notwendig ist um ein laufendes DBMS am laufen zu halten.
Das hängt extrem vom Nutzungsprofil ab. Wenn die Tabellen korrekt angelegt wurden, und man keine Änderung der Applikation durchführt, dann beschränkt sich das ganze auf relativ wenig Arbeiten. Dumps der DB, neue Patch-Versionen installieren ggf. Indizes pflegen usw.
Unter Access gibts AFAIK auch Systemtabellen die du abfragen kannst.
SELECT * FROM MSYSOBJECTS
...oder so ähnlich. Evtl mal googlen. An sonsten SQLTables in der MSDN nachschlagen.
Mein Problem hat sich erledigt. Ich bin von der Express-Edition auf die Große Packung Visual Studio 2008 Professional umgestiegen. Dort sind die Ansätze in der Doku super erklärt.
Danke.
magier-phil schrieb:
Brr OHHHH ja.... *PEINLICH*...... habe so lange rumprobiert das ich den Wald vor lauter Bäumen nicht gesehen habe.....
Mhhhh wieso hat das den dann nicht schon vorher funktioniert?
Das alles bringt dir aber natuerlich auch nicht viel, wenn du die Variablen nicht mit sinnvollen Werten befuellst...
PS:
wer hat dir dieses haessliche z_ als prefix beigebracht? Ist ja furchtbar...
Ja habe alles leer geräumt um den Fehler zu finden.....
und das mit dem z_ naja soll für mich die Erinnerung sein das es ein Zeiger ist.
Aber DANKE wirklich, war ich schusselig.
schreib dann wenigstens nen p davor für pointer aber das z_ is seltsamm ^^
ps:
Pack die 15 Inserts in eine einzelne Transaktion.
Ausserdem, wenn dir Datensicherheit egal ist, es gibt auch eine Funktion (Namen habe ich grad' nicht im Kopf), mit der man das Sicherstellen das die Daten auch wirklich auf Platte geschrieben wurden abschalten kann.
In Postgres läuft es auch, MySQL verbietet -in weiser Voraussicht- Ergebistabelle == Quelltybelle.
Ich würde es nicht unbedint melden da sie wahrscheinlich zu ihren Fehlern stehen:
http://ibexpert.net/ibe/index.php?n=Doc.DML-DataManipulationLanguage
dort nach "Important: It is legal to select fro" ... suchen
Also den maximalen Primärschlüsselwert ermitteln und ihn in einer Where-Klausel des Select-Stmts als Begrenzung verwenden.
Also ich hab die Lib mit Hilfe der .def Datei erzeugt, die bei der dll dabei ist.
Im VC\bin Verzeichnis von MSVC befindet sich ne anwendung "lib.exe" in der kkommandozeilen-dings start->ausführen->cmd einfach zum verzeichnis navigieren, die def datei und die dll vorher darein kopieren und folgendes dann eingeben:
LIB /DEF:sqlite3.def danach wird die lib erzeugt.
asdfqqq schrieb:
PS: Warum stinken meien Tabellen und Spaltennamen? Wegen dem Leerzeichen?
Weil sie nicht aussagekräftig sind, und die Tabellennamen anscheinend keinem Schema folgen.
"Projekt_Mitarbeiter" wäre z.B. ein wesentlich besserer Name als "arbeitet an".
Genauso "Projekt_ID" oder "Projekt_Nr" statt "PNR" etc.
CHANGE ist m.W. Mysql-spezifisch. Andere System kennen da ein ALTER ... RENAME.
Wenn Du aber den Typen nicht verkleinerst sollte es kein Problem sein die Spalte damit umzubenennen.
..da aber der Datenbankserver nicht selber die E-Mails verschicken soll wäre es doch sinnvoller mit den Regex-Funktionen die betreffenden Einträge zu selektieren, in den Client holen und dann mit ner berechnungsvollständigen Sprache weiter zu arbeiten.
Also jetzt bin ich mit meinem Latein endgültig am Ende.
Wenn ich als Treiber die Version 5.1.7.0 von MySql verwende, bekomme ich folgende FM:
Parameter '?64' not found in the collection."
Wenn ich als Treiber die Version 5.2.5.0 verwende, bekomme ich oben genannte FM.
Hat irgendwer die selben Probleme?
Grüße
Waldemar