2009-02-27 12 views
2

ich SQL langsam lernen und wie Formular-Builder 6. Die Situation zu verwenden, die ich in der Tabelle drei Spalten Ich habe eine einfache Tabelle mit dem Namen ‚Spieler‘ haben:Wie kann ich einen Datensatz mit Form Builder und PL/SQL einfügen?

  • player_no (Primärschlüssel)
  • Position
  • Ziele

Im Formular-Builder 6 ich habe eine sehr einfache Form mit diesen drei Feldern erstellt. Das Formular heißt "TEAM". Am Fuß des Formulars habe ich einen Button mit der Aufschrift "Add". Das Ziel ist, dass der Benutzer ein player_no, eine Position und Ziele eingibt und dann auf "Add" klickt. Diese Information soll dann in meinen Tisch gehen.

Alle bisherigen Versuche sind kläglich gescheitert. Ich habe einen Trigger auf den Button (WHEN_MOUSE_CLICK) eingerichtet. Ich habe trat dann in den folgenden Code:

BEGIN 
    INSERT INTO players (player_no) 
    VALUES (:TEAM.player_no) 
END 

Zum Zweck es testet Ich habe nur das ein (player_no) Feld im Einsatz. Das kompiliert dann ohne Fehler noch, wenn ich das Formular ausführe und ein player_no eintrage und die Taste drücke, bekomme ich den folgenden Fehler in der Statusleiste:

frm-40735: WHEN-MAUS-CLICK-Auslöser ausgelöst unbehandelt Ausnahme ORA-01400

Mache ich etwas schrecklich falsch? Ich bin sehr neu in SQL und Form Builder, so dass jede Hilfe sehr geschätzt werden würde.

Antwort

2

ORA-01400: cannot insert Null scheint eines Ihrer Felder nicht null und Sie haben sie beim Einfügen weggelassen. oder Wert: TEAM.player_no ist beim Einfügen Null.

Auch irgendwo von web:

FRM-40735: ON-INSERT angehoben Trigger unhandled Wir haben seit 11.5.9 ähnliches Problem haben. Wir löschen Jinitiator Cache und temporäre Internet-Dateien (Tools> Internet-Optionen dann unter temporäre Internet-Dateien die klare Dateien-Taste). Scheint zu arbeiten.

1

Einer der Vorteile von Form Builder ist, dass Sie fast immer nicht müssen die DML-Anweisungen selbst schreiben.

Einfach den Block basierend auf der Tabelle erstellen - dann kann der Benutzer beliebig viele Datensätze hinzufügen und ändern, und beim Speichern (dh COMMIT) berechnet die Forms-Laufzeit automatisch, welche INSERTs und UPDATEs gespeichert werden müssen die Veränderungen.