Entwickler-Ecke

Datenbanken - Blöde frage -_-, aber warum sind offt manuelle insters vorh.


daggit - Fr 19.08.05 16:56
Titel: Blöde frage -_-, aber warum sind offt manuelle insters vorh.
hi,

hab da mal eine , wenn wohl auch blöde frage :).... ich hab mir mal einnige Beispielanendungen angeschaut. Bei vielen Anwendungen sind Datenbankobjekte vorhanden z.B. UpdateSQL wo in den Insert, Modify und Delete Eigenschaften die jeweiligen SQl-Statements eingetragen wurden (z.B. Update Tabele set Spalte = :spalte ).... nur frage ich mich wozu diese "manuellen" Statements nötig sind...die inserts und updates werden doch automatisch ausgeführt wenn man die DBeditfelder ausgefüllt hat und und mit .POST bestätigt.
Ich konnte auch keinen verweiss auf diese "manuellen" Statements finden. Hat dies eventuell einen anderen sinn?


rochus - Fr 19.08.05 16:58

Ich kenn zwar die Beispiele nicht, aber eventuell gibt's Leute, die keine DB Komponenten einsetzen (+können/wollen). Da bastelt man sich so ein Update am besten per Hand.


alzaimar - Fr 19.08.05 17:06

Da gibt es reichlich Beispiele: Wenn Du Dir z.B. eine Tabelle anzeigen lässt, die in der Form gar nicht in der Datenbank vorhanden ist (verknüpfte Tabellen oder aggregierte Felder), dann klappt das mit dem 'automatischen' Update nicht. Der DB-Treiber, also ODBC, ADO o.ä., oder die DB selbst, versucht zwar, die entsprechenden Anweisungen zu generieren, aber manchmal klappt das nicht. Dann muss man selbst Hand anlegen.

Ein anderes Beispiel sind automatisch generierte Anweisungen, die alles andere als Schnell sind. Ich habe z.B. keine Möglichkeit, ADO zu sagen, das es ein Update der Form

Quelltext
1:
Update Tabelle set Feld1 = 'Neuer Wert', Feld2='Noch einer' where KeyFeld=123                    

erzeugen soll. ADO schickt immer das hier:

Quelltext
1:
Update Tabelle set Feld1 = 'Neuer Wert', Feld2='Noch einer' where Feld1='Alter Wert' And Feld2='Anderer alter Wert'                    

Das will ich aber nicht, weil die Tabelle gar nicht nach Feld1 indiziert ist.