Einzelnen Beitrag anzeigen

juelin

Registriert seit: 9. Mai 2006
Ort: Mannheim
142 Beiträge
 
Delphi XE5 Professional
 
#1

nochmal SQLDataSet

  Alt 21. Dez 2017, 11:56
Datenbank: MySql • Version: 5.6.24 • Zugriff über: SQLDataSet
Leider nochmal.
Windows 7 und Delphi XE5 Datenbank MySql Komponente aus DBExpress

Ich will 2 Insert in zwei Tabellen nacheinander machen.
Code:
Delphi-Quellcode:
 1 if mart = 1 then
 2 begin
 3 Form1.SQLDataSet1.Params.Clear;
 4 Form1.SQLDataSet1.CommandText:='INSERT INTO ware (Ware, Warengruppe, Mengeneinheit, Menge, MWST, Preis, Aus)'+' values (:wa5, :wg5, :me5, :f1, :f2, :f3, :wk5)';
 5 Form1.SQLDataSet1.Params.ParamByName('wa5').Value:=wa5;
 6 Form1.SQLDataSet1.Params.ParamByName('wg5').Value:=wg5;
 7 Form1.SQLDataSet1.Params.ParamByName('me5').Value:=me5;
 8 Form1.SQLDataSet1.Params.ParamByName('f1').Value:=f1;
 9 Form1.SQLDataSet1.Params.ParamByName('f2').Value:=f2;
10 Form1.SQLDataSet1.Params.ParamByName('f3').Value:=f3;
11 Form1.SQLDataSet1.Params.ParamByName('wk5').Value:=wk5;
12 h1:=Form1.SQLDataSet1.ExecSQL(False);
13 if h1 <> 1 then
14 begin
15 Label2.Caption:='Fehler beim Einfügen in Ware, Administrator verständigen';
15 end;
16 if finaz = 1 then
17 begin
18 fis:=ialpha;
19 ialpha:=DateTimeToStr(now);
20 Form1.Datumdb;
21 fiz:=ialpha;
22 ialpha:=fis;
23 Form1.SQLDataSet1.Params.Clear;
24 Form1.SQLDataSet1.CommandText:='INSERT INTO finanzamt (Tabelle, Zeit, Art, PNR, Feld1, Feld2, Feld3, Feld4, Feld5, Feld6, Feld7) VALUES (:fia1,:fia2,:fia3,:fia4,:fia5,:fia6,:fia7,:fia8,:fia9,:fia10,:fia11)';
25 Form1.SQLDataSet1.Params.ParamByName('fia1').Value:='Ware';
26 Form1.SQLDataSet1.Params.ParamByName('fia2').Value:=fiz;
27 Form1.SQLDataSet1.Params.ParamByName('fia3').Value:='1';
28 Form1.SQLDataSet1.Params.ParamByName('fia4').Value:=IntToStr(pnr);
29 Form1.SQLDataSet1.Params.ParamByName('fia5').Value:=wa5;30
30 Form1.SQLDataSet1.Params.ParamByName('fia6').Value:=wg5;
31 Form1.SQLDataSet1.Params.ParamByName('fia7').Value:=me5;
32 Form1.SQLDataSet1.Params.ParamByName('fia8').Value:=f1;
33 Form1.SQLDataSet1.Params.ParamByName('fia9').Value:=f2;
34 Form1.SQLDataSet1.Params.ParamByName('fia10').Value:=f3;
35 Form1.SQLDataSet1.Params.ParamByName('fia11').Value:=wk5;
36 h1:=Form1.SQLDataSet1.ExecSQL(False);
37 if h1 <> 1 then
38 begin
39 Label2.Caption:='Fehler beim Einfügen in Finazamt, Administrator verständigen';
40 end;
41 end;
42 end;
Nach dieser Routine ist der Satz in Tabelle Ware angelegt und in Tabelle Finanzamt nicht.
Es wurde keine Fehlermeldung angezeigt.

Wenn ich das Programm compeliere erschein vor jedem Befehl vorne links ein Punkt in der IDE
(ähnlich wie Haltepunkte).

Folgende Punkte fehlen aber und werden deshalb auch nicht ausgeführt:
Zeilen: 12,34,36,37

Übrigens, wenn ich den zweiten INSERT (Tabelle Finanzamt) rausnehme läuft alles normal.
Sind zwei INSERT hintereinander nicht zulässig?

Bin mit meinen Latein am Ende.
Hilfe wäre schön.

Danke und Gruß
Jürgen
Jürgen Linder

Geändert von juelin (21. Dez 2017 um 12:17 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat