Ich muss eine große Anzahl von SQL-Abfragen in gespeicherte Prozeduren konvertieren. Ich habe Code, der ungefähr 20 oder 30 Werte gleichzeitig in einer Delphi-Prozedur aktualisiert. Ich kann mit dem Erstellen von gespeicherten Prozeduren umgehen, um so etwas zu tun. Das Problem ist, dass meine Art, Parameter an gespeicherte Prozeduren zu übergeben, sehr umfangreich ist:
%Vor%Ich bin mir auch nicht sicher, ob das einen Speicherverlust verursacht (ist es notwendig, solche TParameter-Objekte zu befreien?)
Jeder hat eine bessere Möglichkeit, eine große Anzahl von Parametern zu handhaben? (Ich kann keine neue Bibliothek verwenden. Ich muss ADO verwenden, und die SQL, die ich verwende, ist MSSQL) (auch verwende ich ADO.net NICHT)
Dies führt nicht zu einem Speicherverlust. stored_procedure wird seine Parameter bereinigen. Sie können dies mit FastMM bestätigen, indem Sie Ihrem .dpr Folgendes hinzufügen:
%Vor%Zuerst würde ich die "mit" Aussage loswerden. Es kann zu mehr Problemen und weniger lesbarem Code führen.
Ich würde eine Hilfsmethode erstellen, die eine gespeicherte Prozedur, einen Parameternamen und einen Parameterwert akzeptiert, wodurch Ihr Code leichter zu verwalten ist.
%Vor%Es gibt eine akzeptierte Antwort :-), aber ich möchte Sie auf einen einfacheren und einfacheren Weg hinweisen, die Parameter mit einer Zeile zu definieren und zu verwenden:
%Vor%Es ist einfach und flexibel, weil Sie die Eingabe- und Ausgabeparameter mit derselben Zeile definieren können.
und aus Delphi help:
%Vor%ADO erstellt die Parameter für Sie, Sie müssen nur Refresh für das Parameter-Objekt aufrufen:
%Vor%usw.
Wenn irgendwelche Parameter ausgegeben werden, müssen Sie sie explizit einstellen:
%Vor%Tags und Links sql-server delphi stored-procedures ado