AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL-Abfrage: Alle Werte aus einer Spalte
Thema durchsuchen
Ansicht
Themen-Optionen

SQL-Abfrage: Alle Werte aus einer Spalte

Ein Thema von DF.A · begonnen am 28. Jul 2005 · letzter Beitrag vom 28. Jul 2005
Antwort Antwort
Seite 1 von 2  1 2      
DF.A

Registriert seit: 20. Jul 2004
30 Beiträge
 
#1

SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 10:55
Datenbank: Access • Version: 2000 • Zugriff über: ODBC
Hi, ich möchte mit einer Abfrage alle Werte einer Spalte ausgeben die eine bestimmte Bedingung erfüllen. Bis jetzt mache ich das so:
select Feldname from Meta_Daten where Datenbankname = :SpeichernDatenbankname and Tabellenname = :SpeichernTabellenname Das Problem ist aber, das ich hier nicht alle Ergebnisse geliefet bekomme sonder nur eins (es müsste aber mehrere sein). Weiß jemand was ich verändern muss um alle Werte die diese Abfrage als Ergbnis ausgibt bekomme. Wäre nett wenn mir jemand helfen könnte. MfG DF.A
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#2

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:04
kA was dieser ":" macht, wenn es sowas wie 'like "%foobar%"' iss? dann mus danach vllt noch son ":"
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:06
Lässt du dir das Ergebnis in einem DBGrid anzeigen?
@barf00s:
Das sind die Doppelpunkte vor einem Parameter. Die habe nnichts mit "like" zu tun.
Peter
  Mit Zitat antworten Zitat
barf00s
(Gast)

n/a Beiträge
 
#4

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:08
ahso
  Mit Zitat antworten Zitat
DF.A

Registriert seit: 20. Jul 2004
30 Beiträge
 
#5

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:20
Ich lasse mir über nen String in nem Memo anzeigen. Es wird immer nur der letzte passenden Wert ausgegeben.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:32
Ich hasse diese Raterei.
Machst du das etwa so:
Delphi-Quellcode:
while not query1.eof do
begin
  memo1.text := query1.fieldbyname('feldname').asstring;
  query1.next;
end;
Ansonsten zeig doch mal ein bisschen Source.
Peter
  Mit Zitat antworten Zitat
DF.A

Registriert seit: 20. Jul 2004
30 Beiträge
 
#7

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:36
ok, also so mach ichs

Delphi-Quellcode:
Datenbankname := edtDatenbankname.Text;
  Tabellenname := edtTabellenname.Text;
  qry_Speichern.ParamByName('SpeichernDatenbankname').AsString := Datenbankname;
  qry_Speichern.ParamByName('SpeichernTabellenname').AsString := Tabellenname;
  qry_Speichern.ExecSQL;
  qry_Speichern.Close;

  with qry_Speichern do begin
        open;
        while not eof do begin
          str := '';
          for j := 0 to Fields.Count -1 do begin
            str := str + ';' + Fields[j].AsString;
          end;
        next;
      end;
      dbMetaDaten.Close;
      dbMetaDaten.Open;
    end;
    Memo1.Text := str;
in der Abfrage steht halt das besagte SQL-Statement.
  Mit Zitat antworten Zitat
WoGe

Registriert seit: 16. Jun 2005
Ort: Kelkheim
178 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:39
Hallo,

Zitat von DF.A:
select Feldname from Meta_Daten where Datenbankname = :SpeichernDatenbankname and Tabellenname = :SpeichernTabellenname Das Problem ist aber, das ich hier nicht alle Ergebnisse geliefet bekomme sonder nur eins
Wenn ich mich richtig erinnere, muss im ODBC doch die Datenbank schon angegeben werden?
Daraus folgt: Im Resultset kann nur ein Wert existieren

mfg
wo
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:45
Zitat von DF.A:
ok, also so mach ichs

Delphi-Quellcode:
Datenbankname := edtDatenbankname.Text;
  Tabellenname := edtTabellenname.Text;
  qry_Speichern.ParamByName('SpeichernDatenbankname').AsString := Datenbankname;
  qry_Speichern.ParamByName('SpeichernTabellenname').AsString := Tabellenname;
  qry_Speichern.ExecSQL;
  qry_Speichern.Close;

  with qry_Speichern do begin
        open;
        while not eof do begin
          str := ''; // Hihi. Musst du vor die while-Schleife schreiben.
          for j := 0 to Fields.Count -1 do begin
            str := str + ';' + Fields[j].AsString;
          end;
        next;
      end;
      dbMetaDaten.Close;
      dbMetaDaten.Open;
    end;
    Memo1.Text := str;
in der Abfrage steht halt das besagte SQL-Statement.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von rwachtel
rwachtel

Registriert seit: 26. Aug 2004
Ort: Köln
530 Beiträge
 
RAD-Studio 2010 Pro
 
#10

Re: SQL-Abfrage: Alle Werte aus einer Spalte

  Alt 28. Jul 2005, 11:48
Mit Deiner Fields-Schleife sprichst Du die alle einzelnen Spalten an. Du willst aber nur eine Spalte haben:

str := str + ';' + Fields[0].AsString; In Deinem ersten Beispiel ist Deine Schleife dennoch korrekt, da Du ja nur eine Spalte abfragst. Da Du aber explizit nach allen Werten aus einer Spalte gefragt hast, dachte ich, es zumindest Deinem Wortlaut nach zu erwähnen.

Ausserdem löschst Du Deine String-Variable str in jedem Zeilendurchlauf, ohne damit irgendetwas getan zu haben.

So iterierst Du korrekt über alle Zeilen und ermittelst alle Werte der Spalte 0:

Delphi-Quellcode:
while not qrySpeichern.Eof do
begin
  str := str + ';' + qrySpeichern.Fields[0].AsString;
  qrySpeichern.Next;
end;
Robert Wachtel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:39 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