Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Probleme mit DBGrid aktualisierung.. (https://www.delphipraxis.net/53329-probleme-mit-dbgrid-aktualisierung.html)

SKolberg 14. Sep 2005 13:40

Re: Probleme mit DBGrid aktualisierung..
 
Danke @ALL

werde es heute Abend mal mit beiden Varianten ausprobieren.
Gerade keine Zeit...

Mfg, Steve

SKolberg 15. Sep 2005 07:48

Re: Probleme mit DBGrid aktualisierung..
 
Danke erst nochmal, habe es gestern Abend ausprobiert und funktioniert wunderbar (Methode von Marabu).

Mal eine grundsätzlich Frage: Wieso gibt er denn die Null-Felder nicht aus? Normalerweise dürfte ihn das doch garnicht interessieren... Wenn ich ein Suchfeld leer lasse, Null ist doch "leer"??! Oder als was gibt der SQL ein Null-Feld aus?


Mfg, Steve

Sharky 15. Sep 2005 07:58

Re: Probleme mit DBGrid aktualisierung..
 
Zitat:

Zitat von SKolberg
... Null ist doch "leer"??! Oder als was gibt der SQL ein Null-Feld aus?

Genau das ist es nicht. Ein Feld mit dem "Inhalt" NULL ist nicht leer. Es hat den definierten Zustand NULL was nicht mit "" zu vergleichen ist.
SQL-Code:
SELECT * FROM tabelle WEHRE name IS NULL
ist etwas anderes als:
SQL-Code:
SELECT * FROM tabelle WHERE name = ''

Jelly 15. Sep 2005 08:19

Re: Probleme mit DBGrid aktualisierung..
 
Wenn wir schon beim Thema NULL sind, hier auch noch ein Pfeffkörnchen von mir. Wenn du die Abfrage:
SQL-Code:
select sum(Zahlen) from Tabelle
an den Server schickst, und deine Tabelle etwa so aussieht:
Code:
4
2
3
NULL
5
so liefert dir die Query nicht etwa 14, wie vielleicht erwartet, sondern NULL... Tja, auch ein SQL Server kann keine Äpfel und Birnen addieren.

Wenn man also riskiert, NULL Werte in eine SUM Funktion zu benutzen, muss man normalerweise diesen Sachverhalt berücksichtigen. Bei einigen Servern kann mann global einstellen, wie sich SUM in dem Fall verhalten soll, oder man muss sein SQL Befehl etwas anpassen. Etwa so:
SQL-Code:
select Zahlen from Tabelle where not(Zahlen is null)

SKolberg 15. Sep 2005 08:31

Re: Probleme mit DBGrid aktualisierung..
 
Mal eine OT Frage:
Wie kann ich alle Felder im SQL die NULL sind löschen/ mit NA ersetzen??

Zitat:

DELETE FROM munitionsdatenblatt WHERE NSN IS Null
löscht den kompletten Datensatz...

Zitat:

UPDATE munitionsdatenblatt SET NSN=NSN WHERE NSN IS NULL
Error in SQL Syntax

Die erklärung im SQL Handbuch verstehe ich anscheinend nicht richtig..


Mfg, Steve

Jelly 15. Sep 2005 08:37

Re: Probleme mit DBGrid aktualisierung..
 
Von welchem Datentyp ist denn die Spalte NSN... Wenns ein String ist, musst du in deiner Updateformulierung natürlich auch
... set NSN='NSN' ...
Aber was soll das bringen.
Vom Datenbankdesign her sollte man sich vorher überlegen, ob man NULL Werte zulassen will, oder nicht. Dann taucht so ein Problem im Nachhinein gar nicht auf.

SKolberg 15. Sep 2005 08:47

Re: Probleme mit DBGrid aktualisierung..
 
Ich habe zwar schon "etwas" mit Datenbanken gemacht, allerdings jetzt zum erstenmal richtig. Wusste halt nicht das solche Probleme auftauchen.. Habe zuerst komplett alles in Access gehabt, dann Access und SQL genutzt ( noch keine NULL probleme) und jetzt programmiere ich den Frontend in Delphi um vom Access wegzukommen. Ich bin zwar was Hardware und Software problembehebung angeht sehr versiert allerdings nicht im Umgang mit Datenbanken und Programmieren. Aber man lern ja nie aus oder?


Mfg, Steve

Jasocul 15. Sep 2005 08:52

Re: Probleme mit DBGrid aktualisierung..
 
Beim Datenbankdesign kann man dann noch Default-Werte für die betroffenen Felder oder Trigger definieren.
Das sollte dann mal nach gearbeitet werden. Zum jetzigen Zeitpunkt musst du natürlich erstmal sinnvolles eintragen.

Habe gerade gesehen, dass du noch was geschrieben hast.
Ist es eine Web-Anwendung? mySQL ist für mich nicht die ideale Datenbank. Es gibt auch andere kostenlose DBs, die mehr können.

marabu 15. Sep 2005 08:53

Re: Probleme mit DBGrid aktualisierung..
 
Hi Steve,

das hier sollte bei einem (VAR)CHAR Feld funktionieren:

SQL-Code:
UPDATE munitionsdatenblatt SET NSN = 'n/a' WHERE NSN IS NULL
Du solltest dann aber besser ein DEFAULT constraint für solche Spalten definieren.

marabu

SKolberg 15. Sep 2005 08:58

Re: Probleme mit DBGrid aktualisierung..
 
Die Default Werte habe ich gerade geändert, trifft aber nicht auf die bereits vorhandenen daten zu. Muss dann mal die komplette DB überarbeiten.

@Jasocul
Im moment nutzen wir die DB nur im Netzwerk, aber ich denke schon as die Zeit kommen wird wo es nötig ist über VPN/I-Net drauf zuzugreifen. Was für DB's könntest du mir empfehlen?


Mfg, Steve


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:12 Uhr.
Seite 2 von 3     12 3      

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