Autor Beitrag
schaumermal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72



BeitragVerfasst: Mi 25.11.09 22:14 
Hallo,

ich habe bisher nur DB Anwendungen mit Paradox Datenbanken und Delphi erstellt.
Jetzt möchte ich gerne Anwendungen unter Delphi mit Anbindung an MS SQL Datenbanken erstellen.

Könnt Ihr mir hierzu ein entsprechendes Buch empfehlen?

Gruß

Kai
schaumermal Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72



BeitragVerfasst: Fr 27.11.09 10:43 
Gibt es zu diesem Thema wirklich keine Bücher?

Vieleicht kann mir ja auch zu diesem Thema direkt eine Antwort geben.

Mit Paradox habe ich Änderungen an den Daten einfach mit Insert, Delete und Post bearbeitet (bei Table und Query).
Unter SQL gibt es aber bei der Query separate SQL Statemants für Delete, Instert, Update, usw.

Ich kann doch mit Query.Delete direkt den aktuellen Datensatz löschen. Warum gibt es eine separate SQL Anweisung hierfür?

Ebenso ist es doch einfacher mit Query.Insert und Query.Post zu arbeiten als mit einem separaten SQL Statement (Insert into xxx (value ...)) zumal ich hier Feldinhalte ja dann auch noch zuordnen muss.

Möglicherweise habe ich hier auch nur ein Verständnisproblem bei dem mir jemand helfen kann.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 27.11.09 11:30 
Diese Abfragen werden bei .Insert, Update, .Delete aufgerufen

_________________
Markus Kinzler.
giantdwarf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 35


Delphi 5, Delphi 2006 Prof, Delphi 2009
BeitragVerfasst: Fr 27.11.09 11:36 
Das SQL Statement bietet außerdem Möglichkeiten zusätzliche Dinge wie den Aufruf einer Stored Procedure etc. auszuführen.
schaumermal Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72



BeitragVerfasst: Fr 27.11.09 12:18 
Hi,

user profile iconmkinzler hat folgendes geschrieben Zum zitierten Posting springen:
Diese Abfragen werden bei .Insert, Update, .Delete aufgerufen


Wenn ich dies richtig verstehe, muss ich diese dann nicht explizit setzten, es sein den ich will im Rahmen dieser Aktion weiters auslösen?
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 27.11.09 13:43 
user profile iconschaumermal hat folgendes geschrieben Zum zitierten Posting springen:
..muss ich diese dann nicht explizit setzten, es sein den ich will im Rahmen dieser Aktion weiters auslösen?


So ungefähr siehts aus. Zuerst teilt man seinem Dataset mal die grundlegenden SQL Befehle mit. Das baut sich die ja dann, zumindest im Normalfall, auch gleich richtig zusammen. Kennt alle Felder usw. Insbesondere für Insert und Delete braucht man sich da keine SQL-Strings selber zusammenzubauen. Aber Vorsicht ! Du wirst hier und auch sonstwo zig Beispiele finden, wo das trotzdem so gemacht wird. Unnötigerweise ufert das meistens aus, weil sehr fehlerträchtig. Da werden Ratschläge gegeben QuotedStr zu benutzen usw. Im Endeffekt wird wegen etwas, was bereits von alleine geht, ein Riesenaufwand betrieben.

Dann noch die Ausnahmen : betrifft hauptsächlich SelectSQL. Das Standard-SQL wäre SELECT * FROM TABLEX. Wer braucht aber immer alle Datensätze einer einzelnen Tabelle ? Also passt man das im Quelltext selber an. D.h. das Standard-SelectSQL ist noch da, aber in dem einen Fall gilt eben das eigene. Zum Insert fällt mir jetzt gar nichts ein, aber vielleicht noch für Delete : ich will alle Datensätze mit NR < 100 löschen. In dem Fall müsste man dann das Standard-DeleteSQL auch ersetzen, z.B. so : DELETE FROM TABLEX WHERE NR <= 100

_________________
Gruß
Hansa
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 27.11.09 14:17 
Also Hansa, diese Abfrage bei DeleteSQL einzutragen ist ja wohl sehr gefährlich! :shock:
Man markiert den 1. Datensatz und u.U. werden 100 gelöscht, oder wenn diese nicht mehr vorhanden sind passiert gar nichts!

_________________
Markus Kinzler.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 27.11.09 14:27 
Ich wollts fast schon nicht schreiben. :mrgreen: Allerdings : das war auch nicht als Erstz für das Dataset-DeleteSQL gedacht, sondern höchstens für den Quelltext und Sonderfälle !

_________________
Gruß
Hansa
schaumermal Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72



BeitragVerfasst: Fr 27.11.09 14:33 
Hi,

danke für die Infos.
Ich hatte aber den Hinweis von hansa schon richtig verstanden, dass dies nur aus dem Quellcode so gesetzt werden sollte, falls die Aktion so notwendig ist.
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Fr 27.11.09 14:44 
Dann würde ich hierfür aber eine eigene Abfrage verwenden.

_________________
Markus Kinzler.