Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADOCommand -> 2 Inserts gleichzeitig (https://www.delphipraxis.net/70791-adocommand-2-inserts-gleichzeitig.html)

domsch 4. Jun 2006 22:09

Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO

ADOCommand -> 2 Inserts gleichzeitig
 
Hallo,

ich muss mit einem Commando 2 Insert gleichzeitig absetzen.


Meine Ansatz:

Delphi-Quellcode:


try
  with ADOCommand do
  begin
    if true then
      begin
            CommandText := 'INSERT INTO Tabelle1(Attribut1, Attribut2) VALUES('
                       + ':Kurzzeichen, :Land);'
                       + ' INSERT INTO Tabelle2(Attribut1, Attribut2) VALUES('
                       + ':Kurzzeichen, :Land)';
      end
    else if true then
     
    //Hier wird der CommandText anders gesetzt

    else if true then
   
     //Hier wird der CommandText anders gesetz


    //Parameter füllen
    Parameters.ParamByName('Kurzzeichen').Value := Eingabe_Kurzzeichen.Text;
    Parameters.ParamByName('Land').Value := Eingabe_Land.Text;

    //Ausführen
    Execute;

    //Bestätigung das Daten eingetragen sind
    ShowMessage('Eingetragen');
  end;
except
    on E: Exception do ShowMessage(E.Message);
    //Noch genauere Message einrichten
end;

die letzten beiden IF bedingungen klappen bestens, beinhalten jedoch nur 1 Insert.

Von dem 2er Insert klappt immer nur der 1!
Hatte auch schon versucht den 1. Teil via #13#10 vom 2. Teil zu trennen, aber hilft auch nicht...


Weiss jemand rat?


Gruß

mkinzler 4. Jun 2006 22:14

Re: ADOCommand -> 2 Inserts gleichzeitig
 
Zitat:

Zitat von Delphi-Hilfe
TADOCommand führt den in der Eigenschaft CommandText angegebenen Befehl aus. Es kann immer nur ein Befehl aufgerufen werden.


sir-archimedes 4. Jun 2006 22:15

Re: ADOCommand -> 2 Inserts gleichzeitig
 
Hallo,

mit einem ADOCommand wirst du das so nicht hinbekommen. Entweder du packst das ganze in eine Stored Procedure auf dem Datenbankserver, oder öffnest eine Transaktion und führst zwei getrennte Statements aus.

Ich meine, du kannst aber via ADOConnection.Execute auch direkt mehrere Statements ausführen. Da bin ich mir aber nicht so sicher. Vor allem musst du dann anders mit deinen Parametern arbeiten...

Sorry, dass ich nicht spezifischer werde, aber habe schon einige Zeit nicht mehr mit Delphi-ADO gearbeitet ;-)

Gruß,
Dominik

domsch 4. Jun 2006 22:20

Re: ADOCommand -> 2 Inserts gleichzeitig
 
Zitat:

Zitat von mkinzler
Zitat:

Zitat von Delphi-Hilfe
TADOCommand führt den in der Eigenschaft CommandText angegebenen Befehl aus. Es kann immer nur ein Befehl aufgerufen werden.


das komisch is, wenn ich IHn in dem Object Explorer direkt beim CommandText eingeben funtz es... :/


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:45 Uhr.

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