AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit DBGrid aktualisierung..
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit DBGrid aktualisierung..

Ein Thema von SKolberg · begonnen am 14. Sep 2005 · letzter Beitrag vom 15. Sep 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von SKolberg
SKolberg

Registriert seit: 20. Dez 2004
Ort: Lingen
150 Beiträge
 
Delphi 2009 Professional
 
#1

Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 10:41
Datenbank: MySQL • Version: 4.1.9 • Zugriff über: ZEOSLib
Hallo,

ich habe ein Problem mit einem DBGrid. Ich zeige über ein DBGrid Datensätze in einem seperatem Formular an in dem ich die Datensätze ändern und neue hinzufügen kann, beim OnActivate es DBGrid.Form habe ich ein refresh eingesetzt damit er bearbeitete Datensätze mit den aktualisierten Daten anzeigt. Allerdings zeigt er mir nicht die neu erstellen Datensätze an, nicht einmal nach einem Neustart, obwohl die Daten in der DB liegen (überprüft).... Woran könnte das liegen??

Das DBGrid greift auf eine DataSource zu welche mit einer ZQuery verbunden ist die Direkt über die ZConnection geht.

Hier mal die Grundfunktionen...
Delphi-Quellcode:
//-------------------------On Form Create---------------------------------------//
procedure TForm1.FormCreate(Sender: TObject);
begin
  with ZQuery1 do
  begin
    Close;
    SQL.Text := 'SELECT * FROM munitionsdatenblatt WHERE MAT LIKE :MAT AND ArtBez LIKE :Artikel AND ModBez LIKE :Modell AND VerZw LIKE :Verwendung';
    ParamCheck := True;
    ParamByName('MAT').AsString := '%';
    ParamByName('Artikel').AsString := '%';
    ParamByName('Modell').AsString := '%';
    ParamByName('Verwendung').AsString := '%';
    Open;
    Label3.Caption:= 'Anzahl Datensätze ' + IntToStr(ZQuery1.RecordCount);
end;
end;
//-------------------------Verwendung Changed-----------------------------------//
procedure TForm1.VerwendungChange(Sender: TObject);
begin
  if MATKlasse.Text = '<Alle>then
  MATStr:= ''
else
  MATStr:= MATKlasse.Text;
begin
  ZQuery1.ParamByName('MAT').AsString := MATStr + '%';
  ZQuery1.ParamByName('Modell').AsString := '%' + Modell.Text + '%';
  ZQuery1.ParamByName('Artikel').AsString := '%' + Artikel.Text + '%';
  ZQuery1.ParamByName('Verwendung').AsString := '%' + Verwendung.Text + '%';
  ZQuery1.Refresh;
  Label3.Caption:= 'Anzahl Datensätze ' + IntToStr(ZQuery1.RecordCount);
end;
end;
//-------------------------ONFORM GET FOCUS-------------------------------------//
procedure TForm1.FormActivate(Sender: TObject);
begin
    ZQuery1.Refresh; // REFRESH GRID FOR GETTING CHANGED DATASETS
end;

Mfg, Steve
Steve Kolberg
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 10:45
Hast Du RequestLive auf True stehen?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von SKolberg
SKolberg

Registriert seit: 20. Dez 2004
Ort: Lingen
150 Beiträge
 
Delphi 2009 Professional
 
#3

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 10:50
Ja..

Cached Updates := False

Mfg, Steve


Die Änderungen zeigt er an aber nur halt nicht die neu eingetragenen..
Steve Kolberg
  Mit Zitat antworten Zitat
Benutzerbild von SKolberg
SKolberg

Registriert seit: 20. Dez 2004
Ort: Lingen
150 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 12:28
So hab natürlich weitergetestet und bemerkt das er mir sowieso nicht alle Datensätze anzeigt und zwar jene die nicht ALLE Felder:

Delphi-Quellcode:
    ParamByName('MAT').AsString := '%';
    ParamByName('Artikel').AsString := '%';
    ParamByName('Modell').AsString := '%';
    ParamByName('Verwendung').AsString := '%';
ausgefüllt haben, ist ein Feld leer zeigt er den Datensatz erst garnicht an...

Mfg, Steve
Steve Kolberg
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 12:38
Hi Steve,

du bist ein NULL Opfer.

Wenn die Spalten kein NOT NULL constraint besitzen, dann muss die Logik für dein SELECT statement etwas aufgerüstet werden. Wenn kein Suchbegriff für "Verwendung" eingegeben wurde, dann entferne die expression "verwendung = '%'" aus dem statement.

marabu
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#6

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 12:47
Zitat von marabu:
Wenn kein Suchbegriff für "Verwendung" eingegeben wurde, dann entferne die expression "verwendung = '%'" aus dem statement.
Oder bau in das Statement IFNULL-Bedingungen ein.
  Mit Zitat antworten Zitat
Benutzerbild von SKolberg
SKolberg

Registriert seit: 20. Dez 2004
Ort: Lingen
150 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 13:12
Das problem ist wenn ich '%' weglasse er nur am Anfang der Bezeichnung sucht und nicht innerhalb der Bezeichnung.

IFNULL habe ich mir hier gerade angeguckt allerdings müsste man ihm doch einfacher sagen können das er alles ausspuckt, ob NOTNULL oder NULL??!

EDIT:// Für den Fall das es nicht ohne IFNULL geht, hat dann jemand einen Link parat auf dem es genau beschrieben wird?

Mfg, Steve
Steve Kolberg
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#8

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 13:22
Zitat von SKolberg:
Das problem ist wenn ich '%' weglasse er nur am Anfang der Bezeichnung sucht und nicht innerhalb der Bezeichnung.
marabu meinte glaub ich eher, den SQL anzupassen und die Bedingung gar nicht abzufragen. Dann kannst du halt nicht mehr so einfach mit ParamByName arbeiten

Zitat von SKolberg:
IFNULL habe ich mir hier gerade angeguckt allerdings müsste man ihm doch einfacher sagen können das er alles ausspuckt, ob NOTNULL oder NULL??!
Leider nicht, NULL-Werte werden halt generell immer ein bisserl anders behandelt von den Datenbanken.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 13:32
Du sollst nicht das % weglassen, sondern den ganzen Teilausdruck wenn er nicht bestückt wird. Schau mal:

Delphi-Quellcode:
begin
  with Query do begin
    SQL.Text := 'SELECT * FROM munitionsdatenblatt WHERE 1 = 0';
    if VerwendungEdit.Text <> 'then begin
      SQL.Add(' or a like :verwendung');
      ParamByName('verwendung').AsString := '%' + VerwendungEdit.Text + '%'
    end;
    // weitere Parameter hier ...
    Open;
  end;
end;
marabu
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

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

Re: Probleme mit DBGrid aktualisierung..

  Alt 14. Sep 2005, 13:35
Oder anstatt dein SQL Statement Stück für Stück aufzubauen, kann man bei der ZeosLib auch MacroByName verwenden. Hat den gleichen Effekt, sieht aber übersichtlicher aus.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 21:13 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