![]() |
DBGrid - Daten eintragen
Hi!
Ich habe in mein Prog ein DBGrid, das eine Verknüpfung zu der Datasource hat, wo die Daten angezeigt werden. Nun möchte ich aber, dass man keine Daten sieht, aber dennoch Daten ins das DBGrid eintragen kann. Verknüpfe ich die Datasource mit einer Querry, dann sehe ich keine Daten, aber ich kann auch nix eintragen. Verknüpfe ich die Datasource mit einem Table, dann sehe ich zwar die Daten, aber ich kann dafür auch was eintragen. Was ich will, ist aber: ich sehe KEINE Daten (wie beim Querry) und kann dennoch etwas eintragen (wie beim Table). Ist das möglich zu realiesieren?? mfg Snyderburn |
Re: DBGrid - Daten eintragen
Hallo,
am Besten nimmst du eine Query und schreibst die Abfrage so:
SQL-Code:
Im AfterPost der Query dann:
Select * from TABELLE Where 1 = 2
Delphi-Quellcode:
Query1.Close;
Query1.Open; |
Re: DBGrid - Daten eintragen
Hallo Snyderburn,
ich würde eine temporäre Tabelle erzeugen und diese mit der DataSource verbinden. Nach der Übernahme der Daten (AfterPost) kannst du den Datensatz verarbeiten und dann wieder aus der Tabelle löschen, sodass das Grid wieder leer ist. |
Re: DBGrid - Daten eintragen
Zitat:
|
Re: DBGrid - Daten eintragen
Hallo Snyderburn,
bei einer Query müsstest du RequestLive auf TRUE setzen. Ich rate aber zu der Tabelle. |
Re: DBGrid - Daten eintragen
@MrSpock: mal ne Frage: warum würdest du dem komplizierten Umweg über eine temporäre Tabelle den Vorzug geben? Die Lösung mit der Query und der Abfrage, die keine Datensätze zurückbringt ist doch sauber und vor allem schnell gemacht :gruebel:
|
Re: DBGrid - Daten eintragen
Hallo Garby,
eine leere Abfrage ist noch nicht sauber :mrgreen: , es ist ja nur ein Trick, um die Datenstruktur zu bekommen. Und du musst ja auch nach dem Eintragen die Query neu ausführen, damit das Grid wieder leer ist. Es kann aber durchaus sein, dass deine Lösung einfacher zu implementieren ist. Du könntest dazu aber auch ein TTable Objekt nehmen und den Filter so setzen, dass keine Daten angezeigt werden, dann sparst du dir auch noch das Löschen, bzw. die erneute Abfrage. Da verschwindet der Datensatz von allein. |
Re: DBGrid - Daten eintragen
Hallo auch,
der Vorteil der Query liegt darin, dass die Datensätze der Tabelle nicht in den Speicher geladen werden müssen. Wenn die DB am Netz liegt, oder man benutzt eine SQL-Server-DB, dann würde das bei größeren Tabellen einen sehr großen Unterschied machen. Die o.g. Methode ist glaube ich bei Client-Server Applikationen Standard, mit der Ausnahme, dass statt
SQL-Code:
Where 1 = 2
SQL-Code:
verwendet wird (Parameter wird auf einen Wert gesetzt, den es in der Tabelle nicht gibt [was fast aufs selbe rauskommt]).
Where LAUFENDE_NUMMER = :Parameter
Aber seis drum: jeder hat seinen eigenen Stil. Das ist ja das Faszinierende beim Entwickeln --> der Kreativität sind keine Grenzen gesetzt. :zwinker: |
Re: DBGrid - Daten eintragen
Ich habe mich fast ganz von den DB-Komponenten verabschiedet. Höchstens mal ein DBedit oder DBtext. Die komlizierteren wie DBgrid, DBchart verwende ich nicht mehr. Da programmiere ich lieber etwas mehr und weiß was ich habe. Auch sind Fehler viel eher zu finden, als sich wie hier mit einem komischen DBgrid rumzuschlagen.
Und ein äußerst positiver Nebeneffekt tritt dabei auch noch auf: das alles wird rasend schnell, da ich alles auf einen Schlag abspeichere. |
Re: DBGrid - Daten eintragen
Danke für die Hilfe, hat mir sehr geholfen!!!
@Hansa: ist schön, dass Du die alles selber programmierst! Aber ich als "Anfänger" bleibe doch erstmal bei den Standart-Komponenten! Oder bist Du etwa gleich damit angefangen, dir alles selber zu proggen??? mfg Snyderburn |
Re: DBGrid - Daten eintragen
Zitat:
|
Re: DBGrid - Daten eintragen
Nochmal auf das Problem zu kommen, was ich hatte:
Es hat alles bei der 1. Tabelle ohne Probleme funktioniert. Mache ich das nun bei der 2. Tabelle, die 100%ig übereinstimmt, dann kommt folgende Fehlermeldung: Tabelle ist schreibgeschützt. Wo nehem ich den Schreibschutz der Tabelle raus?!?!? Ich habe eigentlich keinen eingestellt. mfg Snyderburn |
Re: DBGrid - Daten eintragen
Von CD hast Du nichts kopiert, oder doch ? 8)8)
|
Re: DBGrid - Daten eintragen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz