Aus der Delphi-Hilfe
Zitat:
Die Komponente führt den in ihrer Eigenschaft CommandText angegebenen Befehl aus. Es kann immer nur ein Befehl aufgerufen werden. Die Parameter des Befehls werden in der Eigenschaft Parameters übergeben. Die eigentliche Ausführung wird von Methode Execute durchgeführt.
Query Analyzer:
- Kann Batch-Skripte ausführen, sprich mehrere Befehle in einem Skript hintereinander!
TADOCommand:
- Immer nur ein Befehl !!
Zitat von
sveni2211:
Beispiel:
SQL-Code:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ChangeMasterID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_x_D3000SV_MietEig]
GO
CREATE Procedure sp_ChangeMasterID
Wenn ich das Script im
Query Analyzer lade und ausführe, dann funktioniert es. Lade ich es hingegen in die Command- Komponenten und versuche es auszuführen, kommt eine Fehlermeldung, dass der Kontext nicht stimmen würden und er die Operation nicht ausführen kann. Also irgendwie unterscheidet sich das ausführen mit der Delphi- Komponente noch von der mit dem
Query Analzer.
Wie im Ausschnitt des
SQL-Skripts zu sehen, sind es mindestens 2 Befehle:
Nr. 1:
SQL-Code:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_ChangeMasterID]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[sp_x_D3000SV_MietEig]
Nr. 2:
CREATE Procedure sp_ChangeMasterID
Das 'GO' wird und kann nur im
Query Analyzer verwendet, aus explizierter Befehl zum Ausführen!
Trenne die Befehle und es wird Klappen !
Schauiii..
Holger