AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi cout(*) anweisung hat fehler...

cout(*) anweisung hat fehler...

Ein Thema von Sulustaner2004 · begonnen am 17. Mär 2004 · letzter Beitrag vom 19. Mär 2004
Antwort Antwort
Seite 2 von 2     12
Robert_G
(Gast)

n/a Beiträge
 
#11

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 10:42
Nur die Edits, in denen Werte stehen werden in das Statementr geschrieben.
Außerdem, das da erzeugt einen neuen Eintrag!
  Mit Zitat antworten Zitat
Sulustaner2004

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

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 10:46
fakt ist aber das wenn ich einen wert in die editfelder eintrage nur das feld bearbeiter in die datenbank geschrieben wird und mehr nicht !!!!
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#13

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 11:10
hallo,

ist das oben gepostete dein SQL-Code? Dann ist es klar, warum er nur das feld "bearbeiter" in die db schreibt. Steht ja auch nur eine spalte im Insert drin.

Gruß
Ken
  Mit Zitat antworten Zitat
Sulustaner2004

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

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 11:14
hi @ cenbells
das dort oben ist nicht unbedingt der sql code...
das ist das was ich in ein memo haben schreiben lassen um zu sehen was in der datenbank ankommt... die anweisung dazu sieht so aus wie sie oben in der datei angehangen ist !!!
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#15

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 11:18
Es wird anhand der beschriebenen Edits ein Statement erzeugt. Wenn es zu dem Bearbeiter einen Eintrag gibt, ein INSERT, sonst ein UPDATE.
  Mit Zitat antworten Zitat
Sulustaner2004

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

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 11:24
naja...irgendwie versteh ich schon was du meinst...aber wenn ich jetzt einen neuen bearbeiter hinzu füge dann soll er mir auch die ganzen werte zu dem bearbeiter eintragen...wenn der bearbeiter schon vorhanden ist soller ja auch eine zeile hinzugefügt werden...
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#17

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 11:27
Komplett aneinander vorbeigeredet!
DAnn spare die Count-Abfrage und setzte Processedrecs immer auf 0.
  Mit Zitat antworten Zitat
Sulustaner2004

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

Re: cout(*) anweisung hat fehler...

  Alt 18. Mär 2004, 11:40
sorry aber ich steh heute ein bischen neben mir...was meintest du jetzt ???

Delphi-Quellcode:
 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(*)' + #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 //hier gleich null lassen und was soll ich mit der count abfrage machen ???
    Begin
      // Bearbeiter muss auf jeden Fall eingefügt werden
      SetStr :=
        'INSERT INTO dbo_VFL_VERZ_TEMP ' + #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;
      //memo1.Text:=adoquery1.SQL.Text;
    End;
  End;
sollte diese If ProcessedRecs = 0 Then anweisung gleich null sein oder auf was wolltest du raus ???
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Sulustaner2004

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

Re: cout(*) anweisung hat fehler...

  Alt 19. Mär 2004, 08:16
weil es trotzdem nicht richtig geht..er schreibt immer nur den bearbeiter und mehr nicht in die db

und ich bekomme seit eben eine meldung syntaxfehler in update anweisung..
ok...syntax fehler ist behoben...aber mehr auch nicht...er schreibt nur den bearbeiter rein....
und wenn er schon vorhanden ist dann schreibt er ihn einfach über....
Und das leben geht weiter.....
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:53 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