16. august 2005 - 17:14Der er
34 kommentarer og 2 løsninger
simpel sql..
Hej, nu har jeg sidet og stiret mig blind på denne sætning lidt for længe, så poster den lige her...
Fejl: Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another. /timecontrol/newday.asp, line 4
Kode:
ln1: set workdayopencontrol = Server.CreateObject("adodb.recordset") ln2: workdayopencontrol.open "Select * from workday where workday_userid = " & Session("userid") & " AND workday_open = true", main
Er du sikker på at Session("userid") indeholder en værdi, for en tom Session("userid") vil ganske givet resultere i en fejl, da SQL ikke tillader en ikke numerisk værdi for numeriske felter...
ln3: set workdayopencontrol = Server.CreateObject("adodb.recordset") ln4: workdayopencontrol.open "Select * from workday where workday_userid = " & Session("userid") & " AND workday_open = true", main
Prøv alligevel at checke hvad der ligger i Session("userid").
En anden ting du kan prøve er at kontrollere stavemåden af dine felter kontra dem i din SQL og et ekstra check af om felttyperne matcher det du forventer.
ja, har tjekket felterne igennem, ved godt der er en del tastefejl i min indlæg, har lige fået nyt tastatur, tasterne sider ikke helt ens :) Men tjekker lige igen...
Jeg ved godt det er træls at jeg spørger, men når du siger der ligger en numerisk værdi i session("userid") er det så fordi du har prøvet at udskrive den eller er det fordi du er overbevist om at der burde ligge en numerisk værdi i den...? :)
Når der er ged med databasen så skyldes det i 9 ud af 10 tilfælde at SQL'en indeholdt noget andet end man troede. Derfor er det altid en god ide - i en debug situation - at udskrive SQL'en før at man forsøger at udføre den:
SQL = "SELECT * FROM workday WHERE workday_userid = " & Session("userid") & " AND workday_open = true" Respons.Write "DEBUG: " . $SQL . "<br>" workdayopencontrol.open SQL, main
nielle >> det er også det jeg har spottet og det eneste sted der bliver indsat noget variabelt er session("userid") - det er derfor jeg starter med at angribe den :)
<!--#include file="includes/design_start.asp"--> <% set workdayopencontrol = Server.CreateObject("adodb.recordset")
SQL = "SELECT * FROM workday WHERE workday_userid = " & Session("userid") & " AND workday_open = true" Response.Write "DEBUG: " & SQL & "<br>" workdayopencontrol.open SQL, main ' workdayopencontrol.open "Select * from workday where workday_userid = " & Session("userid") & " AND workday_open = sand", main
If NOT (workdayopencontrol.EOF or workdayopencontrol.BOF) Then Response.Write "Du har en arbejdag åben, luk denne for at oprette en ny.<br>" Response.Write "Arbejdsdag der skal lukkes: <a href=closeworkday.asp?id=" & workdayopencontrol.Fields("workday_id") & ">" & workdayopencontrol.Fields("workday_date") & "</a>"
Else %> Opret ny arbejdsdag<br><br>
<form action=includes/exec/newday.asp method=post ID="Form1"> Dato for ny arbejdsdag: <input type=text class=form name=newdaydate value=<%= date %> size=10> <input type=submit value=opret class=form> </form> <% End if
%>
<!--#include file="includes/design_end.asp"-->
og stadig samme fejl. burde den i det mindste ikke skrive sql'en ud før den skriver fejlen?
jeps, det er også værdsat :) Jeg kan ikke umidbart se nogen fejl på den SQL kode, der kommer ud af den debug... men det kan da godt være det bare er mig *G*
Jeg under mig ... hvis den ikke udskriver SQL'en før fejlbeskeden ... ja, så må det jo være et helt andet sted den fejler. Det ville da forresten også forklare at vi ikke kan finden nogen fejl i præcis denne her SELECT. Hvad har du ellers af SQL-sætninger?
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.