![]() |
Datenbank: MS-SQL • Version: 2000 • Zugriff über: ADO
Mit ADOCommand auf SQL2000 eine SP erzeugen?
Hallo.
Ich habe eine MS-SQL 2000 Datenbank. Diese wird per ADO unter Delphi 7 angesprochen. Jetzt habe ich das Problem, dass aus einer Zuarbeit zwei Stored Procedures mittels des Programms erzeugt werden müssen in der Datenbank. Ich habe die beiden SP's in zwei Dateien *.PRC bekommen. Ich haben nun Versucht mittel einer Instanz von TAdoCommand diese einzuspielen. Dazu setze ich den Typ auf cmdText. Und den Inhalt der Dateien lade ich über TStringList auf AdoCommand.SQL.Text. Wenn ich das nun Ausführe, kommt nur eine Fehlermeldung mit dem Inhalt "Konsens stimmt nicht oder ist unvollständig". Wie kann ich diese SP importieren? Ich will sie also nicht ausführen sondern erst einmal reinkommen. |
Re: Mit ADOCommand auf SQL2000 eine SP erzeugen?
Hi,
SP kann man in SQL mit
SQL-Code:
erstellen.
Create Procedure ...
Was steht denn in den RPC-Dateien drin? |
Re: Mit ADOCommand auf SQL2000 eine SP erzeugen?
Beispiel:
SQL-Code:
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.
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 |
Re: Mit ADOCommand auf SQL2000 eine SP erzeugen?
Hi,
Zitat:
|
Re: Mit ADOCommand auf SQL2000 eine SP erzeugen?
Da kommen noch etwa 300 Zeilen. Die habe ich weg gelassen, weil sie in dem Fall unwichtig sind (und Betriebsintern).
Für mich ist ja das Problem, das dieses Script im QA durchläuft. Ich aber diesen Durchlauf in Delphi nicht sauber hin bekomme. |
Re: Mit ADOCommand auf SQL2000 eine SP erzeugen?
Aus der Delphi-Hilfe
Zitat:
- Kann Batch-Skripte ausführen, sprich mehrere Befehle in einem Skript hintereinander! TADOCommand: - Immer nur ein Befehl !! Zitat:
Nr. 1:
SQL-Code:
Nr. 2:
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]
SQL-Code:
Das 'GO' wird und kann nur im Query Analyzer verwendet, aus explizierter Befehl zum Ausführen!
CREATE Procedure sp_ChangeMasterID
Trenne die Befehle und es wird Klappen ! Schauiii.. Holger |
Re: Mit ADOCommand auf SQL2000 eine SP erzeugen?
Danke erst einmal. Ich habe da nun eine Funktion hinzugesetzt, die eine Trennung an den GO's macht. Dafür habe ich jetzt ein neues Problem.
Wenn ich das ausführe kommt eine Fehlermeldung, das ein Parameter nicht richtig definiert sei. Mit etwas lesen hab ich nun rausgefunden, das ADOCommand in Parameters die Variablen aus dem Script erwartet. Nur kenne ich die ja vorher. Wenn ich Parametercheck auf False setzte kommt das selbe. Vermutlich erwartet der das von Anfang an. Ich will ja aber die SP nicht ausführen, ich will sie nur erstellen. Wie kann ich dem ADOCommand mitteilen, das er keine Parameter zu erwarten hat? Oder muss ich das Script vorher durchgehen und die Variablen ermitteln? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 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