AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Änderung vom DBGrid übernehmen geht nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Änderung vom DBGrid übernehmen geht nicht

Ein Thema von Waltraut · begonnen am 23. Feb 2004 · letzter Beitrag vom 24. Feb 2004
Antwort Antwort
Waltraut

Registriert seit: 23. Feb 2004
4 Beiträge
 
#1

Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 14:33
Hallo

Ich hab da ein kleines Problem, weiß aber nicht, wie cih es lösen soll.

Meine Situation ist folgende. Ich hab mir in Delphi 6 Ent. eine kleine Datenbankanwendung gebastelt. Die greift auf einen mysql server zu. Das ganze hab ich mit dbexpress Komponenten zusammengebastelt. Das klappt auch alles ganz wunderbar.

Nun kommt das Problem. Ich kann Änderungen, die ich in dem DBgrid vorgenommen hab nicht übernehmen. Wenn ich zum Beispiel ein Paar Zellen ändere, und dann form2.SQLTable1.Post; mache, kommt die Meldung "SQLTable1: Datenmenge weder im Editier- noch im Einfügemodus".

Was kann ich tun?

(oder mach ich da komplett was falsch? mit "post" werden doch Änderungen in die Db geschrieben, oder?)



Mfg Waltraut
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 14:54
Hallo Waltraut,

erstmal herzlich willkommen im Delphi-Forum.

Zu Deinem Problem:

Du musst Deine Datenmenge (hier SQLTable1) mit
Code:
form1.SQLTable1.Edit;
zuerst in den Edit-Modus schalten. Erst danach hat ein Post-Befehl Wirkung.


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 14:54
Bevor du POST verwendest solltest du testen, ob sich die Tabelle im Edit-Modus befindet.

Delphi-Quellcode:
if SQLTable1.Status in [dsInsert, dsEdit] then // befindest sich die Tabelle im Edit- oder Insert-Modus?
  SQLTable1.Post; // ja, Post durchführen.
Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 14:55
Ich nochmal,

es muss natürlich heissen

Code:
form2.SQLTable1.Edit;


Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Waltraut

Registriert seit: 23. Feb 2004
4 Beiträge
 
#5

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 17:33
Danke für die schnellen Antworten, ich hab das mal probiert. Da kommt, wie sollte es anders sein, auch eine schöne Meldung, die da lautet: "SQLTable11: Eine Datenmenge, die nur zum lesen ist, kann nicht geändert werden".

Das hört sich für mich nach einem readonly an, aber ich wüßte es, wenn ich sowas irgendwo eingestellt hätte.

An der DB selbe kann es nicht liegen. Das müßte feststehen.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#6

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 18:06
Hi

Welche Komponeten benutzt du für den DB-Zugriff?
Die BDE & Zeos-Kmpos haben IMHO die Eigenschaft "RequestLive", damit ist es diesen Komponenten möglich einen eindeutigen Schlüssel von der DB anzufordern und damit Änderungen vorzunehmen. Wie es bei dem ADO-Zeugs ( ) ist , kann ich dir jetzt nicht mit Sicherheit sagen.

p.s.: @fBrust schaue mal nach links oben auf der Seite...
kurz lesen, einprägen und pling -> genau wir sind hier in der Delphi-PRAXIS
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 18:56
Was verbirgt sich hinter deiner SQLTable: Eine TTable oder eine TQuery?

Sollte es sich um eine TQuery handeln und du Local SQL (Paradox, dBase) verwenden, dann wird die Datenmenge in den ReadOnly-Modus versetzt, sobald du ein Order By Statement verwendest.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Waltraut

Registriert seit: 23. Feb 2004
4 Beiträge
 
#8

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 23. Feb 2004, 19:17
Ich benutze TSQLConnection, TSQLTable, dann TClientDataSet, nen TDadasource und zum Schluß ein TDBGrid. Das ganze an einer localen Mysql Datenbank.

Wenn das alles garnicht klappt, muß ich wohl sowas wie Zeos oder so probieren, aber eigentlich würd ich gern die Delphi eigenen Sachen verwenden.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 24. Feb 2004, 08:42
Hast du schon versucht, deine TSQLTable durch ein TSQLQuery zu ersetzen? Auf eine Query kannst du eigentlich immer genauso wie auf eine Table zugreifen. Und ich habe zumindest bei ADO schlechte Erfahrungen mit AdoTable gemacht. SQLTable ist meines wissens sowieso nur aus Kompatibilitätsgründen zu den alten Komponenten vorhanden.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Waltraut

Registriert seit: 23. Feb 2004
4 Beiträge
 
#10

Re: Änderung vom DBGrid übernehmen geht nicht

  Alt 24. Feb 2004, 11:54
Ich habs aufgegeben. Das dbexpress scheint wohl nicht das idealste zu sein. Deshalb hab ich mir die Zeoslib Geschichte installiet, und siehe da, es geht, und sogar ganz kompfortabel.

Noch'n schönen Tag
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:45 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