10. oktober 2004 - 14:24Der er
25 kommentarer og 1 løsning
Kan ikke updatere database korrekt
Hejsa
Er stødt på et nyt underligt problem! Jeg kan godt markere og kopire en hel tekst og sætte det ind i min database ved hjælp af asp. men hvis jeg vil updatere (dvs rette) i det felt igen via asp så gider den ikke. jeg bruger denne kode
SQLstringK="UPDATE tabel SET title='"&Request.QueryString("tekst")&"',
det virker godt hvis jeg sletter så meget af teksten så der næsten ikke er mere tilbage... i min database er feltet tekst af datatypen memo.
Jeg kan godt udskrive indholdet på skærmen... men hvis jeg ændre i det og trykke gem så reagere den ikke. Så bliver jeg nød til at slette det meste af teksten... forstår bare ikke hvorfor jeg så kan tilføje teksten i databasen men ikke rette i den... nogen ideer?
Du skriver, at feltet 'tekst' er et memo-felt, men du opdaterer jo teksten i feltet 'title'? Hvad sker der, hvis du lægger indholdet af din querystring i en variabel først?
Din kode giver ingen fejl, men siden reagere stadig ikke når man trykker update hvis der står for meget tekst i feltet. kan man gøre det på en anden måde?
Det giver bare ikke mening at jeg kan tilføje en tekst som er lang men ikke rette i den.. når jeg tilføjer en tekst bruger jeg Conn.Execute "INSERT INTO
Jeg overvejer om man ikke bare skal bruge den form jeg tilføjer tingene med igen men hvor man lige laver sine ændringer.. det gør selvfølgelig at man har to af det samme næsten men mon ikke man kan lave en automatisk delete på det gamle id så?
Har du prøvet at printe din SQL-sætning med en responsde.write og så køre den som en forespørgsel direkte i Access? Hvis du laver en ny forespørgsel i SQL-visning, så kan du designe din SQL-sætning og se, hvad der sker direkte i databasen.
Jeg er ikke så ekspert så er ikke helt med hehe... til dit andet forslag ovenover skal jeg så bruge enten den ene eller begge to? der hvor du skriver eller
Hvis du i begyndelsen af din kode sætter en variabel til at være lig med "new", og hvis brugeren vælger ar rette, ændrer du den til at være lig med "update". Noget i retning af (i pseudokode) i den fil, der indeholder formularen:
if RET then strVariabel = "update" else strVariabel = "new" end if
I din form-definiton skriver du så <form name='test' ... action='fil.asp?action=<%=strVariabel%>'>
Så får du overført via en querystring, om brugeren er ved at oprette en ny eller opdatere en eksisterende.
Så kan du overføre det, der skal skrives i databasen, via en formular, som du kan udlæse med request.form("variabel") på samme måde som du gjorde med request.querystring(""), men formen kan overføre flere data.
Men en idé var nok at begynde med at prøve at lave det samme SQL-statement direkte i Access, så du kan se, hvad der sker i Access, når du afvikler det.
Jeg vil gemme dine forslag i et dokument til senere... forløbig har jeg som løsning valgt en lidt primitiv en hehe... hvis man foretager nogen ændringer skal man lige trykke på et link som sletter det gamle data... og så bliver det så tilføjet på ny: ) bedre end ingenting
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.