AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBGrid - DataSource - ADODataSet - Access. Daten auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid - DataSource - ADODataSet - Access. Daten auslesen

Ein Thema von sigi · begonnen am 27. Dez 2003 · letzter Beitrag vom 31. Dez 2003
Antwort Antwort
sigi

Registriert seit: 27. Dez 2003
16 Beiträge
 
Delphi XE5 Professional
 
#1

DBGrid - DataSource - ADODataSet - Access. Daten auslesen

  Alt 27. Dez 2003, 17:10
Hallo,
habe DBGrid über DataSource und ADODataSet mit einer Access Datenbank verbunden.

Finde aber keine Möglichkeit die Daten auszulesen, in Basic ging das mit (Data1.Recordset.Fields(1)) problemlos. Mit Recordset in Delphi komm ich nicht weiter, und mit:
Delphi-Quellcode:
ADODataSet1.Recordset.MoveFirst;
Label1.Caption := ADODataSet1.Fields[1].Text;
bekomme ich eine Ausgabe, aber nach:
Delphi-Quellcode:
ADODataSet1.Recordset.MoveNext;
Label1.Caption := ADODataSet1.Fields[1].Text;
kommt nichts. Was mach ich falsch?

Gruß Sigi
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#2

Re: DBGrid - DataSource - ADODataSet - Access. Daten auslese

  Alt 27. Dez 2003, 18:59
Hi,

die korrekte Vorgehensweise in Delphi lautet:

T(Ado)dataset.first
T(Ado)dataset.next.

Unter Umständen kann es sinnvoll sein, TBetterAdodataset statt TAdodataset zu verwenden, nicht weil das Basickompatibler ist als Tadodatasset, sondern weil es einige unschöne Bugs fixt.

Grüsse
Woki
  Mit Zitat antworten Zitat
sigi

Registriert seit: 27. Dez 2003
16 Beiträge
 
Delphi XE5 Professional
 
#3

Re: DBGrid - DataSource - ADODataSet - Access. Daten auslese

  Alt 29. Dez 2003, 17:15
Hallo Woki.

Danke für die Antwort, aber mit:
Delphi-Quellcode:
TAdodataset.first;
TAdodataset.next.;
kommt die Fehlermeldung: Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt.

Mit:
Delphi-Quellcode:
if not ADODataSet1.Recordset.EOF = True then
   ADODataSet1.Recordset.MoveNext
else
   beep;
Kommt keine Meldung, und geht scheinbar bis zum letzten Datensatz, da EOF erreicht wird. Aber der Zeiger im DBGrid bleibt auf dem ersten Datensatz stehen, und ich kann auch nur diesen auslesen. Bin schon am verzweifeln.

TBetterAdodataset finde ich nirgendwo. Muss noch erwähnen, dass ich Anfänger bin.

Gruß Sigi
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#4

Re: DBGrid - DataSource - ADODataSet - Access. Daten auslese

  Alt 30. Dez 2003, 00:34
Zitat von sigi:
Delphi-Quellcode:
TAdodataset.first;
TAdodataset.next.;
kommt die Fehlermeldung: Diese Form des Methodenaufrufs ist nur für Klassenmethoden erlaubt.
ok, mit der Schreibweise

TAdodataset.first

meinte ich verwende die methode first der Klasse TAdodataset, aber da es keine Klassenmethode ist, mußt Du sie auf die Instanz der Klassen anwenden, die du gerade meinst.

also z.B. Adodataset1 :TAdodataset
dann Adodataset1.first, anders ausgedrückt, der Compiler muß ja wissen, welches DAtaset du gerade scrollen willst.

Zitat von sigi:

Mit:
Delphi-Quellcode:
if not ADODataSet1.Recordset.EOF = True then
   ADODataSet1.Recordset.MoveNext
else
   beep;
Diese Vorgehensweise ist ein adospezifischer Weg, Delphi unterstützt aber viele verschiedene DB-Techniken. Dieser Weg hätte funktionieren können, muß aber nicht...

Zitat von sigi:

TBetterAdodataset finde ich nirgendwo. Muss noch erwähnen, dass ich Anfänger bin.
Suchfunktion hier in der DP oder Googlen hilft sicher weiter. TBetteradodataset gehört nicht zum Lieferumfang von Delphi, ist aber Freeware. Die Probleme die du bis jetzt hast, haben damit aber nichts zu tun.

Grüsse
Woki
  Mit Zitat antworten Zitat
sigi

Registriert seit: 27. Dez 2003
16 Beiträge
 
Delphi XE5 Professional
 
#5

Re: DBGrid - DataSource - ADODataSet - Access. Daten auslese

  Alt 30. Dez 2003, 23:34
Hallo Woki,

DANKE für die Hilfe, soweit klappt es. Habe da aber noch ein Problem. Ich möchte während der Dateneingabe im DBGrid je nach Spalte diese auf Logik überprüfen.
Mit:
Delphi-Quellcode:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
  Label1.Caption := DBGrid1.Fields[0].Text;
wird nur den Inhalt der Datenbank angezeigt, nicht die augenblickliche Eingabe. Kannst Du mir einen Tipp geben wie das geht und eine eventuelle Falscheingabe gelöscht werden kann?

Gruß Sigi
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#6

Re: DBGrid - DataSource - ADODataSet - Access. Daten auslese

  Alt 31. Dez 2003, 02:02
Schau Dir mal die Events der Feldkomponenten an, das sollte dir weiterhelfen.

Ach so, und eigentlich: neue Frage neuer Thread.

Grüsse
Woki
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
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