webForumDet fria alternativet

Funkar med datatypen Text men inte Räknare?

ASP

2 svar · 289 visningar · startad av HasseSvens

Medlem sedan mars 20063 inlägg
Frågan#1

Hej, har en funktion i 3 steg för att redigera data i en Access-bas. I steg 1 loopas samtliga poster ut och man klickar på ex datumet.

\<td \<A HREF=redigera_steg_2.asp?ref=\<%= rs("ID")%\>\>\<%= rs("ID")%\>\</A\>\</td\>

Kommer då till steg 2 där man kan uppdatera den valda postens innehåll. I steg 3 uppdateras databasen. Detta funkar när man i steg ett länkar till en datatyp som är Text, men föröker jag länka till datatypen Räknare (vilken är den enda unika posten i basen) för jag följande felmeddelande i steg 2:

/Microsoft OLE DB Provider for ODBC Drivers error '80040e07'
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/isit_db/servicefonster/test/redigera_steg_2.asp, line 8/

Koden i steg 2 är följande:

<%
ref = Request.QueryString("ref")
Set db = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
db.open "DSN=servicefonster;UID=;PWD="
db.Execute("DELETE * FROM test WHERE datum_till < Date()-1")
SQL = "SELECT * FROM test WHERE ID = '" & ref & "'"
rs.open SQL, db
%>

Någon som vet varför den stupar om datatypen i dbn är Räknare?

Medlem sedan juni 200032 967 inlägg
#2

Ja, det är för att man inte ska ha apostrofer runt värden i SQL-frågor om fältet är av någon taltyp.

(Du saknar förresten en > för att avsluta din <td>-tagg.)

mvh

Medlem sedan mars 20063 inlägg
#3

Tänk vad en liten ' kan ställa till det...

Tack för hjälpen!

250 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)