AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADOCommand -> 2 Inserts gleichzeitig
Thema durchsuchen
Ansicht
Themen-Optionen

ADOCommand -> 2 Inserts gleichzeitig

Ein Thema von domsch · begonnen am 4. Jun 2006 · letzter Beitrag vom 4. Jun 2006
Antwort Antwort
domsch

Registriert seit: 15. Apr 2006
Ort: Paderborn
21 Beiträge
 
Delphi 2006 Enterprise
 
#1

ADOCommand -> 2 Inserts gleichzeitig

  Alt 4. Jun 2006, 22:09
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
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ß
Dominik
Absoluter Delphi Newbie
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ADOCommand -> 2 Inserts gleichzeitig

  Alt 4. Jun 2006, 22:14
Zitat von Delphi-Hilfe:
TADOCommand führt den in der Eigenschaft CommandText angegebenen Befehl aus. Es kann immer nur ein Befehl aufgerufen werden.
Markus Kinzler
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ADOCommand -> 2 Inserts gleichzeitig

  Alt 4. Jun 2006, 22:15
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
  Mit Zitat antworten Zitat
domsch

Registriert seit: 15. Apr 2006
Ort: Paderborn
21 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: ADOCommand -> 2 Inserts gleichzeitig

  Alt 4. Jun 2006, 22:20
Zitat von mkinzler:
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... :/
Dominik
Absoluter Delphi Newbie
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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