![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: UIB
Locate von UIBDataSet funzt nicht
Hallo zusammen.
Ich habe ein kleines Problem was mit irgend wie keinen sinn ergibt. Ich habe Folgenden Code :
Delphi-Quellcode:
Die ID wird mit auch in dem DBgrid angezeigt. aber er findet den Eintrag nicht. KundenListe ist ein TJvUIBDataSet.// Kundenlist Aktualisieren Daten.KundenListe.Close; Daten.KundenListe.Open; if DSKunden.DataSet.Locate('ID',New_ID, [loPartialKey]) then begin DBGrid1.SelectedField := DSKunden.DataSet.FieldByName('ID'); DBGrid1.SetFocus; end else ShowMessage('Feld ID mit wert "' + inttostr(NEW_ID) + '" Nicht gefunden.'); Kann es evtl. daran liegen das UIBDataSet diese art der suche nicht unterstützt ? oder muss ich da noch etwas angeben ? gruss Sascha |
AW: Bin etwas konfuss....
Ist das Feld vom Typ Integer?
|
AW: Bin etwas konfuss....
Bitte gib deinem Beitrag einen aussagekräftigen Titel.
|
Locate mit UIB Komponenten
Sorry. Habe das etwas vergessen mit dem Namen für den Titel.
Kann das im nachhinein nicht mehr ändern. dazu fehlen mir warscheinlich die Rechte ;) Also ja das ist ein Integer Wert ! aber er gibt mir keine Fehlermeldung das es der Falsche wert ist. |
AW: Locate von UIBDataSet funzt nicht
Zitat:
Vieleicht ist da dieser "Bug" schon nicht mehr da. |
AW: Locate von UIBDataSet funzt nicht
Der bug den die hatten ist das nur ein datensatz gelesen wurde.
Der ist aber in der version 2.1 behoben die habe ich. Kann es evtl sein das ich in der Komponente noch etwas zusätzlich angeben muss wie index oder so ?? habe da nur die Felder importiert und fertig ! Oder müsste das auch so gehen ?? und wenn man auf das locate verzichten würde gibt es da noch eine andere möglichkeit ? wie z.b. einen nach dem anderen auswählen und dann bei dem richtigen stehen bleiben. aber das würde wiederum eine folge haben das der User den balken herbalaufen sieht oder ? Hat jemand ne idee ? gruss Sascha |
AW: Locate von UIBDataSet funzt nicht
So nun habe ich eben das Pferd von einer anderen seite bestiegen.
Ich bin nun hergegangen und habe, da offenbar keine andere Lösung zur verfügung stand, das DBGrid gelöscht und eine TListView genommen und die anzeige auf Report gestellt. Dann entsprechend die Titel eingefügt und lese dann mit dieser funktion :
Delphi-Quellcode:
Die daten eben manuell ein. War zwar etwas mehr schreib arbeit aber dafür geht es.
Procedure TKundenListeF.KundenListeAktualisieren;
var li : TListItem; begin KundenlisteView.Items.Clear; KundenListeView.Items.BeginUpdate; Daten.KundenListe.Open; daten.Kundenliste.First; repeat li := KundenListeView.Items.Add; li.Caption := Daten.KundenListeID.AsString; Li.SubItems.Add(daten.KundenListeVorname.AsString); li.SubItems.Add(Daten.KundenListeNAME.AsString); li.SubItems.Add(Daten.KundenlisteStrasse.asstring); li.SubItems.Add(Daten.KundenlistePLZ.AsString); Li.SubItems.Add(Daten.KundenListeORT.AsString); Daten.KundenListe.Next; until Daten.KundenListe.Eof; Daten.Kundenliste.Close; KundenListeView.Items.EndUpdate; end; und die Position in der Liste finde ich dann mit Hilfe von
Delphi-Quellcode:
wobei ich da wohl Wishmaster aus
li := KundenListeView.FindCaption(0, inttostr(S_ID), false, True, False);
if li <> nil then begin KundenListeView.Selected := li; KundenListeView.ItemFocused := Li; li.MakeVisible(True); KundenListeView.SetFocus; end; ![]() Mein Alter Herr ist der meinung das ich diese Technik nicht verwenden sollte aber der hat leicht reden. Der hat auch genug geld um sich die Enterprise version von Delphi zu holen wo etwas andere komponenten zur verfügung stehen :) Ich habe nur die Turbo Version... Aber auch damit geht nur eben etwas schwerer :) Danke an alle die Mir versucht haben zu helfen und sich den Kopf zerbrochen haben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 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 by Thomas Breitkreuz