Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Integer aus DataSet Laden (https://www.delphipraxis.net/155529-integer-aus-dataset-laden.html)

WizoHulk 27. Okt 2010 14:30

Datenbank: Interbase • Version: 2.5 • Zugriff über: SQL

Integer aus DataSet Laden
 
Hallo
ich mal wieder.
habe da mal eine kleine Frage, und zwar wie kann ich den Inhalt vom DataSet in eine Variable mit dem Typ Integer/SmallInt laden.

Ich will ermitteln wieviele Records die Technikid 70 haben.

Was mache ich falsch?
ich denkl mal das ich was ganz simples übersehen hab.

Delphi-Quellcode:
function TForm2.GetRecordCount: SmallInt;
var
  LSql: String;
  LRecordcount : Smallint;
begin
  LSQl := 'Select count(technikid) from technik_image where technikid = 70';
  IBDSetThumbnail.SelectSQL.Text := LSql;
  IBDSetThumbnail.Open;
  IBDSetThumbnail.FetchAll;
  dsThumnails.DataSet := IBDSetThumbnail;
  LRecordcount := IBDSetThumbnail.RecordCount;
  Result := LRecordcount;

  showMessage(IntToStr(Result));

das Result gibt mir immer nur 1 raus.

mkinzler 27. Okt 2010 14:34

AW: Integer aus DataSet Laden
 
Die Abfrage ergibt auch nur einen Datensatz!

Delphi-Quellcode:
LRecordcount := IBDSetThumbnail.Fields[0].Value;

WizoHulk 27. Okt 2010 14:40

AW: Integer aus DataSet Laden
 
danke hatt geklappt,
aber wieso ..Field[0]...

mkinzler 27. Okt 2010 14:59

AW: Integer aus DataSet Laden
 
Weil deine Abrage ein Feld zurückliefert und der Index bei 0 beginnt

shmia 27. Okt 2010 17:11

AW: Integer aus DataSet Laden
 
Du kannst die Stückzahl auf 3 verschiedene Arten auslesen.
(Alternative 1 bis 3)
Beachte, dass ich im SQL die Feldumbenennung "as Anzahl" hinzugefügt habe.
Delphi-Quellcode:
function TForm2.GetRecordCount: SmallInt;
begin
  IBDSetThumbnail.SelectSQL.Text := 'Select count(technikid) as Anzahl from technik_image where technikid = 70';
  IBDSetThumbnail.Open;
  // Alternative 1
  Result := IBDSetThumbnail['Anzahl'];
  // Alternative 2
  Result := IBDSetThumbnail.Fields[0].AsInteger;
  // Alternative 2
  Result := IBDSetThumbnail.FieldByName('Anzahl').AsInteger;

  IBDSetThumbnail.Close; // Query wird nicht mehr gebraucht

  showMessage(IntToStr(Result));


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:09 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