AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi zeilen werden ignoriert...
Thema durchsuchen
Ansicht
Themen-Optionen

zeilen werden ignoriert...

Ein Thema von Sulustaner2004 · begonnen am 16. Mär 2004 · letzter Beitrag vom 17. Mär 2004
Antwort Antwort
Seite 3 von 4     123 4      
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#21

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 13:58
ok...das was das memo angezeigt hat ist das...

SQL-Code:
Update dbo_VFL_VERZ_TEMP t
Set Bearbeiter = :i_F0
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#22

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 14:39
Vielleicht musst du die Transaktion abschließen.
ADOQuery1.Connection.CommitTrans; p.s.: Findest du es richtig, das Feld TB_Bearbeiter auch zu ändern?
Außerdem wird nur ein Update auf bestehende Einträge ausgeführt. Es werden keine neuen hinzugefügt.
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#23

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 14:41
ja, das feld bearbeiter soll auch geändert werden...
weil es eben immer sein kann das ein neuer bearbeiter hinzukommt...und der sollte dann unten angefügt werden !!!!
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#24

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 14:59
so...mit dem abschlißen der query klappt das nicht !!!
dann bekomme ich ne fehlermeldung !!!
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#25

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 15:27
Wenn auch noch Werte eingefügt werden sollen falls es zu dem Bearbeiter keine Einträge gibt dann probiere das mal.
Da ich hier weder deine Datenbank habe noch den DB-Server zum Testen missbrauchen möchte ( ) kann ich dir nicht versichern, dass es einwandfrei läuft.
Ich habe eine Menge kommentiert und keine neuen Variablen hinzugefügt, deshalb müsstest du den Code für dich anpassen können.
Ganz wichtig:
Du musst Bearbeiter aus CompNames & FieldNames entfernen!!!
Delphi-Quellcode:
Var
  SetStr : String;
  ProcessedRecs, i, SetCount : Integer;
  SetVals : Array Of String;
Begin

  If (tb_Bearbeiter.Text = '') Then
    ShowMessage('Bitte was eintragen.');

  SetCount := 0;
  // Arraylänge auf Anzahl der TEdits
  SetLength(SetVals, CompNames.Count);
  With ADOQuery1 Do
  Begin
    // Gibt es Einträge zu diesem Bearbeiter?
    SQL.Text :=
      'SELECT Count(*) t' + #10 +
      'FROM dbo_VFL_VERZ_TEMP t' + #10 +
      'WHERE t.Bearbeiter = :i_Bearbeiter';
    Prepared := True;
    Parameters.ParamByName('i_Bearbeiter').Value := TB_Bearbeiter.Text;

    // Ausführen
    Open;
    If Eof Or (Fields[0].AsInteger = 0) Then
      ProcessedRecs := 0
    Else
      ProcessedRecs := Fields[0].AsInteger;
    SetStr := '';
    For i := 0 To pred(CompNames.Count) Do
    Begin
      With FindComponent(CompNames[i]) As TEdit Do
        If Text <> 'Then
        Begin
          // Wenn Edit <> '' -> Wert in den Array & Spalte kommt mit in die SET-Clause...
          SetVals[SetCount] := Text;
          // Einträge > 0 UPDATE sonst INSERT
          If ProcessedRecs > 0 Then
            SetStr := SetStr + ',' + #10 + ' ' + Fieldnames[i] + ' = :i_F' + IntToStr(SetCount)
          Else
            SetStr := SetStr + ',' + #10 + ' ' + Fieldnames[i];

          inc(SetCount);
        End;
    End;

    // Wenn ein INSERT benötigt wird, dann muss hier noch die Liste mit Parametern stehen
    If ProcessedRecs > 0 Then
    Begin
      // Bearbeiter muss auf jeden Fall eingefügt werden
      SetStr :=
        'INSERT INTO dbo_VFL_VERZ_TEMP t' + #10 +
        ' (Bearbeiter ' + SetStr + ')' + #10 +
        'VALUES ( :i_Bearbeiter' + #10;
      // Fülle die Value liste mit Parametern (für jeden geänderten Wert
      For i := 0 To pred(SetCount) Do
        SetStr := SetStr + ',' + #10 + ':i_F' + IntToStr(i);

      SetStr := SetStr + ')'

      // Das INSERT-Statement sollte dann so aussehen...
      //INSERT INTO dbo_VFL_VERZ_TEMP t
      // (Bearbeiter
      // ,Feld1
      // ,Feld2
      // ...)
      //VALUES ( :i_Bearbeiter,
      // ,:i_F1
      // ,:i_F2
      // ... )

    End
    Else
      SetStr :=
        'UPDATE dbo_VFL_VERZ_TEMP t' + #10 +
        'SET ' + Copy(SetStr, 10, Length(SetStr)) + #10 +
        'WHERE t.Bearbeiter = :i_Bearbeiter';

    // Das UPDATE-Statement sollte dann so aussehen...
    //UPDATE dbo_VFL_VERZ_TEMP t
    //SET Feld1 = :i_F1
    // ,Feld2 = :i_F2
    // ...
    //WHERE t.Bearbeiter = :i_Bearbeiter

    // Wenn SetCount > 0 -> Führe Abfrage aus...
    If Setcount > 0 Then
    Begin
      SQL.Text := SetStr;
      Prepared := True;
      Parameters.ParamByName('i_Bearbeiter').Value := TB_Bearbeiter.Text;
      // Werte der Paramter :i_F(1 - ...)
      For i := 0 To pred(SetCount) Do
        Parameters.ParamByName('i_F' + IntToStr(i)).Value := SetVals[i];
      // Ausführen
      ExecSQL;
    End;
  End;
  label27.Caption := tb_Bearbeiter.Text;
  //....
  tb_land.Clear;

End;
Teste den Code noch ein paar mal mit dem Memo und auskommentiertem ExecSQL. Und poste den generierten Code (diesmal mehr als ein Edit beschreiben).
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#26

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 15:40
ok..danke dir erstmal...das werde ich morgen machen...bin ja kurz vor feierabend !!!
hast mir auf jedenfall sehr sehr geholfen !!!!
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#27

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 15:44
Feierabend bei Tageslicht
Was bist denn du für ein Programmierer?
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#28

Re: zeilen werden ignoriert...

  Alt 16. Mär 2004, 15:46
bin einer der im praktikum ist !!! aber hast ja recht...ich mache zuhause noch weiter...
und außerdem einer der beim öffentlichen dienst arbeitet !!!
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Sulustaner2004

Registriert seit: 14. Jan 2004
106 Beiträge
 
Delphi 7 Professional
 
#29

Re: zeilen werden ignoriert...

  Alt 17. Mär 2004, 08:33
guten morgen....
habe eben deinen text getestet.....
aber um etwas zu posten (von einer fehlermeldung mal abgesehen) bin ich nicht gekommen...er sagt irgendetwas von einem fehlen operator um abfrage ausdruck

Delphi-Quellcode:

With ADOQuery1 Do
  Begin
    // Gibt es Einträge zu diesem Bearbeiter?
    SQL.Text :=
      'SELECT Count(*) t' + #10 + //diese zeile bekomme ich als fehlermeldung zurück
      'FROM dbo_VFL_VERZ_TEMP t' + #10 +
      'WHERE t.Bearbeiter = :i_Bearbeiter';
    Prepared := True;
    Parameters.ParamByName('i_Bearbeiter').Value := TB_Bearbeiter.Text;
habe gesucht aber keinen fehlenden operator gefunden...
außerdem durchläuft er die sql anweisung nicht einmal...
er geht zu sql.text und springt dann sofort zu prepared := true;
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#30

Re: zeilen werden ignoriert...

  Alt 17. Mär 2004, 08:55
"SQL.Text" bis zum ";" ist doch auch nur eine Code-Zeile.
Hast du ExecSQL auskommentiert und "Memo1.Text := ADOQuery1.SQL.Text" reingetippt?
Es wäre mööglich, das ich etwas vergessen habe und im SQL-Statement ein Komma zuviel/zuwenig auftacht.
Poste mal den generierten Code.
Oder bockt er schon bei der Count(*)-Abfrage?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 08:50 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