VB6 + SQL-Server: Jak mogę wykonać zapytanie z nazwanymi parametrami za pomocą ADODB.Command?
Próbowałem wykonać sparametryzowane zapytanie za pomocą ADODB.Command. Wiem, że mogę użyć „?” dla parametrów, ale moje zapytania są dość duże i naprawdę nie chcę śledzić dokładnej kolejności parametrów. Próbowałem czegoś takiego:
objCmd.CommandType = adCmdText
objCmd.CommandText = "SELECT ... WHERE field1=@p_Field1 ...."
Dim objParam As ADODB.Parameter
Set objParam = objCmd.CreateParameter("@p_Field1" ...)
objCmd.Parameters.Append objParam
...
objCmd.Open
Działa dla parametrów procedury składowanej (oczywiście ustawienie CommandType = adCmdStoredProc), ale nie mogę tego zrobić wewnątrz procedury składowanej z powodu dynamicznej natury samego zapytania. Gdy próbuję uruchomić zapytanie, pojawia się błąd:
Must declare the scalar variable "@p_Field1"
Czy istnieje inny sposób obejścia tego problemu, który nie wymaga użycia procedur przechowywanych lub (argh) łączenia wartości parametrów w samym zapytaniu i nie używa w ogóle parametrów?