17. januar 2002 - 15:36Der er
41 kommentarer og 1 løsning
Hvad betyder denne fejl?
Hvad betyder denne fejl?
Fejltype: Microsoft JET Database Engine (0x80004005) Søgenøglen blev ikke fundet i nogen poster
Det jeg prøver på er at gemme en bunke html kode i en acces database, det kan jeg godt gøre en gang men hvis jeg vil opdatere koden online selvfølgelig, får jeg denne fejl...
Her er koden ------------------------------------------------ <!--#include file =\"include/common.asp\"--> <html> <head> <title>Test</title> <style> BODY { FONT-FAMILY: Verdana;FONT-SIZE: xx-small; } TABLE { FONT-SIZE: xx-small; FONT-FAMILY: Tahoma } </style> </head> <% dim intDocumentID dim strTitle dim strContent dim adoCn dim strSQL set adoCn = Server.CreateObject(\"ADODB.Connection\") adoCn.Open strConn if Request.QueryString(\"action\") = \"save\" then strTemplate = Request.Form(\"txtContent\") strSQL = \"Update tblTemplate set Template=\'\" & replace(strTemplate,\"\'\",\"\'\'\") & \"\' where id=1\"\'kun en skabelon adoCn.Execute strSQL else dim adoRs set adoRs = Server.CreateObject(\"ADODB.Recordset\") strSQL = \"Select * From tblTemplate where id=1\" \'kun en skabelon set adoRs = adoCn.Execute(strSQL) If not adoRs.EOF then strTemplate = adoRs(\"Template\") End If adoRs.Close set adoRs = nothing end if adoCn.Close set adoCn = nothing %> <body link=Blue vlink=MediumSlateBlue alink=MediumSlateBlue> <table border=0 cellpadding=0 cellspacing=0 width=90% align=center> <tr> <td valign=top align=center> <b>Rediger skabelon</b> </td> </tr> <tr> <td height=20></td> </tr> <tr> <td valign=top><a href=\"default.asp?cat=<%=request(\"cat\")%>\">Tilbage til dokument oversigten</a> </td> </tr> </table>
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80004005) [Microsoft][ODBC Microsoft Access-driver] Søgenøglen blev ikke fundet i nogen poster.
Prøv at rykke kommentaren ned og udskrive SQL\'en: strSQL = \"Update tblTemplate set Template=\'\" & replace(strTemplate,\"\'\",\"\'\'\") & \"\' where id=1\" \'kun en skabelon Response.Write strSQl Response.End
Hvad udskriver den så?!? Jeg er tror måske at din replace fucker op i det...
For mig at se er der noget galt hvor du danner dine databaseobjecter. Du opretter 2 objekter, et inde i din else og en uden for. Jeg tror du bruger det forkerte object inde i din else.
prøv det her istedet:
set adoCn = Server.CreateObject(\"ADODB.Connection\") adoCn.Open strConn dim adoRs set adoRs = Server.CreateObject(\"ADODB.Recordset\")
if Request.QueryString(\"action\") = \"save\" then strTemplate = Request.Form(\"txtContent\") strSQL = \"Update tblTemplate set Template=\'\" & replace(strTemplate,\"\'\",\"\'\'\") & \"\' where id=1\"\'kun en skabelon adoCn.Execute strSQL else strSQL = \"Select * From tblTemplate where id=1\" \'kun en skabelon set adoRs = adoCn.Execute(strSQL) If not adoRs.EOF then strTemplate = adoRs(\"Template\") End If adoRs.Close set adoRs = nothing end if adoCn.Close set adoCn = nothing
variabel strSQL, den du skriver UPDATE table SET osv. i! Jeg tror der er en fejl i den. Derfor skal du skrive Response.Write strSQL \'Udskriver variablen! Response.End \'Stopper scriptet!
Hvis du så prøver at gemme vil den bare skrive: Update tblTemplate set ..... Og i det kan vi se om der er en fejl... Det som den udskriver, skal du skrive her. Så kan vi se om der er en fejl i det.....! Forstår du nu??
Måske er jeg med: ------------------------------------------- Nå jeg trykker save kommer siden frem med denne kode. -------------------------------------------
Den form hvor der bliverskrevet i der peger hen på denne fil vi arbejder med, i den fil skal <FORM ACTION=\"\" skal der være ?action=save på.... Forstår du nu!??
Det står da ogsp: -------------------------------- <form method=\"post\" action=\"admin_TemplateEdit.asp?action=save&cat=<%=request(\"cat\")%>\" name=\"SaveForm\" ID=Form1>
Prøv med den her: -----------------START------------------------------ <!--#include file =\"include/common.asp\"--> <html> <head> <title>Test</title> <style> BODY { FONT-FAMILY: Verdana;FONT-SIZE: xx-small; } TABLE { FONT-SIZE: xx-small; FONT-FAMILY: Tahoma } </style> </head> <% dim intDocumentID dim strTitle dim strContent dim adoCn dim strSQL set adoCn = Server.CreateObject(\"ADODB.Connection\") adoCn.Open strConn if Request.QueryString(\"action\") = \"save\" then strTemplate = Request.Form(\"txtContent\") str_somereplace = replace(strTemplate,\"\'\",\"\'\'\") strSQL = \"UPDATE tblTemplate SET Template = \'\" & str_somereplace & \"\' where (id = 1)\" \'kun en skabelon \' Response.Write strSQL \' Response.End adoCn.Execute strSQL else dim adoRs set adoRs = Server.CreateObject(\"ADODB.Recordset\") strSQL = \"SELECT * FROM tblTemplate WHERE (id = 1)\" \'kun en skabelon set adoRs = adoCn.Execute(strSQL) If not adoRs.EOF then strTemplate = adoRs(\"Template\") End If adoRs.Close set adoRs = nothing end if adoCn.Close set adoCn = nothing %> <body link=Blue vlink=MediumSlateBlue alink=MediumSlateBlue> <table border=0 cellpadding=0 cellspacing=0 width=90% align=center> <tr> <td valign=top align=center> <b>Rediger skabelon</b> </td> </tr> <tr> <td height=20></td> </tr> <tr> <td valign=top><a href=\"default.asp?cat=<%=request(\"cat\")%>\">Tilbage til dokument oversigten</a> </td> </tr> </table>
Jeg ved altså ikke rigtig hvad der galt... Hvorfor laver du en replace(strTemplate,\"\'\",\"\'\'\") Prøv at lave en ny database med de samme felter og kun en post... Det kan godt være databasen der fucker up!
Det gør jeg heller ikke.... den er rimelig simpel.... Prøv at fjerne den linie hvor der står: strsomereplace = replace(strTemplate,\"\'\",\"\'\'\") Og skriv denne istedet: strsomereplace = strTemplate
Undskyld jeg blander mig - men ellers ser det ud til at i kan blive ved længe. Jeg kopierede den oprindelige kode og med to ændringer kørte det upåklageligt.
For at tage udgangspunkt i den oprindelige fejl:
Microsoft JET Database Engine (0x80004005) Søgenøglen blev ikke fundet i nogen poster
Den fejl fremkommer \"måske\" fordi der aldrig bliver oprettet en post i databasen. Det er også som fejlen siger. Man kan ikke opdatere en post der ikke findes. (id=1)
DB-Koden skal derfor ændres til nedenstående:
dim adoCn dim strSQL dim adoRs set adoCn = Server.CreateObject(\"ADODB.Connection\") adoCn.Open strConn set adoRs = Server.CreateObject(\"ADODB.Recordset\") strSQL = \"Select ID From tblTemplate where id=1\" set adoRs = adoCn.Execute(strSQL) if Request.QueryString(\"action\") = \"save\" then strTemplate = replace(Request.Form(\"txtContent\"),\"\'\",\"\'\'\") if adoRs.EOF then strSQL = \"insert into tblTemplate (Template) values (\'\" & strTemplate & \"\');\" else strSQL = \"Update tblTemplate set Template=\'\" & strTemplate & \"\' where id=1\"\'kun en skabelon end if adoCn.Execute strSQL else strSQL = \"Select * From tblTemplate where id=1\" \'kun en skabelon set adoRs = adoCn.Execute(strSQL) If not adoRs.EOF then strTemplate = adoRs(\"Template\") End If set adoRs = nothing end if adoCn.Close set adoCn = nothing
Den anden fejl er at der mangler apostroffer omkring (txtContent) i html-koden. (Hvis ikke vil html-koden ikke blive gemt i databasen.)
Fejlen ligger i at notat feltet i Accesdatabasen ikke kan opdateres hvis der er over 1800 tegn...Bugger
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.