Pascal: sehr einfache Datenbank

Hallo Forum!

ich hab mich vor 2 Wochen an meine erste Webseite gesetzt und nur mal so um zu probieren eine Tabelle mit 3 Spalten kreiert. die Inhalte werden (mittels Javaskript) von jeweils einem Textfeld, einem dropdown Menü und einer slidebar ausgelesen und in die Tabelle eingefügt.
soweit klappt das jetzt auch, nur wollte ich mich jetzt dran setzen und die Tabelle (maximal 10 Einträge) in einer einfachen Datenbank (in Form einer Textdatei) abzulegen, sodass die Einträge die ich mache auch in der Tabelle bleiben, wenn ich die Seite neu aufrufe.

Mit der neuen Textdatei:
Stadt|Wetter|Temp
Berlin|Trocken|-1°
New York|Schnee|+1°
Sydney|Trocken|+20°

hab ich es jetzt soweit bekommen, dass die Daten eingelesen werden und in Tabellenform dargestellt werden.
mein Problem ist jetzt, dass ich die Textnode mit den entsprechenden Trennzeichen zwar erstellen kann, sie aber irgendwie in die externe Textdatei übertragen muss, möglichst ohne dass die vorherigen Einträge gelöscht werden.
ich hab mich die letzten 3 tagen auch wie verrückt durch google und durch das Forum gewühlt, aber nur Losungen in PHP gefunden, und ich will nicht nur Skript kopieren, sondern lernen ;)
könnte mir vllt jemand nen Denkanstoß geben (möglichst in Java :P )

Danke fürs Lesen!

  1. hab ich es jetzt soweit bekommen, dass die Daten eingelesen werden

    das geht mit JS nicht, wie hast du das gemacht?

    könnte mir vllt jemand nen Denkanstoß geben (möglichst in Java :P )

    Java? Du meinst Javascript?

    Struppi.

    1. hab ich es jetzt soweit bekommen, dass die Daten eingelesen werden

      das geht mit JS nicht, wie hast du das gemacht?

      <object id="Daten" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
       <param name="DataURL" value="Daten.txt">
       <param name="UseHeader" value="true">
       <param name="FieldDelim" value="|">
      </object>
      <form action="">
      <table id="Anzeigetabelle" datasrc="#Daten" datapagesize="3" width="100%" border="0">
      <tr><THEAD>
      <th bgcolor="#EEEEEE"><b>Stadt</b></th>
      <th bgcolor="#EEEEEE"><b>Wetter</b></th>
      <th bgcolor="#EEEEEE"><b>Temperatur</b></th>
      </THEAD>
      </tr><tr>
      <TBODY align="center">
      <td bgcolor="#FFFFE0" valign="top"><DIV datafld="Stadt"></DIV></td>
      <td bgcolor="#FFFFE0" valign="top"><DIV datafld="Wetter"></DIV></td>
      <td bgcolor="#FFFFE0" valign="top"><DIV datafld="Temp"></DIV></td>
      </TBODY>
      </tr></table></form>

      1. hab ich es jetzt soweit bekommen, dass die Daten eingelesen werden

        das geht mit JS nicht, wie hast du das gemacht?

        <object id="Daten" classid="clsid:333C7BC4-460F-11D0-BC04-0080C7055A83">
        <param name="DataURL" value="Daten.txt">
        <param name="UseHeader" value="true">
        <param name="FieldDelim" value="|">
        </object>

        Aha, das ist ein ActiveX, dass nur im IE zu Verfügung steht bzw. stand. Diese Information wäre wichtig gewesen, um deine Fragen zu beantworten, aber willst du das wirklich verwenden?

        http://de.selfhtml.org/dhtml/modelle/datenanbindung.htm

        Aus heutiger Sicht muss das Modell der client-seitigen Datenanbindung, das Microsoft mit dem Internet Explorer 4.0 eingeführt hat, jedoch kritisch betrachtet werden. Der Grund ist einerseits, dass es auf extrem proprietären Konzepten beruht, vor allem was die Einbindung der allgemein unbeliebten ActiveX-Controls betrifft. Und andererseits haben sich Web-Server mittlerweile so stark durchgesetzt, dass es in in den meisten Fällen - auch lokal - sinnvoller ist, server-seitige Kapitel CGI-Scripts zum Handling der Datenverarbeitung einzusetzen.

        Der Internet Explorer in Version 8 unterstützt diese Form der Datenanbindung nicht mehr.

        Struppi.

        1. Aha, das ist ein ActiveX, dass nur im IE zu Verfügung steht bzw. stand. Diese Information wäre wichtig gewesen, um deine Fragen zu beantworten, aber willst du das wirklich verwenden?

          http://de.selfhtml.org/dhtml/modelle/datenanbindung.htm

          Aus heutiger Sicht muss das Modell der client-seitigen Datenanbindung, das Microsoft mit dem Internet Explorer 4.0 eingeführt hat, jedoch kritisch betrachtet werden. Der Grund ist einerseits, dass es auf extrem proprietären Konzepten beruht, vor allem was die Einbindung der allgemein unbeliebten ActiveX-Controls betrifft. Und andererseits haben sich Web-Server mittlerweile so stark durchgesetzt, dass es in in den meisten Fällen - auch lokal - sinnvoller ist, server-seitige Kapitel CGI-Scripts zum Handling der Datenverarbeitung einzusetzen.

          Der Internet Explorer in Version 8 unterstützt diese Form der Datenanbindung nicht mehr.

          Struppi.

          mmh ok, dann sollte ich mir ne andere lösung suchen... gibtes ne möglichkeit eine mysql datenbank ohne php zu verbinden?

          1. Hallo,

            mmh ok, dann sollte ich mir ne andere lösung suchen... gibtes ne möglichkeit eine mysql datenbank ohne php zu verbinden?

            Eine MySql-Datenbank kann auch in anderen Sprachen angesprochen werden, aber nicht mit Javascript.

            Viele Grüße Novi

            --
            "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
            1. Hallo,

              mmh ok, dann sollte ich mir ne andere lösung suchen... gibtes ne möglichkeit eine mysql datenbank ohne php zu verbinden?

              Eine MySql-Datenbank kann auch in anderen Sprachen angesprochen werden, aber nicht mit Javascript.

              Viele Grüße Novi

              Mich würde es sehr interessieren warum du absolut nicht PHP verwenden willst / magst.
              Mit PHP kannst du ganz einfach MYSQL ansprechen.
              Und wenn du bei Microsoft bleiben willst dann versuch mal ASP.

              MYSQL kann nur mit Serverseitigen Programmiersprachen angesprochen werden.
              Javascript ist Clientseitig.

              1. Tach auch.

                MYSQL kann nur mit Serverseitigen Programmiersprachen angesprochen werden.
                Javascript ist Clientseitig.

                Wobei es nicht so die Riesenschwierigkeit ist, einen MySQL-Proxy zu schreiben, welcher per HTTP Requests entgegennimmt und die Result-Sets JSON-formatiert wieder ausgibt.
                In PHP wird das eher so ein 15-Zeiler sein.

                So könnte man eigentlich sehr einfach DB-Queries aus JS heraus auf eine Datenbank abfeuern.

                Bis die Tage,
                Matti

                1. Hi!

                  MYSQL kann nur mit Serverseitigen Programmiersprachen angesprochen werden. Javascript ist Clientseitig.
                  Wobei es nicht so die Riesenschwierigkeit ist, einen MySQL-Proxy zu schreiben, welcher per HTTP Requests entgegennimmt und die Result-Sets JSON-formatiert wieder ausgibt.
                  In PHP wird das eher so ein 15-Zeiler sein.
                  So könnte man eigentlich sehr einfach DB-Queries aus JS heraus auf eine Datenbank abfeuern.

                  Mit ca. 15 Zeilen wirst du nur die Möglichkeit hinbekommen, allgemeine Querys abfeuern zu können. Das bedeutet, dass nicht nur einfache, sondern auch prinzipiell ungewünschte Abfragen gestellt werden können. Wenn du also im 15-Zeilen-Rahmen bleiben willst, kannst du nicht viel mehr machen, als das Script so zu beschränken, dass nur eine einzige vorgegebene Query (plus Parameter) abgearbeitet werden kann. Alles weitere verlangt auch entsprechenden zu programmierenden Umfang. Deine Aussage ist also prinzipiell richtig, aber in meinen Augen etwas zu optimistisch, weil sie zu sehr vereinfacht.

                  Lo!

                  1. Tach auch.

                    Wobei es nicht so die Riesenschwierigkeit ist, einen MySQL-Proxy zu schreiben, welcher per HTTP Requests entgegennimmt und die Result-Sets JSON-formatiert wieder ausgibt.

                    Mit ca. 15 Zeilen wirst du nur die Möglichkeit hinbekommen, allgemeine Querys abfeuern zu können. Das bedeutet, dass nicht nur einfache, sondern auch prinzipiell ungewünschte Abfragen gestellt werden können. Wenn du also im 15-Zeilen-Rahmen bleiben willst, kannst du nicht viel mehr machen, als das Script so zu beschränken, dass nur eine einzige vorgegebene Query (plus Parameter) abgearbeitet werden kann. Alles weitere verlangt auch entsprechenden zu programmierenden Umfang. Deine Aussage ist also prinzipiell richtig, aber in meinen Augen etwas zu optimistisch, weil sie zu sehr vereinfacht.

                    Vollkommen korrekt.
                    Selbst wenn man es hinbekommen würde, nur lesende Zugriffe zu erlauben (was entweder über "interpretieren" des Queries oder über Einstellungen der Benutzerrechte möglich wäre), kann man dadurch Informationen nach außen geben, welche man nicht veröffentlichen will (ganz aktuell bei heise.de zu besichtigen).

                    Und daher habe ich auch noch niemanden gesehen, der soetwas verwirklichen würde, und ich habe es auch nur der Vollständigkeit halber aufgezählt.

                    Dann lieber für jeden Query, den man auf die Datenbank abfeuert, einen Webservice schreiben.

                    Bis die Tage,
                    Matti

                    1. Hello,

                      Vollkommen korrekt.
                      Selbst wenn man es hinbekommen würde, nur lesende Zugriffe zu erlauben (was entweder über "interpretieren" des Queries oder über Einstellungen der Benutzerrechte möglich wäre), kann man dadurch Informationen nach außen geben, welche man nicht veröffentlichen will (ganz aktuell bei heise.de zu besichtigen).

                      Man kann sich auch Stored Routines (Stored Procedures) bauen, die die Anfragen abarbeiten und den direkten Zugriff auf die Tabellen vollkommen unterbinden. Somit könnten nur noch vorgesehene Parameter übergeben werden, Benutzerrechte sowohl horizontal als auch vertikal vergeben und geprüft werden und jedes Query könnte außerdem ausführlich gelogged werden.

                      Insgesamt ergibt das aber bestimmt auch erheblich mehr als 15 Zeilen Code :-)

                      Liebe Grüße aus dem schönen Oberharz

                      Tom vom Berg

                      --
                       ☻_
                      /▌
                      / \ Nur selber lernen macht schlau
                      http://bergpost.annerschbarrich.de
              2. Hello Matti,

                MYSQL kann nur mit Serverseitigen Programmiersprachen angesprochen werden.
                Javascript ist Clientseitig.

                Du meinst jetzt aber sicherlich, "aus dem Browser heraus geht es nicht", oder?
                Es gibt ja schließlich auch MySQL-Clients.

                Und aus dem Browser heraus könnte man auch ein signiertes Java-Applet oder ein VB-Script erstellen, dass dann wiederum direkt auf die MySQL-Datenbank zugreift.

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

                --
                 ☻_
                /▌
                / \ Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
  2. Hallo,

    es sieht so aus als würdest die client-seitigen Datenanbindung vom IE verwenden.

    "Aus heutiger Sicht muss das Modell der client-seitigen Datenanbindung, das Microsoft mit dem Internet Explorer 4.0 eingeführt hat, jedoch kritisch betrachtet werden. (...) Der Internet Explorer in Version 8 unterstützt diese Form der Datenanbindung nicht mehr." (http://de.selfhtml.org/dhtml/modelle/datenanbindung.htm)

    An deiner Stelle würde ich die Finger davon lassen.

    --
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)