AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TDBXError: Reader-hat-keine-weiteren-Zeilen
Thema durchsuchen
Ansicht
Themen-Optionen

TDBXError: Reader-hat-keine-weiteren-Zeilen

Ein Thema von Delbor · begonnen am 5. Jan 2013 · letzter Beitrag vom 5. Jan 2013
 
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: TDBXError: Reader-hat-keine-weiteren-Zeilen

  Alt 5. Jan 2013, 14:45
Grundsätzlich denke ich, hast du damit recht, verschiedene DataSets zu verwenden. Ich sehe allerdings nicht,weshalb die Funktion eingeschränkt werden soll, wenn ich das einemal eine Selectanweisung und das andere mal ein Insert-Statement über dasselbe Dataset ausführe.
Wenn du nur ein Dataset verwendest ist es im Prinzip wie ein globales Objekt und kann damit unerwünschte Seiteneffekte verursachen.

Das heisst dann: für jede Abfrage ein eigenes Dataset? Ist das nicht etwas viel?
Zum Beispiel, wenn eine Abfrage die ersten drei Felder liefern soll, eine andere alle und eine dritte nur eines?
Ja, für jeden Zweck ein eigenes Dataset. Um das zu organiseren gibt es Datenmodule.
Die meisten Abfragen sind fest, d.h. man kann sie schon im Objektinspektor festlegen.
Dynamische Abfragen, also wenn das SqlCommand zur Laufzeit zusammengebaut wird, kann man natürlich auch verwenden, aber das ist eher selten.
Man kann ca 20 bis 30 Datasets auf ein Datenmodul packen bevor es unübersichtlich wird.
ÄÄÄhhh - und dann das einzige angeforderte und gelieferte Feld über seinen Index abfrage?
In dem Fall sollte man das Feld über den Namen ansprechen.

Ich verstehe übrigens nicht so ganz, was du mit der LastId eigentlich bezweckst.
Eigentlich muss man die höchste ID nur abfragen, wenn man einen neuen Datensatz einfügen möchte.
Dann braucht man aber die höchste ID plus 1.
Und die Insertanweisung wäre dann Insert Into Bildtabelle(idBild, Thumbnail, NEF) Values (:FidBild, :FThumbMemory,:FNefMemory) weil man die neue ID schon beim Einfügen mitgeben muss.

Falls das Feld idBild ein Autoincrement-Feld ist muss man es allerdings beim Insert weglassen.
Dann ergibt sich allerdings das Problem, dass man nicht weiss mit welcher ID der letzte Datensatz eingefügt wurde. (was passiert wenn mehrere Clients quasi gleichzeitig einfügen?)
Ich würde empfehlen auf Autoincrement-Felder komplett zu verzichten und stattdessen die neue ID direkt vor dem Insert zu ermitteln.
  Mit Zitat antworten Zitat
 


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 17:04 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-2025 by Thomas Breitkreuz