AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TADOQuery und IndexFieldnames
Thema durchsuchen
Ansicht
Themen-Optionen

TADOQuery und IndexFieldnames

Ein Thema von ahachmann · begonnen am 12. Feb 2004 · letzter Beitrag vom 16. Feb 2004
Antwort Antwort
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#1

TADOQuery und IndexFieldnames

  Alt 12. Feb 2004, 13:49
Hallo,
Ich möchte eine in einem DatabaseGrid dargestellte TADOTable zur Laufzeit nach den Feldern sortieren. Hierfür möchte ich keine TADOQry nutzen, da ich die TADOTable in dem Form brauche.
Wenn ich zur Entwicklungszeit die IndexFieldNames auf das zu sortierende Feld setze, dann sortiert die Tabelle Korrekt.
Nu habe ich aber das Problem, daß in dem Formulra über das DBGrid die Propertdie Indexfieldname nicht zu erreichen ist.

  dbgrRoehrchen.DataSource.DataSet.IndexFieldNames := 'article_id'; Wie kann ich diese Property trotzdem ändern, ohne die TADOTable selber mit dan das Formular zu übergeben.

Vielen Dank,
ALexander
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: TADOQuery und IndexFieldnames

  Alt 12. Feb 2004, 14:39
Hallo Alexander,

hast Du in deinem Formular in der uses-Klausel die Unit mit der Tabel angegeben?
  Mit Zitat antworten Zitat
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#3

Re: TADOQuery und IndexFieldnames

  Alt 12. Feb 2004, 15:06
Nein, habe ich nicht.
Aber das soll auch nicht. Das Formular soll nur über das DBGrid auf die Daten zugreifen können. Mit den Feldern Funktioniert das auch. Ich versuche die Uses verknüpfungen aus übersichts Gründen so gering wie möglich zu halten.
Letztendlich muß ich für die Objektklasse ja nur ADODB einbinden und das ist auch drinne.
Hmmm, noch ne Idee?
Thx
Alexander
  Mit Zitat antworten Zitat
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#4

Re: TADOQuery und IndexFieldnames

  Alt 13. Feb 2004, 14:31
Hallo,
Ich habe jetzt folgenden Code erstellt. Da das Dataset ja ein TDataset ist, dachte ich ,daß ich einen Cast auf TADOTable machen könnte. Das klappt aber nicht.
Muß ich wirklich direkt über die Unit auf die Tabelle zugreifen? Eigentlich möchte ich dem Formular die Tabelle übergeben und nicht Direkt drauf zugreifen.

Delphi-Quellcode:
procedure TfrmVerpackung.lcmbCustomerCloseUp(Sender: TObject);
  var tblToFilter: TADOTable;
begin
  tblToFilter := lcmbProduct.DataSource.DataSet AS TADOTable;
  if lcmbCustomer.KeyValue <> 0 then
  begin
    tblToFilter.Filter := 'Where customer_id = '+ inttostr(lcmbCustomer.KeyValue) +'';
    tblToFilter.Filtered := true;
  end
  else
    tblToFilter.Filtered := false;
end;
THX
Alexander
  Mit Zitat antworten Zitat
HolyCow

Registriert seit: 13. Feb 2004
18 Beiträge
 
Delphi 8 Architect
 
#5

Re: TADOQuery und IndexFieldnames

  Alt 14. Feb 2004, 22:56
Ich würde bei solchen Anwendungen (Umsortieren nach beliebigen Spalten etc., Unabhängigkeit vom tatsächlichen DataSet) über ein TClientDataSet im Form nachdenken. TClientDataSet dann über einen TDataSetProvider mit dem TADOTable verbinden - Nachteil/Vorteil: die Verarbeitung/Sortierung etc. findet komplett clientseitig statt ...
  Mit Zitat antworten Zitat
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#6

Re: TADOQuery und IndexFieldnames

  Alt 16. Feb 2004, 12:01
Ok, das klingt vernünftig. Habe das jetzt mal so aufgebaut:

DataSetPrivider->ClientDataset->DataSource->DBGrid.

Beim ersten Test hatte das auch fonktioniert. Aber jetzt beim zweiten, kann ich zwar das Clientdataset auf active:= True setzen. Beim ausführen des Programmes bekomme ich aber leider einen "Eigenschaft für Dataset Fehlt".
Aber es sind alle Objects mit einander verknüpft.
Woran kann das leigen?
Gruß,
Alexander
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#7

Re: TADOQuery und IndexFieldnames

  Alt 16. Feb 2004, 12:28
Das ClientDataSet macht eigentlich nur Sinn, wenn der User auch "Offline" Daten ändern & synchronisieren will oder der DB-Server 'ne Schnecke (= Single- / Uralt-CPU) ist.
  Mit Zitat antworten Zitat
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#8

Re: TADOQuery und IndexFieldnames

  Alt 16. Feb 2004, 13:21
1 Frage:
Bedeutet das, daß das Clientdataset dann die Tabelle in eine Angegebene XML Datei sichert?

2 Frage:
Wie kann ich das geschilderte Problem mit den fehlenden Datasetinfos lösen? Hab ja wie gesagt den Provider angegeben, und so hat es auch vorher schon mal funktioniert

thx,
Alexander

Hat sich geklärt. Das Formular mit dem referenzierten Dataset muß natürlich im Projektmanager in der Form-Reihenfolge über das bearbeitete Form gesetzt werden, damit es schon existiert.
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:37 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