Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TADOTable: Hinzufügen, ohne vorher die Tabelle zu laden??? (https://www.delphipraxis.net/143372-tadotable-hinzufuegen-ohne-vorher-die-tabelle-zu-laden.html)

romber 14. Nov 2009 13:01

Datenbank: MS SQL Server • Version: 2008 • Zugriff über: ADO

TADOTable: Hinzufügen, ohne vorher die Tabelle zu laden???
 
Ich greife mit TADOTable auf eine MS SQL Server-Tabelle zu. Eingentlich möchte ich nur neue Daten hinzufügen, was es bereits in der Tabelle gibt interessiert mich nicht. Doch sobald ich meine ADOTable.Active := true setze, wird erstmal die ganze Tabelle aus der Datenbank geladen, was je nach dem wieviele Einträge bereits in der Tablelle gibt, einige Sekunden dauern kann. Erst dann werden die neuen Daten hinzufügt. Gibt es eine Möglichkein, mit ADOTable die neuen Daten direkt hinzu zu fügen, ohne vorher die ganze Tabelle laden zu müssen?

Normalerweise inseriere ich mit TADOQuery die neuen Daten. Ich erstelle den SQL-Text mit Parametern, setze die Parameter, prüfe dann beim Ausführen des SQL-Scripts die Inhalte der Parameter und inseriere dann die Daten. Das ist alles kein Problem. Mich würde aber trotzdem interessieren, ob es auch mit TADOTable einfacher geht, denn dann kann ich mir die SQL-Scripte ersparen und direkt in Delphi die Daten validieren und mit FieldByName() in die Tabelle hinzufügen.

alzaimar 14. Nov 2009 14:25

Re: TADOTable: Hinzufügen, ohne vorher die Tabelle zu laden?
 
Probier mal Folgendes:
Statt TADOTable nimmst Du eine TADOQuery. In die SQL-Eigenschaft schreibst Du "SELECT * FROM <Tabelle> WHERE 1=0". Nun öffnest Du die Query. Es werden 0 Zeilen eingelesen. Anschließend kannst du per Edit,<Felder befüllen> und 'Post' ganz einfach Daten an eine Tabelle anfügen.

romber 14. Nov 2009 14:34

Re: TADOTable: Hinzufügen, ohne vorher die Tabelle zu laden?
 
Vielen Dank für die schnelle Antwort!
Das geht sehr gut.
Mist! Die Lösung ligt wie immer vor meinen Augen und ist suche woanders...
Danke!


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