Avatar billede mit_navn_er Nybegynder
30. september 2002 - 14:19 Der er 23 kommentarer

zero-length string

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Field 'kundestat.kundenr' cannot be a zero-length string.

/dk/engros/logintest.asp, line 57


Mit felt er ikke 'nul', derfor kan jeg ikke forstå fejlen!

Nogen der kan hjælpe?
Avatar billede jgp Nybegynder
30. september 2002 - 14:52 #1
Fejlen kommer typisk hvis du laver en INSERT INTO en table, hvor der er en colunne der ikke må være null. Prøv i din SQL at sætte 'kundestat.kundenr' til et eller andet.
Avatar billede spectual Nybegynder
30. september 2002 - 14:54 #2
Eller gå ind i din database og sæt allownulllength (eller lignende) til true for kundenr under tabellen kundestat.
Avatar billede mit_navn_er Nybegynder
30. september 2002 - 14:54 #3
Hvad mener du med, at sætte kundestat.kundenr til et eller andet?
Avatar billede mit_navn_er Nybegynder
30. september 2002 - 14:55 #4
Der skal ikke tillades en nullængde...
Avatar billede spectual Nybegynder
30. september 2002 - 14:56 #5
så må du udskrive din sql streng før den udføres og poste den her.
Avatar billede spectual Nybegynder
30. september 2002 - 14:56 #6
eller post noget script..
Avatar billede jgp Nybegynder
30. september 2002 - 14:57 #7
Så skal du i databasen tillade det, det gør du sådan her:
1. Gå i design view (regner med du snakker om en access DB)'
2. Vælg kundestat.kundenr feltet
3. Ændre Allow Zero Length sæt til Yes
Avatar billede jgp Nybegynder
30. september 2002 - 14:59 #8
Hmm, eller jeg misforstår dig...

hvis der ikke må være en nullængde i det felt, må du ikke indsætte en record i den table uden at sætte feltet til et eller andet.. ellers prøv at skrive SQL strengen den fejler på
Avatar billede spectual Nybegynder
30. september 2002 - 14:59 #9
jpg >> citat: "Der skal ikke tillades en nullængde..."
Avatar billede spectual Nybegynder
30. september 2002 - 15:00 #10
:)
Avatar billede spectual Nybegynder
30. september 2002 - 15:00 #11
vis os din ASP side...
Avatar billede jgp Nybegynder
30. september 2002 - 15:00 #12
JGP.numsefisk.dk :-)
Avatar billede mit_navn_er Nybegynder
30. september 2002 - 15:04 #13
<%
kundenr = request.form("kundenr")
password = request.form("password")

if lcase(kundenr) <> "gæst" then

set conn=server.createobject("adodb.connection")
cnpath="DBQ=" & server.mappath("/dataentry/webbutik.mdb")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath

set rstjek=server.CreateObject("ADODB.Recordset")
rstjek.open "SELECT * FROM kunder WHERE lcase(kundenr) ='"&lcase(kundenr)&"' AND lcase(password) = '"&lcase(password)&"'",conn,3
if rstjek.recordcount > 0 then

session("user") = kundenr
session("userid") = rstjek("id")

if rstjek("gruppe") <> "" then

if rstjek("gruppe") = "BUTIK2" then
session("gruppe") = "prisgruppe2"
end if

if rstjek("gruppe") = "BUTIK3" then
session("gruppe") = "prisgruppe3"
end if

else
session("gruppe") = "prisgruppe1"

end if

end if

conn.close

else

session("user") = "gæst"
session("userid") = ""
session("gruppe") = ""
end if

set conn=server.createobject("adodb.connection")
cnpath="DBQ=" & server.mappath("/dataentry/statistik.mdb")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " & cnpath

set rsstat=server.CreateObject("ADODB.Recordset")
rsstat.open "SELECT * FROM kundestat WHERE lcase(kundenr) ='"&lcase(session("user"))&"'",conn,3
if rsstat.recordcount < 1 then

SQLStmt = "INSERT INTO kundestat (kundenr,antallogin,antalkoeb,samletkoeb) "
SQLStmt = SQLStmt & "VALUES ('" & session("user") & "'"
SQLStmt = SQLStmt & ",'" & 1 & "'"
SQLStmt = SQLStmt & ",'" & 0 & "'"
SQLStmt = SQLStmt & ",'" & 0 & "')"
Set RS = Conn.Execute(SQLStmt)

else
antallogin = rsstat("antallogin") + 1

SQLStmt = "UPDATE kundestat SET antallogin='" & antallogin & "' where kundenr='" & session("user") &"'"
Set RS = Conn.Execute(SQLStmt)

end if

response.redirect "forside.asp"
%>

<% =session("user") %><BR>
<% =session("userid") %><BR>
<% =session("gruppe") %><BR>
Avatar billede jgp Nybegynder
30. september 2002 - 15:07 #14
Har du testet hvad der står i request.form("kundenr") ?

Ud over det, så er det meget nemt at hacke sig ind i det "sikkerheds" system der... Prøv at logge på med:
' OR 1=1
og password
' OR 1=1
Avatar billede spectual Nybegynder
30. september 2002 - 15:09 #15
Prøv at indsætte:

SQLStmt = "INSERT INTO kundestat (kundenr,antallogin,antalkoeb,samletkoeb) "
SQLStmt = SQLStmt & "VALUES ('" & session("user") & "'"
SQLStmt = SQLStmt & ",'" & 1 & "'"
SQLStmt = SQLStmt & ",'" & 0 & "'"
SQLStmt = SQLStmt & ",'" & 0 & "')"
response.write SQLStmt : response.end
Set RS = Conn.Execute(SQLStmt)
Avatar billede spectual Nybegynder
30. september 2002 - 15:10 #16
Det er vel fordi at din session er udløbet så session ("user") ikke længere indeholder noget.
Avatar billede jgp Nybegynder
30. september 2002 - 15:12 #17
Isteder for at flotte mig med hvordan man hacker, så kig her:
http://activedeveloper.dk/aspdigital/2002053001.asp
det er det værd at læse det igennem, hvis du vil beskytte din data med ASP :-)
Avatar billede spectual Nybegynder
30. september 2002 - 15:12 #18
SQLStmt = "INSERT INTO kundestat (kundenr,antallogin,antalkoeb,samletkoeb) "
SQLStmt = SQLStmt & "VALUES ('" & session("user") & "'"
SQLStmt = SQLStmt & ",'1'"
SQLStmt = SQLStmt & ",'0'"
SQLStmt = SQLStmt & ",'0')"
Avatar billede spectual Nybegynder
30. september 2002 - 15:14 #19
jgp >> hehe.. den må jeg da lige huske :)
Avatar billede happycow- Nybegynder
30. september 2002 - 16:49 #20
jeg kan godt lide du stiller et spørgsmål et sted. Og når du så ikke fatter de svar du får, så opretter du simpelthen en anden tråd.

Det er dårlig stil :-/
Avatar billede happycow- Nybegynder
30. september 2002 - 16:50 #21
*g* enhver med ASP viden burde kende den :D
Avatar billede mit_navn_er Nybegynder
01. oktober 2002 - 08:30 #22
Jeg har også fået, at vide at problemet kunne være at mine connections ikke er blevet lukket. Kunne det være problemet?
Avatar billede mit_navn_er Nybegynder
01. oktober 2002 - 10:27 #23
spectual -> dine koder giver følgende meddelelse i stedet for fejlmeddelelsen:

INSERT INTO kundestat (kundenr,antallogin,antalkoeb,samletkoeb) VALUES ('','1','0','0')
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester