Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank über Button beschreiben lassen... (https://www.delphipraxis.net/16366-datenbank-ueber-button-beschreiben-lassen.html)

Sulustaner2004 16. Feb 2004 07:36


Datenbank über Button beschreiben lassen...
 
Morgen leute...
ich habe da ein Problem und hoffe mal das ihr mir da helfen könnt...
Ich muss über einen button in eine Datanbank schreiben und egal was ich mache ich bekomme immer die Fehlermeldung "Anweisung bei abgeschlossener Datenmenge nicht ausführbar"
was kann ich tun damit er meine Felder trotzdem in die Datenbank schreibt ??? :gruebel:
zum besseren Verständnis hier der Teil Quellcode um den es geht...
Delphi-Quellcode:
procedure Tversuch.CB_TakeClick(Sender: TObject);
var versflid :integer;
begin
 versflid:=adoquery1.fieldbyname('versuchsfl_id').AsInteger;
  begin
  if adotable1.Locate('versuchsfl_id',versflid,[]) then

     begin
     with adoquery1 do
     begin
     sql.Clear;
     close;
     sql.Add('SELECT dbo_Versuchsflaechen_ST.Versuchsfl_ID, dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung, dbo_Versuchsflaechen_ST.Versuchs_ID,');
     sql.Add('dbo_Versuchsflaechen_ST.Behandlung, dbo_Versuchsflaechen_ST.Versuchsfl_nr_WW, dbo_Versuchsflaechen_ST.Versuchsfl_nr_Hass,');
     sql.Add('dbo_Versuchsflaechen_ST.AnlageJahr, dbo_Versuchsflaechen_ST.Flaechengroesse, dbo_Versuchsflaechen_ST.Flaechenform,');
     sql.Add('dbo_Versuchsflaechen_ST.FOWUGEB, dbo_Versuchsflaechen_ST.FOWUBEZ, dbo_Versuchsflaechen_ST.MAKROKLIMA,');
     sql.Add('dbo_Versuchsflaechen_ST.KLIMASTUFE, dbo_Versuchsflaechen_ST.BOART, dbo_Versuchsflaechen_ST.LOBOFORM,');
     sql.Add('dbo_Versuchsflaechen_ST.HUFORM, dbo_Versuchsflaechen_ST.BOTYP, dbo_Versuchsflaechen_ST.NKS, dbo_Versuchsflaechen_ST.Hoehe_NN,');
     sql.Add('dbo_Versuchsflaechen_ST.HANG_N, dbo_Versuchsflaechen_ST.HANG_R, dbo_Versuchsflaechen_ST.BA_M, dbo_Versuchsflaechen_ST.Herkunft');
     sql.Add('FROM dbo_Versuchsflaechen_ST');
     sql.Add('WHERE dbo_Versuchsflaechen_ST.Versuchsfl_Bezeichnung ='{+quotedstr(versuch)});
     open;
     end;

  while not adoquery1.Eof do
    begin
     adoquery1.Edit;
     adoquery1.FieldByName('versuchs_id').asinteger:=versflid;
     adoquery1.Post;
     adoquery1.Next;
     end;
    end;
   end;
end;
schon mal vielen dank für eure hilfe...

Robert_G 16. Feb 2004 09:02

Re: Datenbank über Button beschreiben lassen...
 
Wenn du in alle Einträge, bei denen "Versuchsfl_Bezeichnung = Versuch" ist, ändern willst:
Delphi-Quellcode:
Var
  ProcessedRecs                        : Integer;
Begin
  ...
  With ADOQuery1 Do
  Begin
    SQL.Text :=
      'Update dbo_Versuchsflaechen_ST t' + #10 +
      'Set   t.Vesuchs_ID = :i_VersFlID' + #10 +
      'WHERE t.Versuchsfl_Bezeichnung = :i_Versuch';
    prepared := True;
    Parameters.ParamByName('i_VersFlID').Value := VersFlID;
    Parameters.ParamByName('i_Versuch').Value := Versuch;
    ProcessedRecs := ExecSQL;
  End;

  MessageDlg(IntToStr(ProcessedRecs) + ' records updated ...', mtInformation, [mbOK], 0);
  ...
End;

Sulustaner2004 16. Feb 2004 09:34

Re: Datenbank über Button beschreiben lassen...
 
danke...aber das problem besteht darin das ich 20 textboxen in eine datenbank übernehmen muss...jede box hat einen anderen namen und gehört zu einem anderen feld in der datenbank (allerdings selbe tabelle) :wall:

Robert_G 16. Feb 2004 09:43

Re: Datenbank über Button beschreiben lassen...
 
Das müsste gehen:
Delphi-Quellcode:
      ...
      'Set   t.Vesuchs_ID     = :i_VersFlID,' + #10 +
      '      t.Behandlung     = :i_Behandlung,' + #10 +
      '      t.Flaechengroesse = :i_FlächGröße,' + #10 +
      ...
      'WHERE t.Versuchsfl_Bezeichnung = :i_Versuch';
    prepared := True;
    Parameters.ParamByName('i_VersFlID').Value := VersFlID.Text;
    Parameters.ParamByName('i_Behandlung').Value := Behandlung.Text;
    Parameters.ParamByName('i_FlächGröße').Value := FlächenGröße.Text;
    ...

    Parameters.ParamByName('i_Versuch').Value := Versuch;
    ProcessedRecs := ExecSQL;
    ...

Sulustaner2004 16. Feb 2004 09:55

Re: Datenbank über Button beschreiben lassen...
 
ok...werde es mal ausprobieren... :-)
mal sehen ob es klappt !!!

Schubi 16. Feb 2004 10:01

Re: Datenbank über Button beschreiben lassen...
 
Ansonsten mal sowas in der Richtung:

Delphi-Quellcode:
For i := 1 to 20 do begin
  Eintrag := (FindComponent('Edit'+IntToStr(i)) as TButton).Text
end;
So brauchst du nicht die Buttons alle hinschreiben.
Müssen halt alle nacheinander Button1, Button2, Button3 usw heißen

Sulustaner2004 16. Feb 2004 10:25

Re: Datenbank über Button beschreiben lassen...
 
nun ja...es sind ja 20 textboxen und nur ein button...

Schubi 16. Feb 2004 10:33

Re: Datenbank über Button beschreiben lassen...
 
Tschuldigung...mein ich doch... Bin etwas durchd en Wind heute :mrgreen:

(FindComponent('Edit'+IntToStr(i)) as TButton).Text

Sulustaner2004 16. Feb 2004 10:45

Re: Datenbank über Button beschreiben lassen...
 
macht ja nichts....
ist ja noch früh am morgen !!! :-)

Robert_G 16. Feb 2004 11:25

Re: Datenbank über Button beschreiben lassen...
 
Ist noch ein bisschen früh heute, oder was Schubi? :mrgreen:
Zitat:

Zitat von Schubi
(FindComponent('Edit'+IntToStr(i)) as TButton).Text

Delphi-Quellcode:
(FindComponent('Edit'+IntToStr(i)) as TEdit).Text


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:14 Uhr.
Seite 1 von 2  1 2      

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