Daten mittels Table->Insert() in die Datenbank schreiben ?



  • hi,

    so mein source:

    Datenmodul->Table1->Insert();
    Datenmodul->Table1->FieldByName("Name") = Edit1->Text
    Datenmodul->Table1->FieldByName("Nachname") = Edit1->Text
    Datenmodul->Table1->Post();
    

    geht aber leider nicht 😞



  • hab nun folgendes gebastelt:

    Datenmodul->Table1->TableName = "Revier";
      Datenmodul->Table1->Active = true;
    
      Datenmodul->Table1->Insert();
        Datenmodul->Table1->FieldByName("Name")->Value = txtName->Text;
        Datenmodul->Table1->FieldByName("Zimmer")->Value = txtZimmer->Text;
        Datenmodul->Table1->FieldByName("Status")->Value = "on";
      Datenmodul->Table1->Post();
    

    bekomme aber immer die fehlermeldung bei "Datenmodul->Table1->Insert();" das ein Variant Typ Null nicht in einen String geändert werden kann. ich versteh denn fehler eigentlich nicht 😞

    könnt ihr mir weiterhelfen ?

    p.s. das komische ist auchnoch das die daten korrekt in die db geschrieben werden ...



  • Versuch einmal

    Datenmodul->Table1->FieldByName("Name")->AsString = txtName->Text;
    

    Gruß Rainer



  • @binary trust :
    Ich würde Dir an dieser Stelle zwei Tipps geben:

    1.BCB Hilfe bzw. das Entwicklerhandbuch
    2.Das Buch "C++ Builder Datenbankprogrammierung" von Ebner

    Ansonsten kriegst Du Deine Anwendung nie fertiggestellt 😉

    epidemic



  • würd ich auch .. @epidemics post 😃



  • wieso ist denn der obere code falsch ?
    wenn ja was muss ich denn daran ändern ?



  • probier doch mal dass, was RaKo geschrieben hat
    wenn das auch nicht funzt, dann schreib uns doch mal auf, von welchem Datentyp "Name" und "Zimmer" überhaupt sind



  • ok, funtzt!

    mal eine andere frage,
    wenn ich z.b. doch z.b. denn nachname in eine dblistbox lade möchte
    ich das beim selektieren des aktuellen datensatzes in denn feldern dbedit1 der vorname steht und in dbedit2 der nachname steht.
    klar ich mach die beiden db* verknüfpungen auf die datasource aber wie kann ich sagen das der in der listbox markierte datensatz der aktuelle ist ????



  • mir RecNo kannst du auf einen belibigen Datensatz springen

    Bsp.:

    TTable Table;
    Table->RecNo = 0;    // erster Datensatz
    Table->RecNo = 9;    // 10. Datensatz
    


  • jehhha du bist der beste!!!!
    genau das war es !

    ADOTable1->RecNo = DBListBox1->ItemIndex + 1;
    

    und ich kann jetzt auch ändlich auf denn aktuellen datetensatz zugreifen

    ADOTable1->RecNo = DBListBox1->ItemIndex + 1;
      Label1->Caption = ADOTable1->FieldByName("Name")->AsString;
      Label2->Caption = ADOTable1->FieldByName("Zimmer")->AsString;
    

    und ändern kann ich denn aktuellen datensatz auchnoch 🙂

    ADOTable1->Edit();
         ADOTable1->FieldByName("Name")->AsString = DBEdit1->Text;
         ADOTable1->FieldByName("Zimmer")->AsString = DBEdit2->Text;
       ADOTable1->Post();
    

    danke für deinen geilen tipp!!!!
    das stimmt doch soweit alles, oder ?

    ohne das forum wäre ich echt aufgeschmiessen denn am donnerstag um 11 uhr ist mein abgabethermin 😞

    ein rießen dankeschön !!!!!!!!!

    gruß
    binary



  • wenn die Zählung bei RecNo mit 1 losgeht dann ja



  • laut hilfe beginnt er bei 1 wie ich selbst zur laufzeit beim datenzugriff auf RecNo 0 schmerzlich festellen musste 😉


Anmelden zum Antworten