AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Insert SQL

Ein Thema von Hansa · begonnen am 29. Jun 2003 · letzter Beitrag vom 16. Okt 2004
Antwort Antwort
Seite 3 von 3     123   
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#21

Re: hmm,

  Alt 30. Jun 2003, 20:19
Zitat von Hansa:
Lemmy hat mich mit seinen leeren Datenmengen trotzdem verwirrt. Lemmy, wo bist Du
zuhause... soso.. jetzt bin ich wieder schuld....

Wenn Du das kapiert hast, was die anderen so geschrieben haben dann vergiss die leere Datenmenge einfach...

Wenn Du es dennoch wissen willst, dann schreib nochmal, nicht dass ich dich noch mehr verwirre....

Grüße
Lemmy
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#22
  Alt 30. Jun 2003, 20:25
bist hoffentlich nicht beleidigt. Ich mach jetzt einfach notfalls "Try and Error"
Gruß
Hansa
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#23
  Alt 1. Jul 2003, 08:28
Guten Morgen,

Zitat von Hansa:
bist hoffentlich nicht beleidigt.
Weshalb denn..??

Grüße
Lemmy
  Mit Zitat antworten Zitat
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#24

Re: Insert SQL

  Alt 15. Okt 2004, 17:55
Beschäftigt sich derzeit noch jemand mit dem Problem ?

Ich habe auf Grund eurer Beiträge folgenden Code versucht

Delphi-Quellcode:
   DM.IBTagesplan.Close;
   DM.IBTagesplan.DeleteSQL.Text := 'Delete from UDAT';
   //DM.IBTagesplan.InsertSQL.Text := 'Insert Into UDAT (Patient) VALUES (''BlaBla'')';
   DM.IBTransaction.Commit;
   DM.IBTagesplan.Open;
Die Daten verschwinden auch zunächst im DBGrid.
Bei Neustart des Programmes sind sie aber wieder vorhanden.

Mit DM.IBTagesplan.ExecSql bekomme ich nur die Fehlermeldung "Verwenden Sie Open für eine Select-Anweisung"
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#25

Re: Insert SQL

  Alt 15. Okt 2004, 18:05
tausche mal commit und open
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Ralf Stehle

Registriert seit: 8. Aug 2003
124 Beiträge
 
Delphi 7 Professional
 
#26

Re: Insert SQL

  Alt 15. Okt 2004, 20:56
es funktioniert einfach nicht:

Mit dieser Anweisung sollte doch eigentlich ein neuer Datensatz eingefügt werden:

Delphi-Quellcode:
   DM.IBTagesplan.Close;
   DM.IBTagesplan.InsertSQL.Text := 'Insert Into UDAT (ID,UNTERSUCHUNGSDATUM, PATIENT) VALUES (50,''15.10.2005'',''Thomas Cook'')';
   DM.IBTagesplan.Open;
   DM.IBTransaction.Commit;
Ralf Stehle
ralfstehle@yahoo.de
  Mit Zitat antworten Zitat
Benutzerbild von kiar
kiar

Registriert seit: 2. Aug 2003
Ort: Aschersleben
1.362 Beiträge
 
Delphi 5 Professional
 
#27

Re: Insert SQL

  Alt 15. Okt 2004, 21:13
hallo ralf, ich mache soetwas immer mit einer query und zwar so
Delphi-Quellcode:
with DM1.IBQuery3 do
        Begin
           Close;
           SQL.Clear;
           SQL.Add('insert Into Tab_Mitarbeiter (VNummer
, Name
, Vorname
, Beruf
, Firmen_Id)
'+
          'values (:VNummer,:Name,:Vorname,:Beruf,:Firmen_id)');
                   ParamByName('VNummer') .AsString := Edit1.Text;
                   ParamByName('Name') .AsString := Edit3.Text;
                   ParamByName('Vorname') .AsString := Edit2.Text;
                   ParamByName('Beruf') .AsString := Edit4.Text;
                   ParamByName('Firmen_Id').AsInteger:= x[ComboBox1.ItemIndex];
           Open;
        end;
        DM1.IBTrans1.Commit;
also ich versuche immer paramisierte felder zu nehmen .versuche es mal auf dein dataset umzusetzen.

raik

edit :ich hoffe du hast nicht 800*600 als auflösung, bei mir sieht es schrecklich aus
verhältnisse die einem nicht passen,
muss man verändern oder verlassen
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#28

Re: Insert SQL

  Alt 16. Okt 2004, 02:34
Wie kiar das beschrieben hat, so geht es im Prinzip. Wenn schon, dann aber direkt eine stored Procedure verwenden. Ja, man lernt eben nie aus. Das von mir anfangs eingeführte Lager-Beispiel habe ich so realisiert (Menge soll vom Bestand abgezogen werden) :

Delphi :

Delphi-Quellcode:
procedure SchreibeLager (menge : integer);
begin
  with EingDM do begin // EingDM : DataModule
    LagSP.ParamByName('ID_ART').AsInteger := ArtDS.FieldByName ('ID').AsInteger;
...
    LagSP.ParamByName('MENGE').AsInteger := menge;
    LagSP.ExecProc;
  end;
end;
Voraussetzumg ist natürlich, daß diese SP in der DB definiert ist.

DB:

SQL-Code:
SET TERM ^ ;

CREATE PROCEDURE LAGSP (
    ID_ART INTEGER,
    MENGE INTEGER)
AS
DECLARE VARIABLE AENDERN INTEGER;
begin
  AENDERN = -1;
  SELECT ID FROM LAGER WHERE ID_ART= :ID_ART INTO :AENDERN;
  IF (AENDERN < 0) THEN BEGIN
    INSERT INTO LAGER8 (ID_ART,MENGE) VALUES (:ID_ART,-1*:MENGE);
  END
  ELSE BEGIN
    UPDATE LAGER SET MENGE = MENGE - :MENGE
    WHERE ID_ART = :ID_ART;
  END
  suspend;
end
^

SET TERM ; ^
Das ist jetzt allerdings noch stark verkürzt. Nicht relevante Felder und Statements habe ich weggelassen.

Außerdem ist ein guter Trick integriert : nämlich die DB entscheiden zu lassen, ob ein INSERT oder ein UPDATE ausgeführt werden muß. Würde ich auf keinen Fall vernachlässigen

Es muß also im Programm nur "SchreibeLager" ausgeführt werden, egal ob der Lagerbestand schon existiert oder nicht !!
Gruß
Hansa
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 20:18 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