Avatar billede webbe Nybegynder
20. december 2000 - 12:30 Der er 35 kommentarer og
1 løsning

Object variabel not set!

Jeg får følgende fejl på en update statement, men kan ikke se hvorfor og hvilken variabel der ikke skulle være defineret....nogen der kan hjælpe?? (netsrac)


Microsoft VBScript runtime error \'800a005b\'

Object variable not set

/Bagkat-musik/update.asp, line 216


Min linie 216 ser sådan ud:

sql = \"UPDATE Bagkatalog SET (Bestnr=\'\"&Upload.Form(\"bestnr\")&\"\', Kunstner=\'\"&Upload.Form(\"kunstner\")&\"\', Titel=\'\"&Upload.Form(\"titel\")&\"\', Releasedato=\'\"&Upload.Form(\"releasedato\")&\"\', Format=\'\"&Upload.Form(\"Format\")&\"\', Salgstekst=\'\"&Upload.Form(\"salgstekst\")&\"\', Broedtekst=\'\"&Upload.Form(\"broedtekst\")&\"\', Trackliste=\'\"&Upload.Form(\"trackliste\")&\"\', Link=\'\"&Upload.Form(\"link\")&\"\', Coverbillede=\'\"&Upload.Files(\"cover\")&\"\', Lydklip1=\'\"&Upload.Files(\"lyd1\")&\"\', Tekst1=\'\"&Upload.Form(\"tekst1\")&\"\', Forfatter1=\'\"&Upload.Form(\"forfatter1\")&\"\', Lydklip2=\'\"&Upload.Files(\"lyd2\")&\"\', Tekst2=\'\"&Upload.Form(\"tekst2\")&\"\', Forfatter2=\'\"&Upload.Form(\"forfatter2\")&\"\', Lydklip3=\'\"&Upload.Files(\"lyd3\")&\"\', Tekst3=\'\"&Upload.Form(\"tekst3\")&\"\', Forfatter3=\'\"&Upload.Form(\"forfatter3\")&\"\', Lydklip4=\'\"&Upload.Files(\"lyd4\")&\"\', Tekst4=\'\"&Upload.Form(\"tekst4\")&\"\', Forfatter4=\'\"&Upload.Form(\"forfatter4\")&\"\', Lydklip5=\'\"&Upload.Files(\"lyd5\")&\"\', Tekst5=\'\"&Upload.Form(\"tekst5\")&\"\', Forfatter5=\'\"&Upload.Form(\"forfatter5\")&\"\') WHERE Bestnr = \'\"&Request.QueryString(\"bestnr\")&\"\'\"
Avatar billede netsrac Praktikant
20. december 2000 - 12:36 #1
Ja se er du sikker på der er noget i alle dine variabler ?
Avatar billede lp Nybegynder
20. december 2000 - 12:36 #2
du kan godt fjerne parenteserne omkring dine set altså......:
set ( Best....
skal være:
set Best.....

desuden skal du fjerne \' (single-quotes) omkring din where statement hvis det felt som hedder Bestnr. er en integer....altså et tal felt!
Avatar billede netsrac Praktikant
20. december 2000 - 12:37 #3
Eller er det fordi du har glemt at sætte upload
Avatar billede webbe Nybegynder
20. december 2000 - 13:02 #4
Min upload er sat....i får lige hele min update case!

Case \"saveedit\"

dim Upload, cover, lyd1, lyd2, lyd3, lyd4, lyd5, Bestnr, Kunstner, Titel, Releasedato, Format, Salgstekst, Broedtekst, Link, Trackliste, Coverbillede, Lydklip1, Tekst1, Forfatter1, Lydklip2, Tekst2, Forfatter2, Lydklip3, Tekst3, Forfatter3, Lydklip4, Tekst4, Forfatter4, Lydklip5, Tekst5, Forfatter5

Set Upload = Server.CreateObject(\"Persits.Upload.1\")
    Upload.overwritefiles = false
    Upload.Save Server.Mappath(\"./Filer\") & \"\\\"

Set Connect = Server.CreateObject(\"ADODB.Connection\")
Connect.Open \"bagkat_musik\"

\'definerer navne for at undgå replace statements i insert
Bestnr = Upload.Form(\"bestnr\")
Kunstner = Upload.Form(\"kunstner\")
Titel = Upload.Form(\"titel\")
Releasedato = Upload.Form(\"releasedato\")
Format = Upload.Form(\"format\")
Salgstekst = Upload.Form(\"salgstekst\")
Broedtekst = Upload.Form(\"broedtekst\")
Link = Upload.Form(\"link\")
Trackliste = Upload.Form(\"trackliste\")
Coverbillede = Upload.Form(\"coverbillede\")
Lydklip1 = Upload.Form(\"lydklip1\")
Tekst1 = Upload.Form(\"tekst1\")
Forfatter1 = Upload.Form(\"forfatter1\")
Lydklip2 = Upload.Form(\"lydklip1\")
Tekst2 = Upload.Form(\"tekst2\")
Forfatter2 = Upload.Form(\"forfatter2\")
Lydklip3 = Upload.Form(\"lydklip3\")
Tekst3 = Upload.Form(\"tekst3\")
Forfatter3 = Upload.Form(\"forfatter3\")
Lydklip4 = Upload.Form(\"lydklip4\")
Tekst4 = Upload.Form(\"tekst4\")
Forfatter4 = Upload.Form(\"forfatter4\")
Lydklip5 = Upload.Form(\"lydklip5\")
Tekst5 = Upload.Form(\"tekst5\")
Forfatter5 = Upload.Form(\"forfatter5\")

Set coverbillede = Upload.Files(\"coverbillede\")
    if coverbillede is nothing Then
        cover = \"\"
    else
        cover = coverbillede.ExtractFileName
    end if

Set lydklip1 = Upload.Files(\"lydklip1\")
    if lydklip1 is nothing Then
        lyd1 = \"\"
    else
        lyd1 = lydklip1.ExtractFileName
    end if

Set lydklip2 = Upload.Files(\"lydklip2\")
    if lydklip2 is nothing Then
        lyd2 = \"\"
    else
        lyd2 = lydklip2.ExtractFileName
    end if

Set lydklip3 = Upload.Files(\"lydklip3\")
    if lydklip3 is nothing Then
        lyd3 = \"\"
    else
        lyd3 = lydklip3.ExtractFileName
    end if

Set lydklip4 = Upload.Files(\"lydklip4\")
    if lydklip4 is nothing Then
        lyd4 = \"\"
    else
        lyd4 = lydklip4.ExtractFileName
    end if

Set lydklip5 = Upload.Files(\"lydklip5\")
    if lydklip5 is nothing Then
        lyd5 = \"\"
    else
        lyd5 = lydklip5.ExtractFileName
    end if

sql = \"UPDATE Bagkatalog SET Bestnr=\'\"&Upload.Form(\"bestnr\")&\"\', Kunstner=\'\"&Upload.Form(\"kunstner\")&\"\', Titel=\'\"&Upload.Form(\"titel\")&\"\', Releasedato=\'\"&Upload.Form(\"releasedato\")&\"\', Format=\'\"&Upload.Form(\"Format\")&\"\', Salgstekst=\'\"&Upload.Form(\"salgstekst\")&\"\', Broedtekst=\'\"&Upload.Form(\"broedtekst\")&\"\', Trackliste=\'\"&Upload.Form(\"trackliste\")&\"\', Link=\'\"&Upload.Form(\"link\")&\"\', Coverbillede=\'\"&Upload.Files(\"cover\")&\"\', Lydklip1=\'\"&Upload.Files(\"lyd1\")&\"\', Tekst1=\'\"&Upload.Form(\"tekst1\")&\"\', Forfatter1=\'\"&Upload.Form(\"forfatter1\")&\"\', Lydklip2=\'\"&Upload.Files(\"lyd2\")&\"\', Tekst2=\'\"&Upload.Form(\"tekst2\")&\"\', Forfatter2=\'\"&Upload.Form(\"forfatter2\")&\"\', Lydklip3=\'\"&Upload.Files(\"lyd3\")&\"\', Tekst3=\'\"&Upload.Form(\"tekst3\")&\"\', Forfatter3=\'\"&Upload.Form(\"forfatter3\")&\"\', Lydklip4=\'\"&Upload.Files(\"lyd4\")&\"\', Tekst4=\'\"&Upload.Form(\"tekst4\")&\"\', Forfatter4=\'\"&Upload.Form(\"forfatter4\")&\"\', Lydklip5=\'\"&Upload.Files(\"lyd5\")&\"\', Tekst5=\'\"&Upload.Form(\"tekst5\")&\"\', Forfatter5=\'\"&Upload.Form(\"forfatter5\")&\"\' WHERE Bestnr = \'\"&Request.QueryString(\"bestnr\")&\"\'\"
Connect.Execute(sql)

Set Upload = Nothing
Connect.close
Set Connect = Nothing

Response.Redirect(\"list.asp\")

End Select
Avatar billede netsrac Praktikant
20. december 2000 - 13:06 #5
Felterne hvpr du smider cover billeder ind i er de sat til at må være nul ??

Det er iøvrigt nok heller ikke nogen god ide at sætte bestnr og bruge det samme til WHERE sætningen
Avatar billede webbe Nybegynder
20. december 2000 - 13:13 #6
netsrac!

Alle mine felter i tabellen er sat til at måtte være null, så det skulle ikke være det.

Hvad mener du med at sætte bestnr??
Avatar billede lp Nybegynder
20. december 2000 - 13:15 #7
<snip>
Det er iøvrigt nok heller ikke nogen god ide at sætte bestnr og bruge det samme til WHERE sætningen
</snip>
netsrac, det skulle ikke betyde noget........hvis alle felter skal opdateres, skal man jo have en statement så man kan finde den rigtige record.....

webbe -> jeg tror ikke umiddelbart jeg kan hjælpe dig....det ser lidt kompliceret ud, og det kan man ikke sådan lige løse ved at få et dokument pastet ind på en webside....det kunne dog hjælpe hvis du postede hele koden fra den side som man uploader fra, og desuden prøver at
Response.Write sql
lige under din statement, således kan vi finde ud af hvad der kommer med videre.....

prøv også at fjerne dine dim......det kan køre uden og de kan give fejl, hvis du øverst i dokumentet kræver at alle variabler bliver sat....det kan altid tilføjes igen når vi er færdige med at debugge......altså udkommentér dine dim\'s......
Avatar billede netsrac Praktikant
20. december 2000 - 13:17 #8
Du siger
SET Bestnr=\'\"&Upload.Form(\"bestnr\")&\"\'
og
WHERE Bestnr = \'\"&Request.QueryString(\"bestnr\")&\"\'\"

Iøvrigt er bestnr vel et tal ikke ? Hvis ja så skal det være

sql = \"UPDATE Bagkatalog SET Kunstner=\'\"&Upload.Form(\"kunstner\")&\"\', Titel=\'\"&Upload.Form(\"titel\")&\"\', Releasedato=\'\"&Upload.Form(\"releasedato\")&\"\', Format=\'\"&Upload.Form(\"Format\")&\"\', Salgstekst=\'\"&Upload.Form(\"salgstekst\")&\"\', Broedtekst=\'\"&Upload.Form(\"broedtekst\")&\"\', Trackliste=\'\"&Upload.Form(\"trackliste\")&\"\', Link=\'\"&Upload.Form(\"link\")&\"\', Coverbillede=\'\"&Upload.Files(\"cover\")&\"\', Lydklip1=\'\"&Upload.Files(\"lyd1\")&\"\', Tekst1=\'\"&Upload.Form(\"tekst1\")&\"\', Forfatter1=\'\"&Upload.Form(\"forfatter1\")&\"\', Lydklip2=\'\"&Upload.Files(\"lyd2\")&\"\', Tekst2=\'\"&Upload.Form(\"tekst2\")&\"\', Forfatter2=\'\"&Upload.Form(\"forfatter2\")&\"\', Lydklip3=\'\"&Upload.Files(\"lyd3\")&\"\', Tekst3=\'\"&Upload.Form(\"tekst3\")&\"\', Forfatter3=\'\"&Upload.Form(\"forfatter3\")&\"\', Lydklip4=\'\"&Upload.Files(\"lyd4\")&\"\', Tekst4=\'\"&Upload.Form(\"tekst4\")&\"\', Forfatter4=\'\"&Upload.Form(\"forfatter4\")&\"\', Lydklip5=\'\"&Upload.Files(\"lyd5\")&\"\', Tekst5=\'\"&Upload.Form(\"tekst5\")&\"\', Forfatter5=\'\"&Upload.Form(\"forfatter5\")&\"\' WHERE Bestnr = \"&Request.QueryString(\"bestnr\")
Connect.Execute(sql)



Avatar billede lp Nybegynder
20. december 2000 - 13:18 #9
altså ved at deklarere en dim får du blot sat varibeltypen og allokeret noget storage space på disken......til gengæld risikerer du fejl hvis en varibal ikke er deklareret....hjælp mig, hvad er det nu det hedder det man skriver i toppen, som også skal fjernes??
Avatar billede lp Nybegynder
20. december 2000 - 13:19 #10
yep, der er noget der lugter her.....og det er ikke brændt gran eller julegløgg.....jeg tror vi vil lære en del ved at du udskriver din sql som jeg beskrev og poster den her.....
Avatar billede netsrac Praktikant
20. december 2000 - 13:20 #11
lp >> Alle variabler i dim sætningen bliver defineret så vidt jeg kan se.
Avatar billede webbe Nybegynder
20. december 2000 - 13:20 #12
lp!

Hvis jeg udkommenterer mine dims, så får jeg denne fejl:

Microsoft VBScript runtime error \'800a01f4\'

Variable is undefined: \'Connect\'

/Bagkat-musik/update.asp, line 144

Den fik jeg også i starten, da jeg helst bruger variabler uden DIM.
Avatar billede lp Nybegynder
20. december 2000 - 13:21 #13
en hel anden ting er at din database ser ud til at være lavet meget lidt optimalt.....ved at deklarere Forfatter1, Forfatter2 etc.....der skulle være en selvstændig tabel med alle forfattere i, men det er en helt anden snak, som kan tage lang tid at få forståelsen af, nu ved det det :-)
Avatar billede webbe Nybegynder
20. december 2000 - 13:23 #14
lp!

Nej - forfatterne skal stå i samme tabel som alle de andre informationer.

Forfatter er et textfield, hvor administratoren (det er til et admi-interface) kan intaste den forfatter der er til de enkelte musiknumre!
Avatar billede lp Nybegynder
20. december 2000 - 13:24 #15
netsrac -> ja ok, så drop det....gå et skridt tilbage og prøv at prøve de andre forslag, som jeg skrev....

jeg har et møde nu her, så jeg er nød til at smutte.....
Avatar billede webbe Nybegynder
20. december 2000 - 13:24 #16
netsrac!

Nej - bestnr skal sættes, da der skal være mulighed for at ændre dette!
Avatar billede netsrac Praktikant
20. december 2000 - 13:25 #17
Hm...og bestnr er af typen hvad ?
Avatar billede webbe Nybegynder
20. december 2000 - 13:26 #18
netsrac!

Det er et almindeligt tekstfelt!
Avatar billede lp Nybegynder
20. december 2000 - 13:27 #19
ja det jeg godt klar over min ven, men den mest optimale måde at gøre det på er ved at skille det ud....lad mig komme med et par hypotetiske forestillinger om situationer:

hvad nu hvis der er 7 forfattere, hvad gør du så? ved at skille ad kan der være 100.000 forfattere......

hvad nu hvis 99% af alle musiknumre i basen kun har 2 forfattere, er det så ikke lidt spildplads at du har 3 felter der er tomme så mange steder? selvom feltet er tomt optager det fortsat plads og plads er tid........

du vil forstå mig en dag hvis du fortsætter med at udvikle og tilfældigvis får åbnet en databasebog en dag :-)
Avatar billede netsrac Praktikant
20. december 2000 - 13:28 #20
Har du ikke en aotunummerering som kan bruges i where sætningen istedet ?
Avatar billede netsrac Praktikant
20. december 2000 - 13:30 #21
Eller måske det er fordi en af de variabler du prøver at update med indeholder tegnet \'
Avatar billede webbe Nybegynder
20. december 2000 - 13:31 #22
netsrac!

Der er lige en ting du skal forstå ved dette projekt!

For hvert lydklip der er, er der en titel på den sang lydklippet er fra og en forfatter til den sang.
Der er mulighed for upload af 5 lydklip og derfor 5 titler og 5 forfattere.

Derfor vil spørgsmålet om 7 forfattere aldrig opstå. Forfatter1-5 er derfor bare udtryk for feltnavne og navne på text-felterne i min formular og har ikke noget at gøre med et antal af forfattere.

Med hensyn til spildplads....tjah....sån\' er det jo når man skal have mulighed for et bestemt antal, men ikke nødvendigvis skal udfylde det hele! ;o)
Avatar billede lp Nybegynder
20. december 2000 - 13:33 #23
du vil forstå mig en dag.......tro mig :-)
Avatar billede webbe Nybegynder
20. december 2000 - 13:33 #24
Nej - bestnr er min nøgle og unikke felt....der er ikke 2 poster der må have det samme bestnr.

Og nej.....der er ikke nogen af mine variable der indeholder tegnet \'
Avatar billede netsrac Praktikant
20. december 2000 - 13:34 #25
webbe >> Ehm jeg er ikke den eneste der svarer på dette spørgsmål, den kommentar var vel til lp ik ?
Avatar billede netsrac Praktikant
20. december 2000 - 13:35 #26
Du kan ikke opdatere din unikke nøgle !!
Avatar billede webbe Nybegynder
20. december 2000 - 13:36 #27
netsrac!

Hovsa - sorry makker....havde ikke lige set det var lp - troede jo han var smuttet til møde!
Avatar billede webbe Nybegynder
20. december 2000 - 14:38 #28
Jeg er nu nået så langt som til at undgå fejlen, men nu opdaterer den bare ikke - min kode ser nu sådan ud:

sql = \"UPDATE Bagkatalog SET Kunstner=\'\"&replace(replace(Upload.Form(\"kunstner\"), \"\'\", \"¤#¤\"), \"\"\"\", \"¤##¤\")&\"\' WHERE Bestnr = \'\"&Request.QueryString(\"bestnr\")&\"\'\"
Avatar billede netsrac Praktikant
20. december 2000 - 14:43 #29
sql = \"UPDATE Bagkatalog SET Kunstner=\'\"&replace(replace(Upload.Form(\"kunstner\"), \"\'\", \"¤#¤\"), \"\"\"\", \"¤##¤\")&\"\' WHERE Bestnr = \"&Request.QueryString(\"bestnr\")
Avatar billede lp Nybegynder
20. december 2000 - 15:02 #30
og du executer selvfølgelig din update statement ikke?
Avatar billede webbe Nybegynder
20. december 2000 - 15:07 #31
lp!

Jeps - bruger connect.execute(sql)
Avatar billede smiley2 Nybegynder
21. december 2000 - 06:24 #32
webbe jeg vil råde dig til at læse nogen database tutorials igennem ang opbygning af databaser. Du risikerer nemlig at du ikke kan bruge din database til noget sonm helst i den retning du bevæger dig. Ultra kort fortalt er det en god ide at bruge så mange tables som muligt´, for at sikre at man kan overskue/rette/opdatere databasen smertefrit.

Håber du kan bruge det til noget :o)
Avatar billede webbe Nybegynder
02. januar 2001 - 13:44 #33
Jeg har stadig problemer med min sql-sætning!

Jeg kører pt. test på opdatering af et enkelt felt nemlig feltet \"kunstner\".

Men der sker ikke noget når jeg trykker på \"Gem\" udover at jeg blir\' redirected til min oversigt over posterne. Der opdateres ikke noget!

Min sql-sætning ser ud som i indlægget ovenfor - altså:

sql = \"UPDATE Bagkatalog SET Kunstner=\'\"&replace(replace(Upload.Form(\"kunstner\"), \"\'\", \"¤#¤\"), \"\"\"\", \"¤##¤\")&\"\' WHERE Bestnr = \'\"&Request.QueryString(\"bestnr\")&\"\'\"

Please hjælp mig - den der kan komme med en løsning der virker vil få 100 point!
Avatar billede netsrac Praktikant
02. januar 2001 - 20:59 #34
bestnr er jo et tal felt ikke ?
Avatar billede webbe Nybegynder
03. januar 2001 - 08:14 #35
netsrac!

Jeg er nået så langt så jeg får følgende udskrevet i min response.write sql

UPDATE Bagkatalog SET Kunstner=\'rollover\' WHERE Bestnr=\'\'

Så et eller andet sted er der noget galt med mit bestnr!
Avatar billede webbe Nybegynder
03. januar 2001 - 15:01 #36
Jeg har nu selv fundet løsningen på problemet!

Problemet var i min <form> linie.

Min action skulle være:

<form method=\"\"POST\"\" action=\"\"update.asp?action=saveedit&bestnr=\"&Request.QueryString(\"bestnr\")&\"

Problemet var netop at asp\'en ikke kunne finde ud af hvilket Bestnr der var tale om!
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