Daten Berechnen und an Access übergeben...Hilfe!!!



  • Hi Leute,

    Programm....:

    Ich hab eine leere Datenbank, mit den Feldern Artikelnummer,Artikelname,Einzelpreis,Menge und Gesamtpreis!

    In meinem C++ Programm will ich über dbEdit die Felder ausfüllen können, und er soll den gesamtpreis gleich berechenen!

    Problem:

    Kann mit dbEdit keine leere Tabelle füllen,nur vorhandene Daten bearbeiten!
    Nachdem eine Zeile fertiggestellt ist möchte ich das er eine neue im DB Grid (und Datenbank) erzeugt!
    Die berechnung des GEsamtpreises (menge*Einzelpreis) durchführen und ergebnis auch ins Grid und Datenbank schreiben!!

    Welche Koponenten wären am besten?
    Danke schonmal für hilfe!! 🙂



  • der DBNavigator könnte dir da helfen



  • danke, ich werds mal ausprobieren!

    Kann mir aber mal jemand erklären wie ich ein Query richtig benutze?
    Also wie ich den select korrekt eingebe, das er mir ergebnis anzeigt und auch in datenbank schreibt?

    danke
    Serial



  • danke, ich werds mal ausprobieren!

    Kann mir aber mal jemand erklären wie ich ein Query richtig benutze?
    Also wie ich den select korrekt eingebe, das er mir ergebnis anzeigt und auch in datenbank schreibt?

    danke
    Serial



  • danke, ich werds mal ausprobieren!

    Kann mir aber mal jemand erklären wie ich ein Query richtig benutze?
    Also wie ich den select korrekt eingebe, das er mir ergebnis anzeigt und auch in datenbank schreibt?

    danke
    Serial



  • Hör ma auf hier sinnlos rumzuspammen !!
    Das nervt gewaltig !

    ADOConnection1 -> ConnectionString = CS1 + DBName + CS2;
      ADOConnection1 -> Connected = true;
      ADOQuery1 -> SQL -> Clear();
      ADOQuery1 -> SQL -> Add(Memo1 -> Text);
      ADOQuery1 -> Open();
    
      ADOQuery1 -> First();
    
      int AnzSpalten = ADOQuery1 -> FieldCount;
      while (!ADOQuery1 -> Eof)
      {
        for (int i = 0; i < AnzSpalten; i++)
        {
          Memo2 -> Lines -> Add(ADOQuery1 -> Fields -> Fields[i] -> AsString);
        }
        ADOQuery1 -> Next();
      }
    
      ADOConnection1 -> Connected = false;
    


  • sorry,lag an meiner internetconnection...war keine absicht!
    danke schonmal für deine antwort, aber ich arbeite nicht mit ado - komponenten!

    Sind die besser für locale Access-DB?, ich hab bde genommen!

    danke für antwort
    serial



  • Die BDE hat das Ende ihres Lebenszyklus erreicht. Sie wird nicht weiter gepflegt und wird in den nächsten Entwicklungsumgebungen nicht mehr vorhanden sein.

    Solange Du nicht TTable verwendest, sondern TQuery besteht allerdings die Chance, dass Du bestehende Projekte mit relativ geringem Aufwand umstellen kannst. Wenn Du die Möglichkeit hast, solltest Du jetzt schon die ADO-Komponenten verwenden.

    Ich verwende keine TDB..-Komponenten, sondern z.B. normale Edits, in die ich über die Query die aktuellen Werte einlese und bei Änderungen oder neuen Datensätezn über TADOCommand ein Update- oder Insert-Statement absetze.

    Für Aktualisierungen über die BDE bietet sich TUpdateSQL an. Die Verwendung dessen erschwert allerdings eine etwaige Umstellung auf z.B. ADO.



  • nun ja projecte umstellen muss ich nicht,da ich ein komplett neues mache!
    Nur habe ich mit ado noch nicht gearbeitet!

    Kannst mir mal ein beispiel geben, zum beispiel für ein edit-feld (normales edit), welches daten in eine Datenbank (test.mdb) in die Tabelle T_Artikel schreibt?

    Vielleicht noch mit anzeige in irgendeinem Grid oder so?

    Und vorallem, wie ich 2 werte (Menge*Einzelpreis) berechnen kann und in der Datenbank als GEsamtpreis ausgebe?!

    Danke schonmal...
    serial



  • Hast Du dir die Beispiele in der Hilfe schon angesehen?



  • ja aber direkt weiter haben die mich nich gebracht...=(



  • schau dir mal in den FAQ das Datenbanktutorial an

    nun ja projecte umstellen muss ich nicht,da ich ein komplett neues mache!

    es geht um alle Projekte die du gerade machst, da es durchaus sein kann, dass du in ein oder zwei jahren das "alte" Projekt aktualisieren mußt und dir somit nur arbeit machst, also versuch am besten gleich Komponenten zu verwenden die auch in den nächsten Jahren noch Datenbankbearbeitungen zulassen und da du eh grad erst am lernen bist bietet es sich doch an für die Zukunft zu lernen 😉

    Kannst mir mal ein beispiel geben, zum beispiel für ein edit-feld (normales edit), welches daten in eine Datenbank (test.mdb) in die Tabelle T_Artikel schreibt?

    ganz allgemein z.b. mit TTable:

    TTable->TableName = "T_Artikel";
    TTable->Open();
    TTable->Append();
    TTable->FieldByName("Menge")->AsInteger = StrToInt(Edit1->Text);
    TTable->FieldByName("Preis")->AsFloat = StrToFloat(Edit2->Text);
    TTable->FieldByName("Umsatz")->AsFloat = StrToInt(Edit1->Text)*StrToFloat(Edit2->Text);
    TTable->Post();
    

    Grüße
    Linnea



  • ja wow danke!
    Werd jetzt auch auf ado umspringen!
    Kann ich das beispiel so auch mit ado verwenden?
    Und wie kann ich das eingegebene gleich noch im Grid anzeigen lassen?

    Sorry bei sovielen fragen, aber bin totaler Nub bei DB Programmierung!

    Werden sicher auch noch fragen kommen...hehe 🙂

    Danke schonmal
    Serial!



  • Danke Linnea, hat wunderbar funktioniert!
    Das mit der anzeige im DBG hat sich auch erledigt!

    Aber nen Paar andere kleine Probs:

    1: Wie kann ich eine Suchabfrage zum beispiel aufs Feld Menge machen?
    Also das ich in einem Editfeld oder so ne Menge eingebe, und er mir alle die anzeigt im Grid die die Menge haben!?

    2: Wie kann ich es erreichen, das immer wenn ich neue Daten eingebe, das der im DBGrid das nich immer in die erste Zeile schreibt (da überschreibt er immer das alte im Grid, nicht in datanbank),sondern immer eine neue Anfängt?
    In der Datenbank macht er es richtig und schreibt immer in neue Zeile?!

    Danke schonmal wieder
    hoffe auf schnelle antwort!
    Serial


Log in to reply