Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Was steht in 1;5 im DBgrid ?? (https://www.delphipraxis.net/104636-steht-1%3B5-im-dbgrid.html)

FLINKER_FINGER 7. Dez 2007 21:29

Datenbank: SQL • Zugriff über: SQL

Was steht in 1;5 im DBgrid ??
 
hi,

wahrscheinlich eine doofe Frage... Wie erfrage ich in einem DBgrid was in einem Feld drin steht. Sprich ich habe nur die Koordinaten 1,5 (erste Spalte, fünfte Reihe)
Bekomme das irgendwie nicht hin...

mkinzler 7. Dez 2007 21:33

Re: Was steht in 1;5 im DBgrid ??
 
Frag die dahinterliegende Datenmenge ab.

FLINKER_FINGER 7. Dez 2007 21:35

Re: Was steht in 1;5 im DBgrid ??
 
Wenn ich dich richtig verstanden habe, soll ich den wert aus dem Feld abfragen?! Das will ich aber genau wissen =)

mkinzler 7. Dez 2007 21:35

Re: Was steht in 1;5 im DBgrid ??
 
Dir markierte Zeile ist der aktuelle Datensatz

FLINKER_FINGER 7. Dez 2007 21:39

Re: Was steht in 1;5 im DBgrid ??
 
hmm.. das geht nicht... ich möchte quasi auf einen Knopf drücken der mir einen neuen Datensatz erstellt. Es gibt einen Primärschlüssel in der Tabelle. Das ist eine fortlaufenden Nummer. Nun möchte ich halt die Tabelle nach dieser nummer sortieren und den letzten Eintrag auslesen und um eins erhöht in den neuen Eintrag einfügen. Somit können Datensätze gelöscht werden, ohne das es Probleme mit dem primärschlüssel bzw. mit dem einfügen neuer gibt.

mkinzler 7. Dez 2007 21:41

Re: Was steht in 1;5 im DBgrid ??
 
Welches DBMS? Man sollte es dem System überlassen eindeutig Schlüssel zu vergeben.

FLINKER_FINGER 7. Dez 2007 21:43

Re: Was steht in 1;5 im DBgrid ??
 
keine Ahnung was DBMS ist.. Benutze eine Tabelle die mit MYSQL befehlen arbeiten kann. Die Datensätze werden über ZeosLib Komponenten in einer DBgrid dargestellt.
So richtig Ahnung habe ich nicht von alle dem, aber Aber es läuft =)

mkinzler 7. Dez 2007 21:45

Re: Was steht in 1;5 im DBgrid ??
 
DBMS = DataBase Management System.
In deinem Fall MySQL. Deklariere den PK als autoincrement

DeddyH 7. Dez 2007 21:47

Re: Was steht in 1;5 im DBgrid ??
 
Genau, und hüte Dich, den PK anschließend selbst setzen zu wollen.

FLINKER_FINGER 7. Dez 2007 21:49

Re: Was steht in 1;5 im DBgrid ??
 
hmm was immer PK auch bedeutet.... Es gibt dann aber nur ein Problem: Man kann in der DBgrid diese Spalte nach belieben ändern... und wenn man einen neuen Datensatz erstellt muss man in diesem Feld "Nummer" auch was eintragen. Bzw. ich will das automatisch machen, jedoch müsste ich vorher wissen, welche die höchste nummer ist. Das kann ich wiederrum rausbekommen, wenn ich Inhalte aus Felder in dem DBgrid abfragen kann.

FLINKER_FINGER 7. Dez 2007 21:50

Re: Was steht in 1;5 im DBgrid ??
 
ahh PK = primary key ^^

mkinzler 7. Dez 2007 21:55

Re: Was steht in 1;5 im DBgrid ??
 
Wie gesagt: Lass den Primärschlüssel vom DBMS setzen!

DeddyH 7. Dez 2007 21:56

Re: Was steht in 1;5 im DBgrid ??
 
Jepp, sonst fällst Du recht schnell auf' s Antlitz :mrgreen:

FLINKER_FINGER 7. Dez 2007 21:59

Re: Was steht in 1;5 im DBgrid ??
 
Ist ja nett das ihr euch sorgen macht =)

Doch wie sagt man so schön: wer nicht hören will müss fühlen *g*
glaube das echt auch ohne hinzubekommen. bräuchte nur eine Information aus einer bestimmten Spallte mir einem variablen Index auslesen. Weis aber nicht wie das geht. könnt ihr mir das verraten ?? :stupid:

mkinzler 7. Dez 2007 22:03

Re: Was steht in 1;5 im DBgrid ??
 
Auch, wenn ich auf aotoinc verzichten müsste, wird ich nicht so vorgehen, sondern den höchsten Wert der Tabelle ermitteln.

FLINKER_FINGER 7. Dez 2007 22:04

Re: Was steht in 1;5 im DBgrid ??
 
Genau das habe ich ja vor !!!
Nur möchte ich das nicht über ein SQL befehl machen, sondern selbst ermitteln.

mkinzler 7. Dez 2007 22:05

Re: Was steht in 1;5 im DBgrid ??
 
Ich habe dir aber gerade geraten, dass per SQL zu machen.

DeddyH 7. Dez 2007 22:07

Re: Was steht in 1;5 im DBgrid ??
 
Eine DBGrid stellt ja erstmal nur Daten dar, die aus einer Datenmenge kommen, die ihr über eine DataSource zugewiesen ist (schwieriger Satz, ich weiß).
Also so: DataSet -> DataSource -> DBGrid

Nun musst Du ergo den umgekehrten Weg gehen, um die dahinterliegenden Daten zu erfragen(DBGrid.DataSource.DataSet). AFAIR besitzt ein DataSet eine Eigenschaft Fields, hier solltest Du fündig werden.

Ceterum censeo: lass den PK vom DBMS setzen, dann bist Du auf der sicheren Seite ;)

FLINKER_FINGER 7. Dez 2007 22:14

Re: Was steht in 1;5 im DBgrid ??
 
ich würde liebend gern den PK vom DBMS setzen lassen. Weis aber nicht genau wie das geht. Wo muss ich das eintragen ? Beim erstellen meiner Table ?
Und wenn das geht weis ich nicht ob es auch mit meinem Programm kooperiert oder ob der User der einen neuen Datensatz erstellt nicht doch die freie auswahl hat einen Wert einzutragen. =(

Da dachte ich, mache ich es lieber auf dem Weg der mir bekannt ist. Aber bin für alles offen.

mkinzler 7. Dez 2007 22:17

Re: Was steht in 1;5 im DBgrid ??
 
Zitat:

Wo muss ich das eintragen ? Beim erstellen meiner Table ?
Ja. einfach autioncrement hinter die Felddeklaration schreiben
Beim Insert lässt du einfach das PK-Feld weg.

DeddyH 7. Dez 2007 22:26

Re: Was steht in 1;5 im DBgrid ??
 
Außerdem macht es in vielen Fällen keinen Sinn, den Benutzer den PK eingeben zu lassen.

FLINKER_FINGER 7. Dez 2007 22:30

Re: Was steht in 1;5 im DBgrid ??
 
Zitat:

Zitat von mkinzler
Zitat:

Wo muss ich das eintragen ? Beim erstellen meiner Table ?
Ja. einfach autioncrement hinter die Felddeklaration schreiben
Beim Insert lässt du einfach das PK-Feld weg.

Nur um dich an der Stelle zu verbessern, Bsp. :CREATE TABLE Kunden (Nummer integer(6) Not null AUTO_INCREMENT, ...



Zitat:

Zitat von DeddyH
Außerdem macht es in vielen Fällen keinen Sinn, den Benutzer den PK eingeben zu lassen.

Ja da gebe ich dir recht. Deswegen wollte ich das auch über das Programm machen. Habe immer noch nicht hinbekommen, wie ich einen Wert auslesen kann, wenn ich eine bestimmte Spalte habe und dafür einen Index...
Das muss dock locker leicht gehen... :wall:

DeddyH 7. Dez 2007 22:35

Re: Was steht in 1;5 im DBgrid ??
 
Vielleicht schreibe ich jetzt Mist, da ich gerade unter Linux hier zugange bin, aber lass Dir doch mal spaßeshalber den aktuellen Wert ausgeben.
Delphi-Quellcode:
ShowMessage(DBGrid.DataSource.DataSet.Fields[DBGrid.SpaltenIndex].AsString);
Haut das hin?

mkinzler 7. Dez 2007 22:35

Re: Was steht in 1;5 im DBgrid ??
 
Warum willst du es unbedingt selber machen? Es gibt verschiedene Gründe das nicht zu tun:
-Angezeigter wert nicht aktuell
-Multiuserzugriff

FLINKER_FINGER 7. Dez 2007 22:43

Re: Was steht in 1;5 im DBgrid ??
 
Zitat:

Zitat von mkinzler
Warum willst du es unbedingt selber machen? Es gibt verschiedene Gründe das nicht zu tun:
-Angezeigter wert nicht aktuell
-Multiuserzugriff

Da gebe ich dir natürlich recht ! Aber ich weis nicht wie ich es möglich mache von 9 Spalten, 8 auf editierbar:true zu setzten und eine auf false. Wenn du dafür eine Lösung hast dann her damit ;)

uro3 9. Dez 2007 20:05

Re: Was steht in 1;5 im DBgrid ??
 
Zitat:

Zitat von FLINKER_FINGER
Aber ich weis nicht wie ich es möglich mache von 9 Spalten, 8 auf editierbar:true zu setzten und eine auf false. Wenn du dafür eine Lösung hast dann her damit ;)

Delphi-Quellcode:
dbGrid1.Columns[0].ReadOnly:=true;
Setzt zB die 1. Spalte auf nur lesen


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 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 by Thomas Breitkreuz