Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi MyDac unterschie zwischen TMyTable und TMyQuery (https://www.delphipraxis.net/62818-mydac-unterschie-zwischen-tmytable-und-tmyquery.html)

Karstadt 9. Feb 2006 23:42

Datenbank: mysql • Version: 4 • Zugriff über: mydac

MyDac unterschie zwischen TMyTable und TMyQuery
 
Hallo. Kann mir jemand den Unterschie zwischen TMyQuery und TMyTable erklären:


TMyTable ist:

Use TMyTable to access data in a table. TMyTable provides properties and methods to gain direct access to records and fields in an underlying server database without writing SQL statements.
...

Mit TMyQuery arbeite ich mit SQL befehlen. Das ist aber auch der Sinn der Sache. Bei Mysql Server arbeitet ja mit SQL Befehlen.

Meine eigentliche Frage ist wo wird diese TMYTable komponente überhaupt eingesetzt? denn Append, Edit, Post kann ich auch mit MyQuery

shmia 10. Feb 2006 11:19

Re: MyDac unterschie zwischen TMyTable und TMyQuery
 
TMyTable ist im Grund nicht anderes, als eine Query, der immer folgende Abfrage zugrunde liegt:
SQL-Code:
SELECT * FROM <Tablename>
Diese Abfrage ist innerhalb der Komponente verborgen; von Aussen kann man nur den Tabellennamen einstellen.
TMyTable ist für die Leute gedacht, die mit SQL nicht in Berührung kommen wollen.
Es ist klar, dass man mit TMyTable keine effiziente Datenbankanwendung schreiben kann.

Karstadt 15. Feb 2006 09:57

Re: MyDac unterschie zwischen TMyTable und TMyQuery
 
Wie meinst du das?

Zitat:

Es ist klar, dass man mit TMyTable keine effiziente Datenbankanwendung schreiben kann.
PS: TMyQuery hat keine Fuktion EmptyTable :( Delete ja, aber nicht empty

shmia 15. Feb 2006 10:11

Re: MyDac unterschie zwischen TMyTable und TMyQuery
 
Zitat:

Zitat von Karstadt
Zitat:

Es ist klar, dass man mit TMyTable keine effiziente Datenbankanwendung schreiben kann.
Wie meinst du das?
PS: TMyQuery hat keine Fuktion EmptyTable :( Delete ja, aber nicht empty

Stell dir vor, du hast eine Strassentabelle mit 1.3 Mio Strassensätzen.
Jetzt möchtest du alle Strassen mit einer bestimmten Postleitzahl von Berlin herausziehen
und dem Bediener in einer Liste anbieten.
Das ist übrigens kein fiktives Beispiel, sondern das gibt es wirklich
Mit SQL würdest du einfach schreiben:
SQL-Code:
SELECT * FROM Strasse WHERE PLZ='10064'
und in spätestens 10 Sekunden wäre das Ergebnis da.
Mit TMyTable würde das Gleiche im Durchschnitt über eine Stunde dauern.
Grund: TMyTable zieht ALLE 1.3 Mio Datensätze und dann musst du in einer Schleife die richtigen ausfiltern.
Zitat:

Zitat von Karstadt
PS: TMyQuery hat keine Fuktion EmptyTable :( Delete ja, aber nicht empty

Dann nimm einfach eine Query mit
SQL-Code:
DELETE FROM NameDerTabelle

Karstadt 15. Feb 2006 10:58

Re: MyDac unterschie zwischen TMyTable und TMyQuery
 
In diesen Fall hat die Komponente TMytable.SQL Methode :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 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