AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SQL query

Ein Thema von value is NULL · begonnen am 27. Sep 2010 · letzter Beitrag vom 28. Sep 2010
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#21

AW: SQL query

  Alt 27. Sep 2010, 17:16
das prinzip verstehe ich nicht

wieso sieht der query so aus:
query.sql.text:='select count(*) as Meinwert from mytable'; bzw. warum dieses zeile?
meinWert:=query.fieldbyname('Meinwert').asinteger; ich will ja nur einen Wert oder ein count absetzen wie zB:
select count(*) from tbuser oder
select username from tbuser

LG
hiermit definierst Du nur die Abfrage:
Code:
query.sql.text:='select count(*) as Meinwert from mytable';
in diesem speziellen falle wird wohl nur ein wert zurück geliefert werden, und zwar die Anzahl der Zeilen/Datensätze in "Meinwert".

Mit
Code:
meinWert:=query.fieldbyname('Meinwert').asinteger;
wird aus einer Antwortzeile das Feld "Meinwert" ausgelesen und in meinwert gespeichert.

vielleicht wird es so etwas klarer:
Delphi-Quellcode:
var
  NamensListe : tstringlist;
...
Namensliste:=tstringlist.create;
...
query.close;
query.sql.text:='select Name as Famname from mytable'; // Definition der Query
query.open; // Ausführen der Query
while not query.eof do begin // Solange es Daten gibt
  Namensliste.add(query.fieldbyname('Famname').asinteger); // in Liste speichern
  query.next; // nächster Datensatz
end;
query.close; // schließen!
Dann erhällst Du als Ergebnis eine Stringliste, in der alle Namen enthalten sind.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#22

AW: SQL query

  Alt 28. Sep 2010, 07:08
In #19 schreibst Du 3 Funktionen, die jeweils als Rückgabewert
einen String haben sollen. Allerdings passiert da nichts. Nirgendwo ein  Result := 'Blabla' Dann kannst Du auch gleich eine procedure draus machen. Oder
Du gibst etwas sinnvolles zurück, was in der aufrufenden Routine auch verwertet wird.

Wie universell sollen denn Deine Funktionen sein. Dienen sie nur
dazu, das count(*) zurückzugeben oder soll das eine Art Blackbox
werden? Wenn letzteres, musst Du das Ganze noch etwas aufbohren.
Ich denke, Beispiele findest Du hier in der DP bis zum Abwinken.
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#23

AW: SQL query

  Alt 28. Sep 2010, 07:42
Hi Data

habe die function soeben probiert, bekomme aber ständig: "Field 'wert' not found" zurück

was will er da von mir?

LG und DANKE!

PS: P80286 Danke für die Erklärung, es ist nun wesentlich deutlicher !

Geändert von value is NULL (28. Sep 2010 um 07:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: SQL query

  Alt 28. Sep 2010, 08:01
Hast Du in der Abfrage auch einen Alias namens "wert" vergeben?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#25

AW: SQL query

  Alt 28. Sep 2010, 08:22
Hi Data

habe die function soeben probiert, bekomme aber ständig: "Field 'wert' not found" zurück

was will er da von mir?

LG und DANKE!

PS: P80286 Danke für die Erklärung, es ist nun wesentlich deutlicher !
Hi,

das Feld 'Wert' in der von mir geschriebenen Function war nur als Platzhalter gedacht !
Wenn Du z. B. einen SQL hast: "Select Count(*) as Anz from tablenname"
dann müßte in meiner function 'Wert' mit 'Anz' ersetzt werden,
also der Name des gesuchten Feldes den Du auslesen möchtest.

Greetz Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#26

AW: SQL query

  Alt 28. Sep 2010, 08:33
hm, und was sagt mir das jetzt?
steh gerade an

LG
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: SQL query

  Alt 28. Sep 2010, 08:46
Ohne Alias:
Delphi-Quellcode:
Query.SQL.Text := 'SELECT COUNT(*) FROM Tabelle';
Query.Open;
IntVar := Query.Fields[0].AsInteger;
Mit Alias:
Delphi-Quellcode:
Query.SQL.Text := 'SELECT COUNT(*) AS Anzahl FROM Tabelle';
Query.Open;
IntVar := Query.FieldByName('Anzahl').AsInteger;
Im letzteren Fall kannst Du über FieldByName über das benannte Feld zugreifen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#28

AW: SQL query

  Alt 28. Sep 2010, 11:16
cool

so hats geklappt

Delphi-Quellcode:

function query(sQuerySQL : string) : string;

begin
oTmpQry := TADOQuery.Create(nil);
try
  try
    oTmpQry.Connection := Conn;
    oTmpQry.SQL.Text := sQuerySQL;
    oTmpQry.Active := True;
    result := oTmpQry.Fields[0].asString;
  except
    on e : exception do begin
      writeln(e.message);
      halt(1);
    end;
  end;
Finally
  oTmpQry.free;
end;
end;
ich danke euch VIELMAS!!!!

LG
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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