09. januar 2009 - 11:49Der er
3 kommentarer og 1 løsning
Fra SQL sætning til Command
Hej eksperter,
Igen rammer dette spørgsmål nok mest softspot som har hjulpet mig rigtig meget.
gammel kode: SQL = "SELECT Notat,selskabsnummer, notat FROM Notat, NotatTyper " SQL = SQL & " WHERE Notat.NotatTypeID = NotatTyper.NotatTypeID AND Notat.Selskabsnummer = " SQL = SQL & iSelskabsnummer SQL = SQL & " AND NotatType = 'KF - tekst'" SQL = SQL & " ORDER BY STARTDATO DESC" rs.Open SQL, CONN
Mit forsøg på command: strSQL = "SELECT Notat,selskabsnummer,notat FROM Notat,NotatTyper where (Notat.NotatTypeID = ?) AND (Notat.Selskabsnummer = ?) AND NotatType = 'KF - tekst' ORDER BY STARTDATO DESC"
set cmd = Server.CreateObject("ADODB.Command") set cmd.ActiveConnection = Conn cmd.CommandType = adCmdText cmd.CommandText = strSQL cmd.Parameters.Append cmd.CreateParameter("@Notat.NotatTypeID", adVarChar, adParamInput, 255, NotatTyper.NotatTypeID) cmd.Parameters.Append cmd.CreateParameter("@Notat.Selskabsnummer", adVarChar, adParamInput, 255, iSelskabsnummer) Set rs = cmd.Execute()
Får fejl: Object required: "
på linje: cmd.Parameters.Append cmd.CreateParameter("@Notat.NotatTypeID", adVarChar, adParamInput, 255, NotatTyper.NotatTypeID)
Jeg tror dels det skyldes, at du benytter punktum i et parameternavn (men jeg er dog lidt usikker på dette. Dels at du har misforstået den SQL du forsøger at oversætte, da der i realiteten er tale om en join mellem to tabeller (Notat og NotatTyper) og ikke en kandidat til en parameter, når der skrives:
Notat.NotatTypeID = NotatTyper.NotatTypeID
De rigtige kandidater for parameterisering er felterne:
Notat.Selskabsnummer og NotatType
Derfor vil jeg mene din SQL og kode skal se således ud:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.