08. juni 2002 - 12:54Der er
16 kommentarer og 2 løsninger
Hvordan requester jeg ID?
Jeg har lavet sådan et lille system, hvor man kan uploade billeder. Det foregår i flere trin, først uploader man et thumbnail, så bliver man sendt til den næste side, hvor man uploader selve billeder, så bliver man sendt til den sidste side, hvor man skal skrive en billedbeskrivelse. Det virker egentlig fint nok, billederne bliver uploadet og billedet bliver også tilføjet i databasen, men IKKE billedbeskrivelsen. Jeg skal på en eller anden måde have fortalt den, at den skal tilføje billedbeskrivelsen til WHERE ID = ???
Der er jo sådan set allerede én... I dokumentet forinden dette har jeg lige tilføjet filens navn til databasen, og det virker fint: <% 'Databaseforbindelse oprettes Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("../../database/galleri.mdb") Conn.Open DSN
'Luk databaseforbindelse Conn.Close Set Conn = Nothing
%>
Men jeg kan ikke lige helt gennemskue, hvordan jeg i det næste trin får "fortalt" dokumentet, at tekst-beskrivelsen til tilføjes til det billede, jeg lige har uploadet.
Nej, ikke helt. Selve filnavnet, som skal tilføjes databasen henter den selv fra mit uploadscript, hvor "image" i databasen hedder det, som filen hedder... Øhm, jeg ved ikke lige, hvordan jeg skal forklare det... Men altså filnavnet skal jeg ikke tilføje manuelt, kun beskrivelsen.
Ok, nu har jeg prøvet at ændre lidt i det... Nu navngiver den rigtignok filen rigtigt. Og den tilføjer beskrivelsen korrekt. Men den tror, at det er to forskellige sager, den har med at gøre, så den opretter en sag, hvor billedet er navngivet korrekt, men hvor der ingen beskrivelse er. Og så opretter den en ny sag, hvor billedet ikke er navngivet (og derfor ikke vises)....
du ku prøve at sende id'et med til næste side, via. en side.asp?id=5, og så requeste den igen, hvor du så siger at den skal skrive i det recodeset som passer til id'et...
Ja, jeg har prøvet, men havde problemer med syntaksen... Jeg kan ikke rigtig finde ud af, hvordan jeg skal "få fat" i ID'en, når jeg fortsætter til det næste dokument.
Ja, bortset fra, at jeg får følgende fejlmeddelse:
Request object error 'ASP 0208 : 80004005' Cannot use generic Request collection /ny/admin/oegler/upload.asp, line 105 Cannot use the generic Request collection after calling BinaryRead.
'Add content-type to dictionary object ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg)) UploadControl.Add "ContentType",ContentType
'Get content of object PosBeg = PosEnd+4 PosEnd = InstrB(PosBeg,RequestBin,boundary)-2 Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg) Else
'Get content of object Pos = InstrB(Pos,RequestBin,getByteString(chr(13))) PosBeg = Pos+4 PosEnd = InstrB(PosBeg,RequestBin,boundary)-2 Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg)) End If
'Add content to dictionary object UploadControl.Add "Value" , Value
'Add dictionary object to main dictionary UploadRequest.Add name, UploadControl
'Loop to next object BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary) Loop
End Sub
'String to byte string conversion Function getByteString(StringStr) For i = 1 to Len(StringStr) char = Mid(StringStr,i,1) getByteString = getByteString & chrB(AscB(char)) Next End Function
'Byte string to string conversion Function getString(StringBin) getString ="" For intCount = 1 to LenB(StringBin) getString = getString & chr(AscB(MidB(StringBin,intCount,1))) Next End Function
Da du bruger en Access database, kan du ikke direkte hente værdien af sidste autonummer som du kan med eks. både SQL Server og MySQL. Men der findes en metode som er beskrevet her:
Kort fortalt går den ud på, at du skal ændre den måde du indsætter i databasen på. Selv om SQL også er det jeg foretrækker, er det i dette tilfælde nødvendigt at bruge RS.AddNew frem for INSERT INTO.... Efter du har sat værdierne på de enkelte felter, laver du en RS.Update og dit autonummer felt's værdi kan nu aflæses direkte.
Nej, jeg fik ikke tid til kigge på det pga. afleveringsfrist i projektet. Men I skal have tak for at komme med forslag til en løsning, synes umiddelbart at Rs.Addnew lyder meget fornuftigt.
Synes godt om
Ny brugerNybegynder
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.