23. marts 2003 - 21:11Der er
8 kommentarer og 2 løsninger
[] Problem med en del af scriptet til en input side
Hej på den anden side.
Håber der er nogen der har muligheden for at hjælpe med et lille problem. Sagen er den at jeg bruger en side til både at redigere i en DB, samt til at lægge ny data ind i den. Dette betyder at jeg kan komme til siden fra to steder:
ny-indtastning.asp eller redigere-indtastning.asp
Hvis jeg kommer fra ”redigere-indtastning.asp” følger der et ”id” med så man kan genkende informationen der skal redigeres, eller sagt med andre ord; hvilken data der skal hentes fra DB. Hvis jeg derimod kommer fra ”ny-indtastning.asp”, skal indtastningsfelterne være tomme, da der jo skal lægges ny data i DB, eller sagt med andre ord: der findes ikke noget ”id” i denne situation.
PROBLEMET: Der opstår en fejl når jeg kommer fra ”ny-indtastning.asp”, som ser ud som følgende:
Microsoft JET Database Engine (0x80040E14) Der er en ekstra højreparentes: ) i forespørgselsudtrykket "(id=)".
Koden ser ud som følgende:
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "Data Source=" & Server.mapPath("../db/db.mdb;Provider=Microsoft.Jet.OLEDB.4.0;")
sql = "SELECT dato , overskrift , tekst FROM nyheder WHERE (id=" & request("id") & ")" Set objRec = Conn.Execute(sql)
If objRec.EOF Then sql = "dato = null, overskrift = null, tekst = null" set objRec = Conn.Execute(sql) End If %>
Er der nogen der kan se, hvad jeg gør galt?
OBS Mine Value’s ser ud som følgende <%= objRec("dato") %>, hvis det skal have nogen betydning.
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Det kan ikke kun være: sql = "SELECT dato , overskrift , tekst FROM nyheder WHERE (id=" & request("id") & ")" der er noget galt med, den virker jo, hvis den kommer fra redigere siden?
Der må vel være noget i følgende sætning som er galt på den: If objRec.EOF Then sql = "dato = null, overskrift = null, tekst = null"
Din første sql er der ikke noget i vejen med, forudsat der står noget noget i request("id") - gør der ikke, må du ikke udføre sætningen. Derfor skal du have en if rundt om. Din anden sql er rent vrøvl, men det opdager du jo nok en dag ;)
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.