AGB  ·  Datenschutz  ·  Impressum  







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

TADO Query

Ein Thema von value is NULL · begonnen am 4. Mai 2011 · letzter Beitrag vom 4. Mai 2011
Antwort Antwort
Seite 1 von 2  1 2      
value is NULL

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

TADO Query

  Alt 4. Mai 2011, 14:28
Hey Leutz

habe folgende function:

Delphi-Quellcode:
function query(sQuerySQL : string) : string;

begin
oTmpQry := TADOQuery.Create(nil);
try
  try
    oTmpQry.Connection := Conn;
    oTmpQry.CommandTimeout := 5000;
    oTmpQry.SQL.Text := sQuerySQL;
    oTmpQry.Active := True;
    result := oTmpQry.Fields[0].asString;
  except
    on e : exception do begin
      assert := e.message;
      Writeln(assert);
      halt(1);
    end;
  end;
Finally
  oTmpQry.free;
end;
end;
die funktioniert auch sehr gut, ABER nur bei results die einen wert betragen also zb. Select count(*) from TABLE
Jetzt will ich mir aber alle ergebnisse in eine TStringlist laden. wie sollte ich hier vorgehen?

ich schätze mal das es hier result := oTmpQry.Fields[0].asString; eine andere Möglichkeit gibt?!

LG
  Mit Zitat antworten Zitat
DonManfred

Registriert seit: 8. Nov 2007
Ort: Düren
55 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: TADO Query

  Alt 4. Mai 2011, 14:40
Delphi-Quellcode:
function query(sQuerySQL : string) : string;

begin
oTmpQry := TADOQuery.Create(nil);
try
  try
    oTmpQry.Connection := Conn;
    oTmpQry.CommandTimeout := 5000;
    oTmpQry.SQL.Text := sQuerySQL;
    oTmpQry.Active := True;
    result := oTmpQry.Fields[0].asString;
  except
    on e : exception do begin
      assert := e.message;
      Writeln(assert);
      halt(1);
    end;
  end;
Finally
  oTmpQry.free;
end;
end;
Delphi-Quellcode:
oTmpQry.Active := True;
if oTmpQry.RecordCount > 0 then begin
  oTmpQry.First;
  while not oTmpQry.eof do begin
    wert := oTmpQry.Fields[0].asString;
    // oder
    wert := oTmpQry.FieldByName['feldname'].asString;
    // mach was mit wert ...

    // nächsten Datensatz holen
    oTmpQry.Next;
  end;
end;
so ungefähr!? Oder meinstest Du was anderes?
  Mit Zitat antworten Zitat
value is NULL

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

AW: TADO Query

  Alt 4. Mai 2011, 15:09
naja das ich praktisch als Result eine TStringlist bekomme ist mein ziel

Delphi-Quellcode:
function query(sQuerySQL : string) : string;
var
 sl : TStringlist;
begin
oTmpQry := TADOQuery.Create(nil);
try
  try
    oTmpQry.Connection := Conn;
    oTmpQry.CommandTimeout := 5000;
    oTmpQry.SQL.Text := sQuerySQL;
    oTmpQry.Active := True;
    if oTmpQry.RecordCount > 0 then begin
       oTmpQry.First;
       while not oTmpQry.eof do begin
             sl.add[oTmpQry.Fields[0].asString];
             oTmpQry.Next;
       end;
    end;
except
    on e : exception do begin
      assert := e.message;
      Writeln(assert);
      halt(1);
    end;
  end;
Finally
  oTmpQry.free;
end;
end;
so müsste das glaube ich rein theoretisch gehen, aber wie ordne ich dem result die stringlist (in dem fall sl) zu?

LG
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: TADO Query

  Alt 4. Mai 2011, 15:15
Du kannst einer Stringliste kein Dataset zuweisen, sondern nur die Liste aus den Daten des Dataset befüllen, und das machst Du ja jetzt.
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
 
#5

AW: TADO Query

  Alt 4. Mai 2011, 15:18
hm ok, wieder klüger geworden,
aber kann ich die jetzt verwendet stringlist als result übergeben? habe es so versucht:

Delphi-Quellcode:
function query(sQuerySQL : string) : TStringlist;
var
 sl : TStringlist;
begin
oTmpQry := TADOQuery.Create(nil);
try
  try
    oTmpQry.Connection := Conn;
    oTmpQry.CommandTimeout := 5000;
    oTmpQry.SQL.Text := sQuerySQL;
    oTmpQry.Active := True;
    if oTmpQry.RecordCount > 0 then begin
       oTmpQry.First;
       while not oTmpQry.eof do begin
             sl.add[oTmpQry.Fields[0].asString];
             oTmpQry.Next;
       end;
    end;
    result := sl;
except
    on e : exception do begin
      assert := e.message;
      Writeln(assert);
      halt(1);
    end;
  end;
Finally
  oTmpQry.free;
end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: TADO Query

  Alt 4. Mai 2011, 15:25
Ungetestet:
Delphi-Quellcode:
procedure DoQuery(const sQuerySQL : string; DestList: TStrings);
begin
  Assert(Assigned(DestList));
  DestList.BeginUpdate;
  try
    DestList.Clear;
    oTmpQry := TADOQuery.Create(nil);
    try
      try
        oTmpQry.Connection := Conn;
        oTmpQry.CommandTimeout := 5000;
        oTmpQry.SQL.Text := sQuerySQL;
        oTmpQry.Open;
        while not oTmpQry.eof do begin
          DestList.add(oTmpQry.Fields[0].asString);
          oTmpQry.Next;
        end;
      except
        on e : exception do begin
          Writeln(e.message);
          halt(1);
        end;
      end;
    Finally
      oTmpQry.free;
    end;
  finally
    DestList.EndUpdate;
  end;
end;
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
 
#7

AW: TADO Query

  Alt 4. Mai 2011, 15:53
so leicht kanns gehen! Funktioniert PRIMA!

Danke schön!
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: TADO Query

  Alt 4. Mai 2011, 17:03
Frage am Rande:
Warum bei einem nicht visuellen TStrings das BeginUpdate/EndUpdate ?

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

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TADO Query

  Alt 4. Mai 2011, 17:06
Warum bei einem nicht visuellen TStrings das BeginUpdate/EndUpdate ?
Wenn ein Listener dran hängt (OnChange, OnChanging) könnte es trotzdem gebremst werden wenn der Listener was mit der GUI macht.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: TADO Query

  Alt 4. Mai 2011, 17:38
Außerdem: TMemo.Lines, TListBox.Items, TComboBox.Items... alles TStrings
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
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 12:45 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