Programmieren lernt man auch nicht durch Forum sondern du stundenlanges lesen der DOCU. In diesem Fall MySQL.
Vorallem aber: Wenn man SQL schreibt dann sollte man den Syntax kennen denn das kann schnell zu einer SQLINJEKTION oder gleich schlimm, löschen der DB führen.
Gibt es eine Art Muster, um so ein Problem eleganter zu lösen, oder muss ich auf einen der genannten Entwurfe zurückfallen?
Naja, es gibt viele Möglichkeiten.
Du kannst die "Entity_ID, Property_ID, Property_Value" Version verwenden, und für bestimmte Properties die in Suchen häufig vorkommen Indexed-Views erstellen - was SELECTs deutlich schneller machen kann.
Die erste Version die du erwähnt hast ist auch sehr verbreitet, weil sie sehr einfach ist (Queries werden nicht grundlos verkompliziert).
----
Dann gibt es AFAIK noch einen Haufen "nicht-standard-SQL" Datenbanken die diverse Dinge können die eine normale SQL Datenbank nicht kann. Evtl. gibt es da auch genau so Systeme wo man mehr oder weniger frei diverse Eigenschaften mit Entities vernküpfen kann, ohne diese zu Strings serialisieren zu müssen.
Was es auch gibt sind XML "Datenbanken" bzw. XML-Indexing-Engines. Du legst deine Daten dann einfach in XML Files ab, und lässt die Engine dann einen Index darüber erstellen. Auf diesen Index kann man dann (mit einer eigenen Suchsprache die mit SQL garnixmehr zu tun hat) Abfragen ausführen.
Und es gibt "Zwischenlösungen" wie z.B. die XML Spalten die MS-SQL Server unterstützt. Da drinnen kannst du auch Daten in XML Form ablegen, die Spalte mit einem XML-Index indizieren, und dann mit eigenen XML-Query-Funktionen in z.B. einer WHERE Clause oder auch im Select direkt darauf zugreifen.
Hab im Netz noch einen Link zu dem Thema gefunden: http://www.orafaq.com/wiki/SQL*Loader_FAQ#Is_there_a_SQL.2AUnloader_to_download_data_to_a_flat_file.3F
Dieser Thread wurde von Moderator/in Unix-Tom aus dem Forum MFC (Visual C++) in das Forum Datenbanken verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?
Dieses Posting wurde automatisch erzeugt.
NOW() gibt einen Timestamp zurück, also versuchst Du Timestamp - Time zu berechnen. Timediff benötigt aber 2 Parameter vom gleichen Typ, also entweder beides Time oder beides Timestamp:
select timediff(now(), '2008-11-27 13:55:00')
select timediff(time(now()), '13:55:00')
Ok, hab es nun so gelöst, dass als erste Zeile in das File ein Newline geschrieben wird und die Datensätze bei Zeile 2 beginnen.
Mit der Option: IGNORE 1 LINES kann man MySQL ja dazu bringen, erst in Zeile 2 mit dem Import zu beginnen.
Danke für die Hilfe.
mfg
Gib mal ein konkretes Beispiel, bin mir nicht sicher ob ich das jetzt richtig verstehe.
Eine Sache gleich vorweg: du solltest niemals "SELECT * ..." verwenden wenn du über einen Spaltenindex zugreifen willst. Sonst funktioniert der Code nichtmehr richtig wenn du mal irgendwo Spalten in der Mitte einfügst, umordnest oder rauslöscht.
Und wenn ich richtig rate dann könnte eine Tabelle die aus den Spalten Werkstoff_ID, Element_ID, MinCount und MaxCount besteht die bessere Lösung sein.
Da drinnen hast du dann eine Zeile pro Werkstoff und pro Element!
Beispiel:
Tabelle "Werkstoff_Elemente" (oder so)
Werkstoff_ID Element_ID MinCount MaxCount
a x 1 2
a y 0 99
a z 3 3
b x 5 5
c y 7 1000
c z 0 1
...
Dann reicht ein einziges "SELECT ... FROM Werkstoff_Elemente WHERE Werkstoff_ID = 'a'" aus um an alle "Elemente" dranzukommen. Und vor allem brauchst du nicht 100 verschiedene Tabellen die eigentlich alle dasselbe machen.
sieht auf jeden fall sehr geil aus! würd ich mir einfach nur so kaufen, um es in meiner sammlung datenbankbücher zu haben.
aber ich kann dir ein buch empfehlen: "SQL. Der Schlüssel zu relationalen Datenbanken"
http://www.amazon.de/SQL-Schlüssel-zu-relationalen-Datenbanken/dp/3499600633
ist billig (<10 euro) und die grundlagen sind gut erklärt.
Hiho,
jo also meine Frage ist: geht DAO mit dem M$ SQL Server 2005?
Google bringt da irgendwie sehr unterschiedliche Ergebnisse. Auf der einen Seite steht, das DAO nicht mehr unterstützt wird und man ADO verwenden *muss*. Auf anderen Seiten liest man seltsamen hässlichen VB Code der angeblich funktionieren soll. Daher meine Frage, ob da evtl jemand Erfahrungen hat.
MfG Pellaeon
Hallo!
Ich benutze ODBC eher so aus Gewohnheit.
Vista allein ist kein Problem. Wenn ich von einem Vista Rechner auf die Datenbank zugreife geht es. Aber von XP auf Vista über die ODBC scheint an irgendwas zu scheintern.
Das Problem hat sich ohnehin erledigt, da beide Rechner auf XP laufen sollen.
Trotzdem Danke und viele Grüße,
Ranger
Sowas macht man üblicherweise nicht über den SQL Server, hat dort auch nix verloren. Das wird denke ich auch der Grund sein warum es keinen Support für sowas gibt (oder ich weiss zumindest nicht wie wenn es doch gehen sollte).
Die Lösung das klassische 3-Schichten Modell zu verwenden:
Client 1 -------------- App-Server ---------- SQL-Server
| |
| |
Client 2 ------------------/ |
|
|
Client 3 -----------------------/
Wenn du etwas zu c++ wissen möchtest bist du hier falsch.
Eine Datenbank mathematisch analysieren ist ja ein weiter Begriff.
Es gibt auch nicht das Buch "Datenbank mathematisch analysieren".