DB - Insert



  • Also, mal wieder nen tolles Problem, wahrscheinlich hab ich was vergessen:

    Ich will Daten in einer Datenbank einfügen, wenn ich das erste Mal auf den Button drücke, geht es, beim 2. Mal kommt dann so ein schöner Fehler:

    Project1 Project.exe raised exception class EDBEngineError with message 'Key violation.'. Process stopped.

    Table3->Insert();
    Table3->FieldByName("IP")->AsString = Edit1->Text;
    Table3->Post();
    

    Habs auch schon mit Table3->Open und Close probiert, hat nichts gebracht. Ist bestimmt ne Kleinigkeit die ich vergessen hab.

    Viele Grüße

    Rudi



  • Hallo

    das bedeutet das du mit dem neuen Datensatz einen eindeutigen Schlüssel doppelt vergeben willst.
    Was für Keys hast du denn für die Tabelle definiert?

    bis bald
    akari



  • sry, hab von Keys im zusammenhang mit Datenbanken noch nie was gehört

    EDIT:

    Hab gerade rausgefunden, dass das immer nur bei doppelten Einträgen passiert, also wenn ich z.b. 2x "hallo" einfüge, passiert das. Kann man das bei DB gar nicht machen, ich möchte z.B. ein Spalte User haben und eine Logs, wo dann alle Logs für den User hinkommen oder sowas. Halt in einer Spalte öfters den gleichen Eintrag.



  • Hallo

    das geht schon, du must nur schauen das du auf dem besagten Feld kein Unique-Key hast. Oder das du ein anderes Feld hast, das Unique ist, dem du aber keinen Wert zuweist.

    bis bald
    akari



  • Letzte Frage in dem Zusammenhang: Was bedeutet Unique?

    Und danke für deine Hilfe,

    Gruß

    Rudi



  • Hallo

    das für dieses Feld jeder Wert nur ein einziges Mal vorkommen darf (unique = einzigartig). Das benutzt man meistens für Keys, nach denen schnell sortiert werden soll.

    bis bald
    akari



  • Das Feld IP was ich da ändern will ist das erste Feld in der DB. Also einfach z.B. eine Spalte ID hinzufügen als Index?

    Gruß

    Rudi



  • Hallo

    jain. Das kannst du sicher machen. Und machs gleich Integer und Auto-Increment.
    Aber die Fehlermeldung kommt wegen eines bestehendes Unique/Key-Feldes.

    bis bald
    akari


Anmelden zum Antworten