AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi einzelnes feld updaten
Thema durchsuchen
Ansicht
Themen-Optionen

einzelnes feld updaten

Ein Thema von ElectricalFire · begonnen am 12. Feb 2005 · letzter Beitrag vom 15. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
ElectricalFire

Registriert seit: 20. Dez 2004
Ort: Zürich
19 Beiträge
 
Delphi 2005 Architect
 
#1

einzelnes feld updaten

  Alt 12. Feb 2005, 22:26
Datenbank: mysql • Zugriff über: momentan noch mir script, ohne adapter
hallo zusammen, hab folgendes problem:

ich moechte meinen DB server nicht unnoeting mit datentransfers belasten. somit will ich mit mysql nicht immer einen vollen "SELECT * FROM BLA" mahcen, sondern lediglich die geupdateten zahlen felder altualisieren.

wenn ich select eines einzelnen feldes, mit den where regeln mache, bekomme ich ja nur den einen wert, dabei moechte ich aber die ganze bestehende tabelle behalten und, wie gesagt, nur die neuen daten herunterladen.

wie kann ich sowas realisieren? unterstuetzt das mysql und/oder die dbgrid komponente von borland?

danke fuer eure hilfe!
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#2

Re: einzelnes feld updaten

  Alt 13. Feb 2005, 01:00
Ich bin bischen verwirrt
Welche updateten Felder meinst du? Bei einem Select wird nix geupdated.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: einzelnes feld updaten

  Alt 13. Feb 2005, 10:37
Das wirst du nur hinbekommen, wenn du ohne datenbanksensitive Anzeige-Komponenten arbeitest. Ob das allerdings sinnvoll ist, kannst nur du beurteilen.
Ich möchte jedenfalls nicht anfangen, meine Grids per Hand zu befüllen

Optimiere lieber deine SQL-Statements. Und dann gibt es noch die Refresh-Methode. Habe aber bisher nich geprüft, ob die schneller ist, als ein Close und Open auf dem DataSet.
Peter
  Mit Zitat antworten Zitat
ElectricalFire

Registriert seit: 20. Dez 2004
Ort: Zürich
19 Beiträge
 
Delphi 2005 Architect
 
#4

Re: einzelnes feld updaten

  Alt 13. Feb 2005, 11:15
habs rausgekriegt:

es gibt in sql einen command, der update heisst (irrefuehrenderweise )

mit dem command kann ich querries und auch subquieries starten.

syntax:

Delphi-Quellcode:
UPDATE JD11.BOOK SET TITLE = 'Leaning on a wall', AUTHOR = 'J.Killner', TIMES_LENT = 0, LENT_DATE = NULL, RETURNED_DATE = NULL WHERE ISBN = 989

oder

UPDATE JD11.SECTION SET BOOK_COUNT = (SELECT COUNT(*) FROM JD11.BOOK WHERE JD11.BOOK.SECTION_ID = JD11.SECTION.SECTION_ID) WHERE SECTION_ID IN (SELECT SECTION_ID FROM JD11.BOOK)
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: einzelnes feld updaten

  Alt 13. Feb 2005, 11:59
Zitat von Jasocul:
Das wirst du nur hinbekommen, wenn du ohne datenbanksensitive Anzeige-Komponenten arbeitest. Ob das allerdings sinnvoll ist, kannst nur du beurteilen.
Wäre sogar sehr sinnvoll. Schließlich taugt Delphis DB Aware -Zeugs nur für Quick'nDirty-Umhergeklicke.
Es ist damit einfach nicht möglich seine Daten in Objekte abzubilden und diese an Controls zu binden.

@ElectricalFire
Du machst mir Angst. Du kanntest UPDATE nicht?
Außerdem macht es keinen Sinn sowas fix in der DB abzulegen. Die Anzahl der referenzierten Detaildatensätze bekommst du über eine Abfrage.
Man speichert generell nix in die DB, dass sich aus anderen gespeicherten Daten errechnen lässt.
  Mit Zitat antworten Zitat
ElectricalFire

Registriert seit: 20. Dez 2004
Ort: Zürich
19 Beiträge
 
Delphi 2005 Architect
 
#6

Re: einzelnes feld updaten

  Alt 13. Feb 2005, 20:04
Robert:

Manchmal hab ich von mir selbst auch angst

nei ich kannte den command noch, ist 2 jahre her seit ich ihn gebraucht habe. dachte jedoch das teil heisst 'refresh'.
bin dann per zufall darauf gestossen.

den gezeigten code sind samles, brauche ich nicht, und sind nur als beispiele fuer andere mitleser da. man sieht einfach wie die subquieries aufgebaut sind.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: einzelnes feld updaten

  Alt 14. Feb 2005, 07:20
Zitat von Robert_G:
Wäre sogar sehr sinnvoll. Schließlich taugt Delphis DB Aware -Zeugs nur für Quick'nDirty-Umhergeklicke.
Es ist damit einfach nicht möglich seine Daten in Objekte abzubilden und diese an Controls zu binden.
Jetzt übertreibst du aber wirklich. Zumindest die DBGrids als Auswahl-Übrsicht ist brauchbar. Oder liest du das alles ind StringGrids ein?
Und eine paar kleinere Tabellen ohne Abhängigkeiten kann man durchaus so verarbeiten.

@ElectricalFire:
Irgendwie hatte ich deine Frage völlig falsch verstanden. Ich dachte es ginge um ein Aktualisieren von dargestellten Feldinhalten in Edit-Feldern. Das du ein SQL-Update meintest, da wär ich nicht drauf gekommen. Da muss ich wohl ein Brett vorm Kopf gehabt haben.
Peter
  Mit Zitat antworten Zitat
ElectricalFire

Registriert seit: 20. Dez 2004
Ort: Zürich
19 Beiträge
 
Delphi 2005 Architect
 
#8

Re: einzelnes feld updaten

  Alt 14. Feb 2005, 12:51
jasocul:

no problem. kann ja passieren.

@all:

weiss vielleicht jemand, wie man ein einzelnes feld, also eine zelle (cell) farbig gestaltet, also wenn ein darin enthaltener wert ueber 50 steigt, soll der hintergrund gruen werden, sonst rot... so in dem stiel..? kann man sowas ueberhaupt?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: einzelnes feld updaten

  Alt 14. Feb 2005, 13:13
Schau mal auf meiner Homepage unter Feld-Formatierer. Beachte aber den Hinweis-Text.
Selbst, wenn du die Komponente nicht installieren willst, kannst du im Source sehen, wie es funktioniert.
Peter
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#10

Re: einzelnes feld updaten

  Alt 14. Feb 2005, 13:24
Das kannst du mit dem Eventhandler DrawColumnCell des dbgrids machen ...


Delphi-Quellcode:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
var FieldValue:Integer;
begin

  //nicht ausführen wenn die Zelle den Focus hat oder selektiert ist
  if (gdSelected in State) or (gdFocused in State) then exit;

  // Beispiel(nur wenn die 2. Spalte des Grids gezeichnet wird)
  if column.Index=1 then
  begin
    try
      
      FieldValue := Round(column.Field.Value);
      
      // Schriftfarbe wählen
      dbgrid1.canvas.Font.Color:=clBlack;

      // Hintergrundfarbe abhängig vom Wert wählen
      if fieldValue > 50 then
        dbgrid1.canvas.Brush.Color:=clRed else
        dbgrid1.canvas.Brush.Color:=clGreen;

      // Zelle zeichnen
      dbgrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);

    except
     // kein Numerischer Wert
    end;
  end;

end;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 01:39 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