AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi EDatabaseError - auslesen aus DB
Thema durchsuchen
Ansicht
Themen-Optionen

EDatabaseError - auslesen aus DB

Ein Thema von capo · begonnen am 1. Nov 2006 · letzter Beitrag vom 2. Nov 2006
Antwort Antwort
Seite 2 von 4     12 34      
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#11

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 12:46
Im Prinzip musst Du nur eine DataSource auf das Formular ziehen, diese mit der Query verknüpfen und ein DBGrid welches mit der DataSource verknüpft wird...

Grüsse
...Doc
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 12:51
Hallo DocE
danke, hab ich gemacht, bekomme folgende Meldung:
Zitat:
---------------------------
Fehler
---------------------------
Query1: Keine SQL-Anweisung verfügbar.
---------------------------
OK
---------------------------
Hotte
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 12:56
Du scheinst immer mehr Änderungen zu machen, als man dir vorschlägt. Poste mal den ganzen aktuellen Code.
Markus Kinzler
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#14

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 13:01
...und vielleicht dazu noch, wann die Fehlermeldung auftritt (beim Starten, wenn Du Änderungen im DBGrid vornehmen möchtest). Die Meldung deutet daraufhin, dass Du versuchst im DBGrid Daten anzuzueigen/zu ändern, obwohl die Query noch keine SQL-Anweisung hat...
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 13:04
Hallo,

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
With Query1 do
 begin
sql.add('select * from Rechnungen where BEZAHLT = :BEZAHLT ');
 // sql.add('select RGNR,BEZAHLT from Rechnungen where BEZAHLT = :BEZAHLT ');
ParamByName('BEZAHLT').AsString:= 'N'; // falls es ein Char ist
Open;
try
  while not EOF do
  begin

 memo3.Lines.Add(FieldByName('BEZAHLT').AsString + ' => gefunden!');
  Next;
 End;
finally
  Close;
end;
end;
end;
Hotte
  Mit Zitat antworten Zitat
DocE

Registriert seit: 25. Mär 2004
108 Beiträge
 
#16

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 13:06
Das "Close" ist das Problem. Dann ist die Datenmenge ja wieder geschlossen und kann auch nicht mehr angezeigt werden...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#17

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 13:08
Das

Close

muss weg, die Query muss offen bleiben,
wenn du die Daten im DBGrid anzeigen möchtest.

Ausserdem prüfe, ob alles verknüpft ist.

DBGrid.DataSource -> TDataSource.DataSet -> Query

Heiko
Heiko
  Mit Zitat antworten Zitat
capo

Registriert seit: 7. Jul 2006
453 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 14:26
hallo und danke nun klappt es... bis auf eine kleine Fehlermeldung wenn ich zweimal hintereinander auf den Button klick:


Zitat:
---------------------------
Ungültiges Schlüsselwort

Symbol-String: select

Zeilennummer: 2.
---------------------------
Beim Code hab ich nur das close rausgenommen.

Nunja, jedenfalls klappt das auslesen. Nochmal Danke dafür
Hotte
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#19

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 14:37
Hallo,

naja, das habe ich nun nicht noch gesagt )
ein bissel solltest du aich selber was machen ..

beim zweiten Drücken ist die Query schon offen,
dann muss man die vorher zumachen

if Query.Active then Query.Active:= False;

oder sogar als 1. Befehl im OnButton

if Query.Active then Exit;

Das kommt aber auf deine Logik an,
bisher macht es ja keinen Sinn, überhaupt einen Button reinzupacken,
da die Query ja immer offen sein muss.


Heiko
PS:
Übrigens würde ich schleunigst die DB wechseln.
Paradox ist out.
Sobald ein "index out of date" kommt, sprechen wir weiter
Heiko
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#20

Re: EDatabaseError - auslesen aus DB

  Alt 1. Nov 2006, 17:15
Zitat von capo:
hallo und danke nun klappt es... bis auf eine kleine Fehlermeldung wenn ich zweimal hintereinander auf den Button klick:


Zitat:
---------------------------
Ungültiges Schlüsselwort

Symbol-String: select

Zeilennummer: 2.
---------------------------
Beim Code hab ich nur das close rausgenommen.
Ist klar, warum diese Meldung kommt:
in deinem Code steht Query1.SQL.Add(...), d.h. bei jedem Click auf den Button wird zur bereits bestehenden SQL-Anweisung eine neue (in diesem Fall die gleiche) hinzugefügt . Das Ergebnis ist:
select * from Rechnungen where BEZAHLT = :BEZAHLT
select * from Rechnungen where BEZAHLT = :BEZAHLT

Auf der sicheren Seite bist du, wenn du entweder
Delphi-Quellcode:
Query1.SQL.Clear; // alle Anweisungen löschen
Query1.SQL.Add('select * from Rechnungen where BEZAHLT = :BEZAHLT ') // Anweisung hinzufügen
Query1.SQL.Add('ORDER BY KDNR') // 2. Zeile (hier nur mal als Beispiel)
Query1.Open;
oder
Delphi-Quellcode:
//--neue Anweisung zuweisen: vorhandene Anweisung wird durch die neue ersetzt
Query1.SQL.Text := 'SELECT * FROM Rechnungen WHERE BEZAHLT = :BEZAHLT ORDER BY KDNR';
Query1.Open;
Im Übrigen wird eine offene Query automatisch geschlossen, sobal das SQL-Statement geändert wird; auf der sicheren Seite (und für den Fall des Debuggens) ist es immer besser, expliziet
Code:
Query1.Close
zu schreiben



Zitat von capo:
Hallo DocE
danke, hab ich gemacht, bekomme folgende Meldung:
Zitat:
---------------------------
Fehler
---------------------------
Query1: Keine SQL-Anweisung verfügbar.
---------------------------
OK
---------------------------
Auch das ist klar du hast versucht im ObjektInspektor Query1 auf Active=True zu setzen, hast aber bei der Eigenschaft SQL keine SQL-Anweisung eingetragen...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


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 01:52 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