Autor Beitrag
einfach112
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: So 16.05.04 19:42 
Halli Hallo !
Nun bin ich gerade dabei ein kleines adressbuch zu schreiben !
Probleme bringt mir jetzt nur eines :
Beim anlegen eines neuen eintrags wird direkt eine eindeutige id dem datensatz zugewiesen !
z.B.
1 Christoph nase münchen 089 usw usw usw

gehen wir nun mal davon aus das sich z.B. die Telefonnumer geändert hat !
ich weis jetzt das Christoph die ID 1 hat !
jetzt wollte ich es so machen das sich ne form öffnet zum bearbeiten der einträge
erstmal nur ein editfeld wo man die ID einträgt von dem datensatz den man ändern will nachdem klick auf den button soll also der datensatz geholt werden und in den Editfeldern angezeigt werden zum bearbeiten !
ich ich weis jetzt leider nicht wie ich diese abfrage machen soll und wie ich dann die daten einfach in die felder bekomme ?!
eine ne Idee für mich ! ?
Bin wie immer über jede antwort dankbar !
(bitte versuchen antworten sooo easy wie möglich zu posten da ich bin ein NOOOOOOOB)
cu


EDIT !
naja vieleicht jetzt nochmal genau das was auf der form ist !
also als erstes ein normales Tedit feld wo man die ID eingibt die man sucht
darunter ein button den die suche starten soll nach den daten zur id
darunter dann ca. 8 DBeditfelder in denen dann die daten zur ID angezeigt werden und dort geändert werden können
darunter dann wieder ein button um die geänderten daten zu speichern !

_________________
sorry bin noob !
atarigold
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

WIN XP, Linux 2.4
D7, Delphi 2006 Prof
BeitragVerfasst: So 16.05.04 19:59 
Verwendest du ttable oder tquery ?
einfach112 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: So 16.05.04 20:01 
ttable
und eine paradox7 datenbank !

_________________
sorry bin noob !
einfach112 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: So 16.05.04 20:06 
also ich müsste irgendwie einfach dann zum den datensatz springen der die ID hat !
aber ich finde leider niergendwo ne einfach lösung dazu !
also müsste ja ungefähr so nach dem motto gehen:
datensatz entspricht der id die im editfeld eingegeben wurde !
also so ne art zeiger der auf diese zeile verweist ! und diese daten ausgibt

_________________
sorry bin noob !
hwb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91

Win98 SE, Win2000
D5 Prof
BeitragVerfasst: So 16.05.04 22:19 
Also mal ne Frage:
Wieviele ID willst du dir eigentlich merken um nach einem Datensatz zu suchen ?

Nur mal so als Denkanstoss, wäre da der Nachname nicht besser geeignet ?

Wenn du schnell suchen willst, benötigst du für dieses Feld einen Index,
dann kannst du mal in der Hilfe den Begriff "Findkey" suchen und das ganze mit einer
If-Bedingung einleiten:

If MyTable.Findkey([edit1.Text]) then
anzeigen
else
Message nix gefunden;

Nur mal so als erster Versuch für dich.

Hans
einfach112 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 168

xp
del7
BeitragVerfasst: So 16.05.04 22:24 
naja ist nicht wirklich ein adressbuch ! dies soll später mal ne kundenverwaltung werden !
aber das ist halt ein teil der kundenverwaltung !
mmhhh die idee ist nicht schlecht ! aber dieses anzeigen ist mein proglem !
es soll ja in die editfelder rein damit ich dort die daten ändern kann !

_________________
sorry bin noob !
hwb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 91

Win98 SE, Win2000
D5 Prof
BeitragVerfasst: So 16.05.04 23:13 
Wenn du DBEditfelder hast, wird der aktuelle Datensatz angezeigt.
Benutzt du Findkey und wird der Datensatz gefunden, ist das der Aktuelle, den kannst du ja denn mit EDIT bearbeiten.

Aber noch was anderes: Wenn das eine Kundenverwaltung werden soll ist ja wahrscheinlich mit etwas
größerem Datenaufkommen zu rechnen, auf längere Sicht evtl. auch Netwerk. Da würde aber mit Query arbeiten und eine Datenbank verwenden die das schon kann. Wenn du gleich richtig anfängst, sparst du dir ne ganze Menge Arbeit.

Hans
atarigold
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84

WIN XP, Linux 2.4
D7, Delphi 2006 Prof
BeitragVerfasst: Mo 17.05.04 11:00 
Wenn du dbedit-Felder verwendest wird der aktuelle Datensatz automatisch angzeigt. Wenn nicht fehlen
wohl ein paar Einstellungen:
Bei dbedit unter der Eigenschaft DataSource den Namen deiner verwendeteten DataSource-Komponente eintragen. Diese wiederum muss unter Eigenschaft DataSet den Namen deiner ttable-Komponente haben.

Ansonsten ist, wie von hwb schon vorgeschlagen, für den Primary Key die Funktion FindKey der richtige Weg.
Wichtig für spätere Erweiterungen:
Bei Paradox ist FindKey bzw. SetKey (Funktionsweise siehe Borland Hilfe) nur auf indizierte Felder anwendbar.

Bei ttable gibts ansonsten noch die Funktion filter. Diese ist auf alle Spalten einer Tabelle anwendbar und erlaubt immerhin die Verwendung einer Wildcard bei Textfeldern (* = Platzhalter für beliebige Zeichen).
Beispiel:
table1.filter:= 'name=*'+quotedstr(M*); // Alle Namen die mit M beginnen.
table1.filterd;

Zum Hinweis von hwb:
Die Verwendung von tquery anstelle von ttable bietet deutlich mehr Flexibilität, erhöht i. A. aber auch den Programmieraufwand.
Hier steht dir für Paradox eine Teilmenge von SQL, das Local SQL als Befehlsvorrat zur Verfügung.
Gruß