Autor Beitrag
PISAFOX
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mi 28.05.08 17:01 
EINLEITUNGS BLABLA:


Einen Wunderschönen guten Tag.
Ich brauch eure Hilfe und zwar muss ich für ein Projekt in der schule eine Datenbank erstellen
und daraus Daten lesen. Problem ist das ich meine Lehren nicht um hilfe bitten kann und aus dem buch
(Borland Delphi 6 für Windows Fortgeschrittene Programmierung) nicht schlau werde.

Und zwar geht es um folgendes

EIGENTLICHE FRAGE:

Ich muss eine Datenbank erstellen und das die Werte in das Programm lesen

Realitätsbezogenes Beispiel

Abaddon 94265 64482 456 7895424198 54654644654 456 5642

Diese zahlen stehen in der Datenbank und sollen nun in das Programm einfliesen um dort berechnet zu werden.

Ich weiß aber nicht wie das geht im Moment versuche ich es mit einer Tabelle aus der BDE
(Borland Database Engine) mein Problem ist das ich ein Tabelle erstellen, und mit Datasource in ein DBGrid Komponenten einspeisen kann aber nicht weis wie ich die Zahlen aus der Tabelle in die Unit also in den eigentlichen Rechenprozess übertrage.

FRAGE KURZFORM:

Wie kann ich aus einer Datenbank wie BDE einen Wert in die Unit holen?
Ist BDE überhaupt dafür ausgelegt?
Wenn ja wie lautet die Programmierung dafür?


Ich bedanke mich im voraus für die antworten und bitte euch seit einfach in der Sprachwahl aber sorgfältig in der Beschreibung.

Mit freundlichen Grüßen
PISAFOX
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: Mi 28.05.08 18:41 
Hallo,

hast Du mal hier geschaut? www.delphi-treff.de/tutorials/?cat=6

Da müssten die Tutorials stehen die Du brauchst, um die Daten, die Du ja anscheinend schon in die DB eintragen kannst, auch wieder auszulesen (wahrscheinlich "Datenbanken für Fortgeschrittene").

bye
bflegel

_________________
I know all the jokes about my name
PISAFOX Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 29.05.08 02:13 
Okay ich kuck mir das mal durch
PISAFOX Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 01.06.08 02:21 
ja okay das hat mich schon etwas weiter gebracht aber das problem ist das ich brauche alle werte aus eine zeile aber einzelnt wie geht das denn?
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: So 01.06.08 11:48 
Hallo,

wie hast Du bisher Deine DB-Abfrage gelöst? Arbeitest Du wie im Tutorial beschrieben mit TTable? Dann kannst Du doch mit

ausblenden Delphi-Quelltext
1:
Label1.Caption := Table3.FieldByName('<feldname>').AsString;					


auf die entsprechenden Felder Deines Datensatzes zugreifen (Beispiel aus dem Tutorial "Datenbanken für Fortgeschrittene").

bye
bflegel

_________________
I know all the jokes about my name
PISAFOX Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 01.06.08 16:01 
ja das problem ist doch das ich in der zeile nur den namen suchen kann also
abbadon 45464 45465465 4645487 47487854 874867
ich brauch aber die zahlen die dahinter in der zeile stehen.
und zwar einzelnt zum berechnen im Programiercode.
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: So 01.06.08 19:32 
Mal ne dumme Frage,

hast Du

ausblenden Quelltext
1:
abbadon 45464 45465465 4645487 47487854 874867					


in EINEM Feld oder in 6 einzelnen Feldern?

- Wenn es 6 einzelne Felder sind, kannst Du doch das entsprechende Feld jeweils einzeln auslesen.

- Wenn es 1 Gesamtfeld ist, dann musst Du wohl den String bei den Leerstellen trennen und z. B. in eine Stringlist "auslagern".

bye
bflegel

_________________
I know all the jokes about my name


Zuletzt bearbeitet von bflegel am Di 03.06.08 07:06, insgesamt 1-mal bearbeitet
PISAFOX Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 01.06.08 23:25 
ja aber wie komm ich an diese werte heran wenn ich diese werte suche weis ich doch nicht welche zahl da steht ich weiß nur das sie in der selben zeile stehen wie der name ABBADON wie kann ich dem pc sagen lies mir einzelnt die zahelen aus die in der zeile der ABBADON stehen.
die ABBADON zu finden ist kein problem

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Table1.First;
  while not Table1.Eof do begin
    if Table1.FieldByName('Ships').AsString='ABBADON' then
      break
    else Table1.Next;
  end;


aber wie finde ich dann die dazugehörigen zahlen die in 6 verschiedenen Feldern in der selben zeihle stehen
gibt es sowas wie LINKS und RECHTS in der Programiersprache das ich sagen kann wenn die ABBADON gefunden worde ...
...keine ahnung gofieldleft oder so ich weis das es für nach unten den befehl NEXT und für nach oben den befehl PRIOR
gibt aber für nach rechts und links kunnst du so einen befehl???

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: Mo 02.06.08 05:47 
Guten Morgen,

Deine Datenbank ist also so aufgebaut:

ausblenden Quelltext
1:
2:
<feldname1> <feldname2> <feldname3> <feldname4> <feldname5> <feldname6>
abbadon     45464       45465465    4645487     47487854    874867


Dann müsstest Du so an die Werte drankommen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
var
tabellenwert1 : string;
tabellenwert2,
tabellenwert3,
tabellenwert4,
tabellenwert5,
tabellenwert6 : integer;

...

Table1.First;
while not Table1.Eof do begin
if Table1.FieldByName('Ships').AsString='ABBADON' then
  begin
    tabellenwert1 := Table1.FieldByName('<feldname1>').AsString;
    tabellenwert2 := Table1.FieldByName('<feldname2>').AsInteger;
    tabellenwert3 := Table1.FieldByName('<feldname3>').AsInteger;
    tabellenwert4 := Table1.FieldByName('<feldname4>').AsInteger;
    tabellenwert5 := Table1.FieldByName('<feldname5>').AsInteger;
    tabellenwert6 := Table1.FieldByName('<feldname6>').AsInteger;
    break
  end
else 
  Table1.Next;
end;


(ungetestet - evtl. Syntaxfehler)

bye
bflegel

_________________
I know all the jokes about my name
PISAFOX Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 02.06.08 15:37 
junge du bist ja vollkommen krank das ist ja genial!!!!!
THX
bflegel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 193
Erhaltene Danke: 1

Win XP, Win 7, BS2000
D5
BeitragVerfasst: Mo 02.06.08 17:39 
user profile iconPISAFOX hat folgendes geschrieben:
junge du bist ja vollkommen krank

:gruebel:
user profile iconPISAFOX hat folgendes geschrieben:
das ist ja genial!!!!!
THX

:wink:
Bitte sehr. Es freut mich dass ich Dir helfen konnte.

bye
bflegel

_________________
I know all the jokes about my name