ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
1337
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
  1. #1
    gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Hallo,

    Ich versuche ein Programm zu schreiben, wo man Daten speichern, bearbeiten und löschen kann.
    Diese Daten müssen irgendwo gespeichert werden. Da der Rechner kein Internet hat muss die Datenbank lokal sein.
    Ich habe gedacht, dass man die Daten einfach in einer CSV-Datei abspeichert und aufruft.
    Gibt es da Vor- und Nachteile? Oder gibt es auch eine bessere Möglichkeit, ohne dass man was großes installieren muss?

    Gruß
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.905
    Hi,

    Wenn du nur einfache Daten hast, ist CSV vielleicht noch ausreichend. Bei strukturierten Daten (z.B. mehrere Tel-Nummer oder E-Mail-Adressen für eine Person) stöst du mit CSV schnell an deine Grenzen.
    Einige DBMS bieten die Möglichkeit die Datenbank zu embedden, so dass du nur die Datei mit den Daten auf dem Filesystem liegen haben musst. Ein extra installiertes DBMS ist dafür nicht notwendig.
    Beispiele dafür sind zum Beispiel Access, worauf du mit dem Microsoft.Jet-Provider zugreifen kannst oder Firebird.
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Habe es jetzt etwas mit csv versucht. Komme da aber nicht wirklich weiter.
    Ich versuche eine csv-Datei zu öffnen und in ein Data-Grid anzuzeigen.
    Kann mir da jemand weiterhelfen?
     

  4. #4
    Registriert seit
    Mar 2004
    Beiträge
    440
    Kriegst du die CSV-Daten in den Speicher?
    Werden die Daten an das DBGrid übertragen?
    Sprich: Wo genau liegt der Hund begraben?
     

  5. #5
    gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Genau da komme ich nicht weiter.
    Ich weiss nicht, wie man die CSV-Datei in den Speicher lädt und an das Grid weitergibt.
     

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    440
    Ok, da würde ich einfach eine unsichtbare TMemo-Komponente in das Formular legen, dann die Lines mittels LoadFromFile(<name>) einlesen und dann die einzelnen Zeilen mit einem IndexOf abarbeiten und die Feldwerte an das DBGrid übergeben.
    Ich meine - wozu dick mit FileStreams rumärgern, wenn es Komponenten gibt, die alle gewünschten Funktionalitäten bereits beinhalten?
     

  7. #7
    gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Danke für die Antwort.
    Ich habe die Datei jetzt ins Memo geladen.
    Jetzt weiss ich aber nicht, wie ich das in Grid bekomme. Hast du da ein Beispiel?

    Gruß, Gerd
     

  8. #8
    Registriert seit
    Mar 2004
    Beiträge
    440
    Ich hoffe, ich werde hier jetzt nicht gesteinigt, andererseits denke ich, es schadet gar nichts, wenn der Fragesteller auch ein bißchen selber knobeln muß, dadurch lernt man das Programmieren.

    Derzeit arbeite ich an einem Delphi-Projekt und da du kein Wort verloren hast, welches Framework und welche IDE du benutzt, denke ich, macht es wenig Sinn, wenn ich dir jetzt irgendeine Lösung einfach auf den Tisch knalle, die dann in deiner IDE und mit deinem Framework nicht funktioniert, aber sehr nach C++ aussieht.

    Ergo:
    Ich habe kurz eine Delphi (Object Pascal)-Lösung mit der VCL zusammengefrickelt, die aber die generelle Vorgehensweise klar machen sollte, wenn man sich bemüht. An dem Source ist nichts besonderes, was sich nicht so ohne weiteres in C++ nachbilden ließe und auf Pascal-spezifische Sachen (with Memo1.Lines[i] do) habe ich auch verzichtet:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    procedure TfmDebugTest.Button1Click(Sender: TObject);
    var
      i: Integer;
      Zeile, Titel, Wert: String;
      
    begin
      Memo1.Lines.LoadFromFile('testdata.csv');
     
      for i := 0 to Memo1.Lines.Count - 1 do
      begin
        Zeile := Memo1.Lines[i];
        Titel := Zeile.Substring(0, Zeile.IndexOf(','));
        Wert := Zeile.Substring(Zeile.IndexOf(',') + 1);
        StringGrid1.Rows[i + 1].Add(Titel);
        StringGrid1.Rows[i + 1].Add(Wert);    
      end;
    end;

    Damit (und mit der Hilfe in deiner IDE) solltest du dann eigentlich dein Problem lösen können.
     

  9. #9
    gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Komme da jetzt nicht mehr weiter.
    Habe es jetzt soweit, dass es in die Schleife reingeht.

    Code :
    1
    2
    3
    4
    5
    6
    
      Memo1->Lines->LoadFromFile("db/buecher.csv");
     
      for(int i=0; i<Memo1->Lines->Count;i++){
     
     
      }

    Ich weiss jetzt aber nicht, wie man die Zeile dem DBGrid hizufügt.
    In der Hilfe habe ich auch nichts gefunden.

    Derzeit arbeite ich an einem Delphi-Projekt und da du kein Wort verloren hast, welches Framework und welche IDE du benutzt, denke ich, macht es wenig Sinn, wenn ich dir jetzt irgendeine Lösung einfach auf den Tisch knalle, die dann in deiner IDE und mit deinem Framework nicht funktioniert, aber sehr nach C++ aussieht.
    Habe nicht viel Ahnung von C++. Wo kann ich das nachschauen, welches Framework und welche IDE benutzt wird?

    Gruß
     

  10. #10
    Registriert seit
    Mar 2004
    Beiträge
    440
    Zitat Zitat von gerd87
    Habe nicht viel Ahnung von C++. Wo kann ich das nachschauen, welches Framework und welche IDE benutzt wird?
    Ööööhhhmmm...
    Also das sollte man normalerweise schon wissen. IDE = Integrated Developer Environment, auf deutsch die Entwicklungsoberfläche, mit der du arbeitest. Und da solltest du eigentlich schon wissen, was du aufreisst, wenn du deine C++-Programme schreibst, also ob das Microsoft Studio ist oder Borland Developer Studio, Borland CBuilder, Eclipse oder etwas ganz anderes.
    Das Framework ist die Routinensammlung, die du verwendest, um irgendetwas unter Windows darzustellen. Wenn du nach "Framework" suchst, findest du hier im Forum sicherlich auch genügend Threads, in denen genau erklärt wird, was Frameworks sind und welche derzeit die gängisten darstellen. Welches davon du nun benutzt - das kannst du nur selber wissen. Bei meinem Projekt hier, habe ich gaaanz am Anfang gesagt ich will ein "Projekt für .net mit VCL-Unterstützung". Was du gewählt hast, kannst du nur selber wissen.
     

Thema nicht erledigt

Ähnliche Themen

  1. Eigene Datenbank für Erweiterungen?
    Von kuhlmaehn im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 06.06.09, 10:28
  2. eigene Datenbank anlegen, welches ist die beste vorgehensweise
    Von dogi30 im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 04.03.08, 17:51
  3. Antworten: 8
    Letzter Beitrag: 02.11.07, 21:55
  4. Antworten: 2
    Letzter Beitrag: 16.01.06, 22:15
  5. Eigene Datenbank-Klasse
    Von Neurodeamon im Forum PHP
    Antworten: 9
    Letzter Beitrag: 12.04.03, 04:28