Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Insert der Interbase Datenbank will nicht (https://www.delphipraxis.net/84308-insert-der-interbase-datenbank-will-nicht.html)

DeadMatt 15. Jan 2007 08:55

Datenbank: Interbase • Version: 7.5 • Zugriff über: ADO

Insert der Interbase Datenbank will nicht
 
Ich hatte schonmal etwas wegen der DB gefragt wo das Update nicht funktioniert hatte doch diesesmal haenge ich beim Insert.... das muesste doch genauso funktionieren oder? hier meine Funktion:
Delphi-Quellcode:
function thisInsert(VORNAME, NACHNAME: string):boolean;
var
  s_sql, Constr, ConOptions: string;
  cmd: BdpCommand;
  trsa: BdpTransaction;
  DBCon: BdpConnection;
begin
  //Einstellungen der Datenbank sowie auch bei ConOptions
  ConStr := 'Provider=Interbase;' +
      'assembly=Borland.Data.Interbase, Version=2.5.0.0,' +
      'Culture=neutral, PublicKeyToken=91d62ebb5b0d1b1b;' +
      'vendorclient=gds32.dll;pooling=True;' +
      'grow on demand=True;database=localhost:C:\InterbaseDB\TERMINE.IB;' +
      'username=sysdba;max pool size=100;password=masterkey';

  ConOptions := 'LoginPrompt=False;SQLDialect=3;RoleName=None;' +
       'CommitRetain=true;ServerCharSet=NONE;RollbackRetain=False;' +
       'TxnIsolation=ReadCommitted;WaitOnLocks=true';

  //Einstellungen in die Verbindung implementieren
  DBCon:= BdpConnection.Create(ConStr);
  DBCon.ConnectionOptions:= ConOptions;

  s_sql := 'INSERT INTO MITARBEITER (VORNAME, NACHNAME) VALUES ( '''+VORNAME+''', '''+NACHNAME+''')';
  cmd := BdpCommand.Create(s_sql, DBCon);
 
  try
    DBCon.Open;
          trsa := DBCon.BeginTransaction;
          cmd.Transaction:=trsa;
          cmd.ExecuteNonQuery;
          trsa.Commit;
    DBCon.Close;
    result := true;
  except
    result := false;
  end;

end;
woran koennte das liegen?

mkinzler 15. Jan 2007 09:00

Re: Insert der Interbase Datenbank will nicht
 
Wird ein Fehler angezeigt?
Wie sieht die Tabelle aus (Metadaten)?

DeadMatt 15. Jan 2007 09:11

Re: Insert der Interbase Datenbank will nicht
 
der einzige Fehler ist das die Funktion 'false' ausgibt.
In der Tabelle existieren die Spalten ID,VORNAME und NACHNAME mit dem Daten 'Vorname1' und 'Nachname1' ^^'
beide VarChar(25) und die Spalte ID, die einen Generator besitzt, fuer das autoincrement.
sonst noch Informationen die fehlen?

mkinzler 15. Jan 2007 09:15

Re: Insert der Interbase Datenbank will nicht
 
Deaktiviere mal den Exceptionhandler um den Fehler zu sehen.

Jürgen Thomas 15. Jan 2007 09:17

Re: Insert der Interbase Datenbank will nicht
 
Hallo,
ich glaube, ich habe irgendwo gelesen, dass es Probleme gibt, wenn die ID "erst" durch einen Trigger und Generator festgelegt wird, während der Provider deren Existenz als bekannt vorausgesetzt wird. Versuche doch einmal, eine ID vorher zu festzulegen, um das Problem einzugrenzen.

Gruß Jürgen

DeadMatt 15. Jan 2007 09:30

Re: Insert der Interbase Datenbank will nicht
 
Zitat:

Zitat von mkinzler
Deaktiviere mal den Exceptionhandler um den Fehler zu sehen.

wo stellt man den aus?^^'*peinlich*

@Jürgen Thomas
ne das isses nich, gerade getestet :(

mkinzler 15. Jan 2007 09:47

Re: Insert der Interbase Datenbank will nicht
 
Kommentiere das try und den except-Teil mal su.

DeadMatt 15. Jan 2007 09:53

Re: Insert der Interbase Datenbank will nicht
 
Zitat:

Ausnahmedetails: Borland.Data.Common.BdpException: Ausführung misslungen. validation error for column ID, value "*** null ***"

Quellfehler:

Delphi-Quellcode:
Zeile 134:             trsa := DBCon.BeginTransaction;
Zeile 135:             cmd.Transaction:=trsa;
Zeile 136:             cmd.ExecuteNonQuery;
Zeile 137:             trsa.Commit;
Zeile 138:       DBCon.Close;

das kommt dann raus O.o nu macht die ID also probs

DeadMatt 15. Jan 2007 10:18

Re: Insert der Interbase Datenbank will nicht
 
Nu klappts ^^ hatte den Triger wohl nicht ganz richtig^^


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz