Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi XE5: MyBase einzelnen Wert im DataSet ändern (https://www.delphipraxis.net/179950-xe5-mybase-einzelnen-wert-im-dataset-aendern.html)

Kralle 13. Apr 2014 07:39

Datenbank: MyBase • Version: 1 • Zugriff über: direkt

XE5: MyBase einzelnen Wert im DataSet ändern
 
Moin,

nach dem ich jetzt x-Beiträge und Tutorials gelesen habe, bin ich immer noch nicht schlauer.
Gegeben ist
ID Status Codenummer Beschreibung Wert
1 1 30 Spannung
2 1 31 Strom
3 0 32 Widerstand

Wie ändere ich OHNE den Weg über das DBGrid bei ID=3 den Wert Status=0 auf Status=1 :?:

DataSet.edit
.....
DataSet.post
sind klar, aber dazwischen?

Gruß HEiko

Sir Rufo 13. Apr 2014 07:53

AW: XE5: MyBase einzelnen Wert im DataSet ändern
 
So
Delphi-Quellcode:
DataSet.FieldByName('Status').Value := 1;

Kralle 13. Apr 2014 08:12

AW: XE5: MyBase einzelnen Wert im DataSet ändern
 
Guten Morgen,

Zitat:

Zitat von Sir Rufo (Beitrag 1255475)
So
Delphi-Quellcode:
DataSet.FieldByName('Status').Value := 1;

Aber, woher weiss das Dataset, das ich "Zeile 3" und nicht "Zeile 1" ändern will?
Das ist mein Problem.

Gruß HEiko

Sir Rufo 13. Apr 2014 08:17

AW: XE5: MyBase einzelnen Wert im DataSet ändern
 
Delphi-Quellcode:
if Dataset.Locate( 'ID', 3, [] ) then
begin
  Dataset.Edit;
  Dataset['Status'] := 1;
  Dataset.Post;
end
else
  raise Exception.Create( 'Datensatz nicht gefunden!' );
Es gibt doch jede Menge Tutorials bzgl. Delphi und Datenbanken, warum schaust du dir die nicht mal an? :gruebel:

z.B. http://www.delphi-treff.de/tutorials/datenbanken/

Kralle 13. Apr 2014 08:45

AW: XE5: MyBase einzelnen Wert im DataSet ändern
 
Moin,

Zitat:

Zitat von Sir Rufo (Beitrag 1255478)
[DELPHI]if Dataset.Locate( 'ID', 3, [] ) then

Okay, damit weiß ich ob der aktuelle Datensatz der mit der ID=3 ist.
Jetzt muß ich nur noch den dafür sorgen, das der aktuelle Datensatz der mit der ID=3 ist.
Mit Dataset.Locate( 'ID', 3, [] ) scheint man das zu machen.
Kurz ausprobiert: Jupp geht.

Zitat:

Zitat von Sir Rufo (Beitrag 1255478)
Es gibt doch jede Menge Tutorials bzgl. Delphi und Datenbanken, warum schaust du dir die nicht mal an? :gruebel:

z.B. http://www.delphi-treff.de/tutorials/datenbanken/

Ich habe die letzten Stunden auch dort gelesen, Foren durchsucht und in zwei Datenbankbücher im Regal geschaut, aber bei alle MyBase-Beispiele wurden Daten nur im DBGrid geändert.
Dann habe ich nach 'Dataset' und 'ändern' gesucht und bekam x-Antworten wie man die Breite, Farbe usw. ändern kann. Also, habe ich nach 'Dataset' und 'editieren' gesucht aber dort fand ich nur
Delphi-Quellcode:
DataSet.FieldByName('Status').Value := 1;
in verschieden Schreibweisen - also nur auch auf den aktuellen Datensatz bezogen, aber ich fand nichts wie ich einen Datensatz auswähle.

Gruß HEiko

Sir Rufo 13. Apr 2014 08:57

AW: XE5: MyBase einzelnen Wert im DataSet ändern
 
Hmmm, http://www.delphi-treff.de/tutorials...ner-datenbank/

und Delphi-Referenz durchsuchenTDataset.Locate teilt mit
Zitat:

Diese Methode führt folgende Aktionen durch:
Sie überprüft, ob es sich um eine unidirektionale Datenmenge handelt. Ist dies der Fall, wird eine EDatabaseError-Exception ausgelöst.
Sie gibt false zurück, wenn kein übereinstimmender Datensatz gefunden und der aktive Datensatz nicht gewechselt wurde.
Abgeleitete Klassen (mit Ausnahme unidirektionaler Datenmengen) überschreiben Locate, um nach dem Datensatz zu suchen, in dem die in KeyFields übergebenen durch Semikolon getrennten Felder die durch KeyValues angegebenen Werte haben (KeyValues ist eine Variante bzw. ein variantes Array). Mit Options können Suchoptionen festgelegt werden (Groß-/Kleinschreibung und Teilübereinstimmung). Locate gibt true zurück, wenn der gesuchte Datensatz gefunden und aktiviert wurde.

Kralle 13. Apr 2014 10:05

AW: XE5: MyBase einzelnen Wert im DataSet ändern
 
Hallo Sir Rufo,

Danke für Deine Hilfe.

Gruß Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 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