AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Query gibt nur 1 Zeile zurück
Thema durchsuchen
Ansicht
Themen-Optionen

Query gibt nur 1 Zeile zurück

Ein Thema von theomega · begonnen am 6. Aug 2003 · letzter Beitrag vom 6. Aug 2003
Antwort Antwort
Benutzerbild von theomega
theomega

Registriert seit: 18. Jun 2002
684 Beiträge
 
#1

Query gibt nur 1 Zeile zurück

  Alt 6. Aug 2003, 10:24
Hallo Leute
ich versuche mich gerade daran, mit den Interbase-Kompos auf eine Firebird Datenbank zuzugreifen. Ich habe schon viel mit MySQL auch unter Delphi gearbeitet.

Ich habe jetzt diesen Code hier konstruiert:
Delphi-Quellcode:
procedure execquery(str:string;passv:boolean);
begin;
form1.qrmain.Close;
form1.qrmain.SQL.Clear;
form1.qrmain.SQL.Add(str);
if (passv) then form1.qrmain.Open
else form1.qrmain.ExecSQL;
end;



procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
execquery('SELECT * FROM sachbuch sb, gliederung gl WHERE (sb.sbid = gl.sbid)',true);
for i:= 0 to qrmain.RecordCount-1 do begin;
  qrmain.RecNo := i;
  showmessage(qrmain.fieldbyname('SBNR').asstring+'->'+qrmain.fieldbyname('GLNR').asstring);
end;
end;
Auf meinem Formular sitzt:
qrmain : TIBQuery
dbmain : TIBDatabase
trmain : TIBTransaction

Wenn ich jetzt auf den Button klicke kommt nur der erste Datensatz heraus. "qrmain.recordcount" enthält ja auch nur 1. Obwohl, wenn ich im "IB Expert" (Admin-Tool) das Query ausführe ich 3 Zeilen als Result bekomme. Es muß also an meinem Code liegen, aber wo?

Danke und Grüße
TO
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Query gibt nur 1 Zeile zurück

  Alt 6. Aug 2003, 10:39
Hai theomega,

Zitat von theomega:
Delphi-Quellcode:
...
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
execquery('SELECT * FROM sachbuch sb, gliederung gl WHERE (sb.sbid = gl.sbid)',true);
for i:= 0 to qrmain.RecordCount-1 do begin;
  qrmain.RecNo := i;
  showmessage(qrmain.fieldbyname('SBNR').asstring+'->'+qrmain.fieldbyname('GLNR').asstring);
end;
end;
Mit RecNo kannst Du glaube ich nur die Nummer des aktiven DS abfragen.

Probiere mal das:
Delphi-Quellcode:
...
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
execquery('SELECT * FROM sachbuch sb, gliederung gl WHERE (sb.sbid = gl.sbid)',true);
while NOT (qrmain.eof) do
 begin
  showmessage(qrmain.fieldbyname('SBNR').asstring+'->'+qrmain.fieldbyname('GLNR').asstring);
  qrmain.next;
 end;
end;
Was mich noch wundert: Du möchtest die Felder "SBNR" und "GLNR" anzeigen hast sie aber nicht in der SELECT Anweisung stehen?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#3

Re: Query gibt nur 1 Zeile zurück

  Alt 6. Aug 2003, 11:31
Zitat von Sharky:
Was mich noch wundert: Du möchtest die Felder "SBNR" und "GLNR" anzeigen hast sie aber nicht in der SELECT Anweisung stehen?
dafür hat er ja den Stern, das heißt alle Felder!
@theomega: RecordCount funktioniert bei SQL-Datenbanken nicht immer. Laß Dir das Ergebnis doch mal in einem DBGrid anzeigen. Der Fehler liegt aber glaube ich an dem Semikolon nach den begin.
Ansonsten würde ich deine for-Schleife durch folgenden Code ersetzen:
Delphi-Quellcode:
qrmain.First;
while not qrmain.Eof do
begin
  showmessage(qrmain.fieldbyname('SBNR').asstring+' >'+qrmain.fieldbyname('GLNR').asstring);
  qrmain.Next;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Query gibt nur 1 Zeile zurück

  Alt 6. Aug 2003, 11:39
Zitat von r_kerber:
dafür hat er ja den Stern, das heißt alle Felder!
Okay, Ich mache jetzt Feierabend und kaufe mir eine neue Brille.
Ist ja furchtbar was ich alles übersehe
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#5

Re: Query gibt nur 1 Zeile zurück

  Alt 6. Aug 2003, 11:42
Zitat von Sharky:
Okay, Ich mache jetzt Feierabend und kaufe mir eine neue Brille.
Versuch's doch erst mal mit dem Putzen des Monitors.
  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 07:03 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