Fehlermeldung "arithmetic execption"



  • Mir wurde das so in der Schule erklärt!

    Ich habe eine ID und wenn ich den datensatz in die Datenbank schreibe muss ich nicht ID 1 ID 2 schreiben sonder lass das einfach bei einer 0 damit zählt der bei Interbase hoch. aber irgend wie macht der das immer noch nicht.

    Tabelle mit ID Vorname Nachname

    Intert into T_Kunde (0,'Heins','Peter');
    Insert into T_Kunde (0,'Peter','Paul');
    

    Dann schreibt er als ID für den Heins ne 1 und für den Peter ne 2

    so wurde mir das erklärt .

    Aber ich wollte gern MySQL machen und da ich glaube das man auch MySQL mit C++ verknüpfen kann wollte ich das erstmal probieren. Weil mein vorteil dabei ist ich kann die gleiche Datenbank auch auf einen Server laden. und dafür dann eine Windows anwendung basteln.

    Aber erstmal wollte ich das dahein machen ohne einen externen Server. den erstell ich mir auf meinem Rechner.

    mfg Seby

    Ich guck mir mal dne Link an den du mir geschrieben hast... muss eben einkaufen.



  • Wenn du einen WSert für das Feld ID angibst dann nimmt er auch diesen Wert. In dienem Fall eine 0.
    Wenn das Feld aus auto_increment defniert ist dann reicht

    INSERT INTO T_Kunde SET Vorname = 'Peter',Nachname = 'Paul';
    Das sollte übrigend bei jedem RDBMS gehen da dies Standard ist.



  • Unix-Tom schrieb:

    INSERT INTO T_Kunde SET Vorname = 'Peter',Nachname = 'Paul';

    Verwechselst Du hier gerade INSERT und UPDATE?

    INSERT INTO Kunde 
    (Vorname, Nachname)
    VALUES ('Peter', 'Paul')
    

    Oder hab ich da was falsch verstanden?



  • Es geht beides.
    Zumindest bei ODBC/ACCESS und MySQL.



  • Dann werde ich das bei Gelegenheit mal auf unserer informix-DB ausprobieren. Die Variante mit SET xxx = yyy kenne ich nur aus den Update-Statements. Danke für die Info.



  • Also um bei Interbase eine Datenbank zu erstelnnen muss ich das alles machen

    Ich muss den Trigger machen wenn ich es mir vereinfach (Das Hochzählen der Folgen z.B oder kunden ID

    Domain:
    
    Create Domain D_Nr as Integer Not Null;
    Create Domain D_Name VarChar(100);
    Create Domain D_Groesse Integer;
    
    Tabelle T_Koenigin_der_1000_Jahre:
    
    Create Table T_Koenigin_der_1000_Jahre
    (
    Nr D_Nr,
    Name D_Name,
    Groesse D_Groesse,
    Primary Key (Nr)
    );
    
    Generator:
    
    Create Generator G_Koenigin_der_1000_Jahre;
    
    Trigger:
    
    Wie im ersten post nur der geht halt net.
    
    Dateninhalt:
    
    Insert Into T_Koenigin_der_1000_Jahre Values (1,'09.09.1999 um 9:00',221);
    Insert Into T_Koenigin_der_1000_Jahre Values (2,'Das unendliche All',211);
    Insert Into T_Koenigin_der_1000_Jahre Values (3,'Die Diebe der tausend Jahre',223);
    Insert Into T_Koenigin_der_1000_Jahre Values (4,'Ein Meteorit verschwindet',227);
    Insert Into T_Koenigin_der_1000_Jahre Values (5,'Yayoi kehrt zurueck',189);
    Insert Into T_Koenigin_der_1000_Jahre Values (6,'Die unterirdische Stadt',192);
    Insert Into T_Koenigin_der_1000_Jahre Values (7,'Der Stuetzpunkt unter der Erde',187);
    Insert Into T_Koenigin_der_1000_Jahre Values (8,'Das mißlungende Experiment',203);
    Insert Into T_Koenigin_der_1000_Jahre Values (9,'Der Weg zum heiligen Grab',207);
    Insert Into T_Koenigin_der_1000_Jahre Values (10,'Das Abenteuer am heiligen Grab',212);
    Insert Into T_Koenigin_der_1000_Jahre Values (11,'Freund oder Feind',189);
    Insert Into T_Koenigin_der_1000_Jahre Values (12,'Das Geheimnis des Teleskops',195);
    Insert Into T_Koenigin_der_1000_Jahre Values (13,'Flucht im Morgengrauen',174);
    Insert Into T_Koenigin_der_1000_Jahre Values (14,'Das Geheimnis der Koenigin',213);
    Insert Into T_Koenigin_der_1000_Jahre Values (15,'Duell in der Nacht',171);
    Insert Into T_Koenigin_der_1000_Jahre Values (16,'Der Ueberfall',190);
    Insert Into T_Koenigin_der_1000_Jahre Values (17,'Yayoi verlaesst die Sternenwarte',201);
    

    Würde der Trigger Funktionieren müsste ich nicht

    Insert Into T_Koenigin_der_1000_Jahre Values (17,'Yayoi verlaesst die Sternenwarte',201);
    

    Schreiben sonder nur

    Insert Into T_Koenigin_der_1000_Jahre Values (0,'Yayoi verlaesst die Sternenwarte',201);
    

    Wenn der inhalt null ist und ich einen Neuen datensatz dazu nehme nimmt er die Zahl die im generator G_Koenign.. steht und addiert eins dazu und so weiter..

    Das sollte ersmtl nur eine Test Datenbak seit damit ich per C++ Die Benutzeroberfläche Programmieren kann ..

    Das ist nur um Arbeit zu ersparen wenn man mit Kundendaten arbeitet uns sich z.B 10000 Kunden anmelden... bei den Folgen wollte ich das nur so machen .. hab das aber dann doch weggelassen.

    Also bei interbase ist das so komischer weise bei MySQl muss ich auto inc oder so neben Folge schreiben .... aber damit setz ich mich noch auseinander

    Die Richtige Datenbank bekommoch mehr Tabellen

    mfg Seby



  • Soooo.

    Ich hab mir das XAMMP Geladen und mein erster eindruck ist .... 👍 Super Spitze

    Das Programm ist leicht zu benutzen und da ist alls drauf SQL PHP Admin und Apatch echt geil.

    Ich habe meine Datenbank nun dort eingegeben..

    Mein problem ist nun wie kann ich eine oberfläche mit C++ machen ...

    Ich such weiter in der Hilfe und Probier rum aber es wäre coll wenn mir jemand sagen kann ob das überhaupt möglich ist.

    mfg Seby



  • Bezüglich deines Generators. Sollte das

    NEW.nr = GEN_ID(T_Koenigin_der_1000_Jahre, 1);
    

    nicht so aussehen

    NEW.nr = GEN_ID(G_Koenigin_der_1000_Jahre, 1);
    

    Wenn du den BCB verwendest hilft vielleicht diese Seite
    http://www.fachinformatiker-ihk.de/download/extras/CSIBXCB_.pdf



  • SET TERM ^ ;

    CREATE TRIGGER Set_nr FOR T_Koenigin_der_1000_Jahre
    ACTIVE BEFORE INSERT POSITION 0
    AS
    BEGIN
    if (NEW.nr is Null) then
    NEW.nr = GEN_ID(T_Koenigin_der_1000_Jahre, 1);
    END
    ^

    COMMIT WORK ^
    SET TERM ;^

    Das hab ich ja gemacht funktioniert aber igend wie nicht .. na ja egal ich kann auch ohne arbeiten .....

    ich versuch erstmla das mit MYSQL zu lösen ich hoffe das geht besser

    mfg Seby



  • Schau nochmal genau hin. gen_id verlangt doch den Namen des Generators und der fängt bei dir mit G und nicht mit T an.



  • och braunstein, wie gemein!!! Ich war auch gerade darauf gekommen...


Anmelden zum Antworten