![]() |
TADO Query
Hey Leutz
habe folgende function:
Delphi-Quellcode:
die funktioniert auch sehr gut, ABER nur bei results die einen wert betragen also zb. Select count(*) from TABLE
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; 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 |
AW: TADO Query
Zitat:
Delphi-Quellcode:
so ungefähr!? Oder meinstest Du was anderes?
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; |
AW: TADO Query
naja das ich praktisch als Result eine TStringlist bekomme ist mein ziel
Delphi-Quellcode:
so müsste das glaube ich rein theoretisch gehen, aber wie ordne ich dem result die stringlist (in dem fall sl) zu?
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; LG |
AW: TADO Query
Du kannst einer Stringliste kein Dataset zuweisen, sondern nur die Liste aus den Daten des Dataset befüllen, und das machst Du ja jetzt.
|
AW: TADO Query
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; |
AW: TADO Query
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; |
AW: TADO Query
so leicht kanns gehen! Funktioniert PRIMA!
Danke schön! |
AW: TADO Query
Frage am Rande:
Warum bei einem nicht visuellen TStrings das BeginUpdate/EndUpdate ? Gruß K-H |
AW: TADO Query
Zitat:
|
AW: TADO Query
Außerdem: TMemo.Lines, TListBox.Items, TComboBox.Items... alles TStrings ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz