webForumDet fria alternativet

MySQL/ASP Delete

5 svar · 593 visningar · startad av Agneus

AgneusMedlem sedan dec. 200346 inlägg
#1

Har byggt om en Accesslösning till MySQL.

Lägg till post, redigera post, sortera/lista poster funkar.
Men att radera en post funkar inte. Jag skickar ett id-nummer till filen radera.asp som genererar det här felmeddelandet:

Microsoft VBScript runtime error '800a01a8'
Object required: ''
radera.asp, line 15

Vad kan vara fel/saknas?

<html>

<!-- #include File="adovbs.inc" -->

<!-- #Include File="DBkoppling.inc" -->

<%	

	 'Set Connect = Server.CreateObject("ADODB.Connection")
	 'Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & server.mappath("db_Access.mdb") 
	 'Set RecSet = Server.CreateObject("ADODB.Recordset")
	
	
	Radera = "SELECT * FROM tabellen WHERE id = " & Request.QueryString("id") & " "

	RecSet.Open Radera, Connect, adOpenStatic, adLockOptimistic 

	RecSet.Delete

	RecSet.Close
	Connect.Close
	
Response.Redirect("form_ny.asp")

%>

</html>
voigtann1Medlem sedan juni 20018 810 inlägg
#2

Du har inte skapat ett Recordset ser det ut som.

@ndersMedlem sedan juni 200026 914 inlägg
#3

Hela det där kodschabraket kan du ersätta med följande:

<!-- #Include File="DBkoppling.inc" -->
<%	

	Radera = "DELETE FROM tabellen WHERE id = " & CLng(Request.QueryString("id"))
	Connect.Execute Radera,,128
	Connect.Close
	Set Connect = Nothing
	
Response.Redirect("form_ny.asp")

%>

Clng har jag lagt runt din request för att se till att ID är ett heltal. Försöker man skicka in annat kraschar koden. Man måste alltid tänka "sql injection".

Jag utgår ifrån att objektet Connect skapas i DBkoppling.inc - så ser det iaf ut på din originalkod.

[edit]: Eventuellt får du ta bort ,,128 från execute-anropet - jag vet inte om mysql (rättare sagt myodbc) hanterar detta.

Mvh

@ndersMedlem sedan juni 200026 914 inlägg
#4

I övrigt: om du har en includefil med ändelsen .inc - se till att IIS:en exekverar den filändelsen som en asp-fil. Man vill inte riskera att filen går att ladda hem via webbläsaren, och någon får tag i uppgifterna till din databas.

mvh

AgneusMedlem sedan dec. 200346 inlägg
#5

TACK @nders!

Det funkade. Behövde inte ta bort ,,128

Extra tack för tipset om inc-filer

@ndersMedlem sedan juni 200026 914 inlägg
#6

Varsågod.

Använd gärna funktionen "Markera som lösning" till höger i inlägget som hjälpte dig att lösa ditt problem.

mvh

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb