![]() |
Array of Integer?
möchte folgende Funktion etwas verkleinern
Delphi-Quellcode:
mit
Procedure Count;
begin frmmain.Memo1.Clear; frmmain.Listbox1.Items.Clear; frmmain.ADOQuery1.Close; frmmain.ADOQuery1.SQL.Text := 'select * from Funktionen' ; frmmain.ADOQuery1.Open; ca:=frmmain.ADOQuery1.RecordCount; frmmain.ADOQuery1.Next; frmmain.ADOQuery1.Close; frmmain.ADOQuery1.SQL.Text := 'select * from Prozeduren'; frmmain.ADOQuery1.Open; cb:=frmmain.ADOQuery1.RecordCount; frmmain.ADOQuery1.Next; frmmain.ADOQuery1.Close; frmmain.ADOQuery1.SQL.Text := 'select * from Units'; frmmain.ADOQuery1.Open; cc:=frmmain.ADOQuery1.RecordCount; frmmain.ADOQuery1.Next; frmmain.ADOQuery1.Close; frmmain.ADOQuery1.SQL.Text := 'select * from Forms'; frmmain.ADOQuery1.Open; cd:=frmmain.ADOQuery1.RecordCount; frmmain.ADOQuery1.Next; frmmain.ADOQuery1.Close; frmmain.ADOQuery1.SQL.Text := 'select * from Programme'; frmmain.ADOQuery1.Open; ce:=frmmain.ADOQuery1.RecordCount; frmmain.ADOQuery1.Next; end;
Delphi-Quellcode:
bokomme aber bei den Counts diesen Fehler ->[DCC Fehler] DBtools.pas(22): E2026 Konstantenausdruck erwartet
const
Data: array[0..4] of String[10] = ('Funktionen', 'Prozeduren', 'Units', 'Forms', 'Programme'); Counts: array[0..4] of Integer = (ca, cb, cc, cd, ce); Procedure Count; var d: integer; begin frmmain.Memo1.Clear; frmmain.Listbox1.Items.Clear; for d := 0 to 4 do begin frmmain.ADOQuery1.Close; frmmain.ADOQuery1.SQL.Text := 'select * from '+Data[d] ; frmmain.ADOQuery1.Open; Counts[d]:=frmmain.ADOQuery1.RecordCount; frmmain.ADOQuery1.Next; end; wenn ich vorher sag
Delphi-Quellcode:
u.s.w. gehts gibt es noch eine bessere lösung
ca:=0;
|
Re: Array of Integer?
Moin Gehstock,
Delphi-Quellcode:
:shock: :gruebel:
const
Counts: array[0..4] of Integer = (ca, cb, cc, cd, ce); Was hältst Du davon:
Delphi-Quellcode:
;-)
var
Counts: array[0..4] of Integer; |
Re: Array of Integer?
damit weiß aber doch net ca ,cb u.s.w noch net wie groß sie sind
habs erstmal so das klappt auch und ihr versteht vieleicht besser was ich meine
Delphi-Quellcode:
[edit=Christian Seehase]Delphi-Tags korrigiert. Mfg, Christian Seehase[/edit]
const
Data: array[0..4] of String = ('Funktionen', 'Prozeduren', 'Units', 'Forms', 'Programme'); implementation uses Main; Procedure Count; var d: integer; begin frmmain.Memo1.Clear; frmmain.Listbox1.Items.Clear; for d := 0 to 4 do begin frmmain.ADOQuery1.Close; frmmain.ADOQuery1.SQL.Text := 'select * from '+Data[d] ; frmmain.ADOQuery1.Open; case d of 0:ca:=frmmain.ADOQuery1.RecordCount; 1:cb:=frmmain.ADOQuery1.RecordCount; 2:cc:=frmmain.ADOQuery1.RecordCount; 3:cd:=frmmain.ADOQuery1.RecordCount; 4:ce:=frmmain.ADOQuery1.RecordCount; end; frmmain.ADOQuery1.Next; end; end; |
Re: Array of Integer?
Moin Gehstock,
Zitat:
Das Array ist ja auch als Ersatz für diese zu verstehen. |
Re: Array of Integer?
Um die Anzahl der Datensätze zu bestimmen sollte man ein Select count(*) from ...
RecordCount ist nur dann gültig wenn die Datensätze entweder schon beim Client gelandet sind (Netzwerkbelastung bei großen Tabellen) oder vom Server eine Temporäre Tabelle (MS SQL Server) erzeugt wurde (Serverlast) oder erst wenn wirklich der Curser bis zum letzten Datensatz bewegt wurde (Fall A). |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:22 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