Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Setkey und GoToKey unter ADOX??? (https://www.delphipraxis.net/134405-setkey-und-gotokey-unter-adox.html)

daredd 21. Mai 2009 14:28

Datenbank: Firebird • Version: 2.1 • Zugriff über: ADO

Setkey und GoToKey unter ADOX???
 
Hallo leute!

Ich will ja immer noch von meiner Interbase mit BDE wegkommen.
Nun verwende ich dazu ADO-Komponenten von Delphi und greife mit denen auf meine FDB's

Jedoch kommen schon beim kompelieren Fehlermeldungen wie:

[DCC Fehler] Unit34.pas(300): E2003 Undefinierter Bezeichner: 'SetKey'
[DCC Fehler] Unit34.pas(302): E2003 Undefinierter Bezeichner: 'GotoKey'

Scheint so zu sein das unter ADOx die SetKey und GotoKey funktionen nicht mehr vorhanden sind.
Kann mir einer sagen was das Äquivalent dazu unter ADO ist?

Gibt es vielleicht im Netz eine Liste alle Tabellenfunktionen von ADO?

Bernhard Geyer 21. Mai 2009 21:23

Re: Setkey und GoToKey unter ADOX???
 
Für Firebird solltest du nicht den umweg über ADO gehen. Hierfür gibt es genügend gute native Zugriffskompos. Kostenlos ist hier z.B. Zeos zu nennen.

sx2008 21. Mai 2009 21:52

Re: Setkey und GoToKey unter ADOX???
 
Zitat:

Zitat von daredd
Scheint so zu sein das unter ADOx die SetKey und GotoKey funktionen nicht mehr vorhanden sind.

So ist es. Das sind "Spezialfunktionen" die es nur bei der BDE gibt.
Zitat:

Zitat von daredd
Kann mir einer sagen was das Äquivalent dazu unter ADO ist?

Das wird alles über SQL gemacht. (und das ist auch gut so)
http://www.sqltutorial.de/
Bei geringen Datenmengen ( bis ~1000 Datensätze) kann man sich auch mit der Methode .Locate() behelfen.
Man hat dann aber keine beschleunigende Unterstützung durch Indizes.

daredd 23. Mai 2009 10:09

Re: Setkey und GoToKey unter ADOX???
 
Das ich hab das jetzt mal mit .Seek und .Locate ausprobiert, das Problem er verlangt irgendwelche Parameter (also .seek(keyvalues, seekoptions)).


[DCC Fehler] Unit34.pas(301): E2035 Nicht genügend wirkliche Parameter

Woher soll ich denn wiessen welche parameter ich da einsetze, wenn ich davor bei SetKey oder GotoKey keine Parameter hatte.

Also es stand nur tbAdmin.Setkey dar.

mkinzler 23. Mai 2009 10:15

Re: Setkey und GoToKey unter ADOX???
 
Zitat:

Woher soll ich denn wiessen welche parameter ich da einsetze,
Na in der Hilfe nachlesen, was diese Parameter bedeuten!
Diese Methoden sind mächtiger, da man nach jedem Feld und Kombibation suchen kann, deshalb muss man dies auch explizit angeben

daredd 23. Mai 2009 14:10

Re: Setkey und GoToKey unter ADOX???
 
Also, ich bin ziemlich gut weiter gekommen mit .Locate() und so!

Nun bleib ich bei TTable.GotoNearest stecken? Was wäre dafür die Methode unter TADOTable???

Kann mir einer weiter helfen?


GotoNearest: Sucht abhängig von string-basierten Feldern nach der besten Übereinstimmung mit einem Datensatz, abhängig von bestimmten
Schlüsselwerten, und setzt den Cursor auf diesen Datensatz.

daredd 23. Mai 2009 14:29

Re: Setkey und GoToKey unter ADOX???
 
Hat sich denke ich schon erlädigt!

Man muss unter .Locate(..., [loPartialKey]) als Option angeben!

sx2008 23. Mai 2009 14:32

Re: Setkey und GoToKey unter ADOX???
 
Zitat:

Zitat von daredd
Nun bleib ich bei TTable.GotoNearest stecken? Was wäre dafür die Methode unter TADOTable???

Tja, das ist wirklich ein Schwachpunkt; dies lässt sich mit SQL nicht nachbilden.
Aber man braucht .GotoNearest auch nicht unbedingt.

daredd 23. Mai 2009 14:51

Re: Setkey und GoToKey unter ADOX???
 
Zitat:

Zitat von sx2008
Zitat:

Zitat von daredd
Nun bleib ich bei TTable.GotoNearest stecken? Was wäre dafür die Methode unter TADOTable???

Tja, das ist wirklich ein Schwachpunkt; dies lässt sich mit SQL nicht nachbilden.
Aber man braucht .GotoNearest auch nicht unbedingt.

Interessant! Hab es jetzt wie gesagt erstmal gelöst wie oben beschrieben, mal sehen wenn ich es kompelieren was bei rauskommt.



Stecke aber nun im moment bei inm TADOQuery fest, undzwar kennt er die Methode "UniDirectional" nicht.

Hab auch noch keine alternative gefunden!!! ???

sx2008 23. Mai 2009 17:05

Re: Setkey und GoToKey unter ADOX???
 
Zitat:

Zitat von daredd
Stecke aber nun im moment bei inm TADOQuery fest, undzwar kennt er die Methode "UniDirectional" nicht

Einfach weglassen.
UniDirectional = True bringt bei Benutzung der BDE einen gewissen Geschwindigkeitsvorteil, weil man ankündigt die Datenmenge nur in einer Richtung durchzugehen.
Bei ADO kann man das Property CursorType auf OpenForwardOnly setzen; aber das würde ich erst dann tun wenn das Programm mehr oder weniger fertig ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:04 Uhr.
Seite 1 von 2  1 2      

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