Hiho!
Beim Analysieren einer
DB-Verbindung frage ich mich, wieso
ADO jedes Skript erstmal mit 'sp_prepare' vorbereitet, dann mit 'sp_unprepare' weitermacht, um dann das Skript selbst auszuführen.
Das Lustige (na ja) ist, das
ADO das auch dann macht, wenn ich im TADODataset die Eigenschaft 'Prepared' auf 'FALSE' setze.
Nach allgemeinem Verständnis der englischen Sprache, der
OH und nach Rückfrage mit meinem Großhirn, wo ab und an mein 'gesunder Menschenverstand' einen Zwischenstopp einlegt, sollte 'Prepared := False' doch eigentlich
ADO davon abhalten, etwas derartiges zu machen, oder?
Auch ein Setzen von 'Use Procedure for Prepare=0' im Connectionstring der TADOConnection wird ignoriert.
So sieht das Skript aus, das
ADO generiert:
SQL-Code:
declare @P1 int
exec sp_prepare @P1 output, NULL, N'select * from OrderView'
select @P1
go
exec sp_unprepare 3
go
select * from OrderView
go
Ist das nicht ein wenig krank?
Meine Fragen hierzu:
1. Was soll das?
2. Ist es sp_prepare/sp_unprepare wenigstens garantiert immer schneller?
3.
If Answer(2)=NO Then 'Wie kann man das abstellen'
Zu 3: Eigentlich reicht es mir, wenn
ADO einfach nur mein Skript/Befehl durchreicht, OHNE ihn mit 'sp_prepare' anzufassen.
NACHTRAG: Es passiert natürlich nur beim allerersten Mal, also wenn das Dataset zum 1.Mal geöffnet wird...