webForumDet fria alternativet

Databaskoppling

4 svar · 249 visningar · startad av qwerty

qwertyMedlem sedan jan. 2001391 inlägg
#1

Den säger att den inte kan utföra det jag begär för att object är closed. Vad göra jag har försökt och försökt...men något är fortfarande fel.

...och jag har sökt på db-kopplingar

<%
ShowItem Request("Item"),Request("Description"),_
Request("Price"),Request("Phone"),Request("Email"),_
Request("State"),Date

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access driver (*.mbd)}; DBQ=" & Server.MapPath("fpdb/classy.mdb") & "clasifieds"

Set clas = Server.CreateObject("ADODB.Recordset")
clas.Open _
"SELECT * FROM Items WHERE Category='" & _
Request("Category") & "'",_
Connect,adOpenDynamic,adLockOptimistic
clas.AddNew
clas("Item") = Request("Item")
clas("Category") = Request("Category")
clas("Description") = Request("Description")
clas("Price") = Request("Price")
clas("Phone") = Request("Phone")
clas("Email") = Request("Email")
clas("State") = Request("State")
clas("Posted") = Date
clas("Password") = Request("Password")
clas.Update
If Err.Number = 0 Then %>
<font size=5><i>Your clasified ad has been placed.</i></font><p>
<a href="default.asp">Home</a><p>
<% Else %>
There was an error placing your ad.<p>
Error #<%=Err.Number%>: <%=Err.Description%><p>
<% End If %>
<% End If %>

------------------
Qwerty

Den som söker han letar...

cascaMedlem sedan feb. 20003 262 inlägg
#2

Jag är ingen asp-expert, men jag tycker mig se ett par fel där.. Dessutom heter det "classified" ;)

------------------
Canis meus id comedit

PatrikBMedlem sedan mars 20002 713 inlägg
#3

Hello,

ser ut som du glömt att lägga till connection objectet efter sql utrycket så rs vet vilken koppling som ska användas

cya

------------------
'*********************
Response.Write("PatrikB")
Response.End
'*********************

qwertyMedlem sedan jan. 2001391 inlägg
#4

Här kommer hela sidan
Felmeddelandet jag får är: The operation requested by the application is not allowed if the object is closed

<% Option Explicit %>
<!-- #include virtual="ovrigt/common/adovbs.inc" -->
<html>

<body bgcolor="#FFFFFF" vlink=red>

<!-- #include file="header.inc" --><p>

<%
' The first time this page is retrieved and any time it is
' submitted without being completely filled out, the form
' is displayed. If it is submitted and completely filled out
' the form is processed in the Else clause.
If Request("Item")="" Or Request("Description")="" Or _
Request("Price")="" Or Request("Phone")="" Or _
Request("Email")="" Or Request("State")="" Then
%>
<% ShowHeader "Place A New Ad" %>
Please fill in all of these fields below. Be sure to choose
an appropriate Category for your item.<p>
Be careful when entering a Password and be sure to remember what
you type. You will be required to enter the password later to
identify you if you need to edit or delete this ad.<p>
When you are finished, click the Place Ad button.<p>

<form method="POST" action="placead.asp">
<table>
<tr><td>Item:</td>
<td><input type="text" size="50" name="Item"></td></tr>
<td valign=top>Description:</td>
<td><textarea name="Description" rows="6" cols="50"></textarea></td></tr>
<tr><td>Category:</td>
<td> <select name="Category" size="1">
<option selected value="VEHICLES">Vehicles</option>
<option value="COMPUTERS">Computers/Software</option>
<option value="REALESTATE">Real Estate</option>
<option value="COLLECTIBLES">Collectibles</option>
<option value="GENERAL">General Merchandise</option>
</select></td></tr>
<tr><td>Price:</td>
<td><input type="text" size="10" name="Price">
</td>
</tr>
<tr><td>Phone</td>
<td><input type="text" size="15" name="Phone">
</td>
</tr>
<tr><td>Email:</td>
<td><input type="text" size="50" name="Email">
</td>
</tr>
<tr><td>State:</td>
<td><input type="text" size="2" name="State">
</td>
</tr>
<tr><td>Password:</td>
<td><input type="password" size="50" name="Password">
</td>
</tr>
<tr><td><input type="submit" value="Place Ad"></td></tr>
</table>
</form>

<% Else %>
<%
Dim Connect
Dim clas
Dim Query
Dim Category

ShowHeader "Place A New Ad"

On Error Resume Next
%>
<font size=5><b>CATEGORY: <%=Request("Category")%></b></font>
<%
ShowItem Request("Item"),Request("Description"),_
Request("Price"),Request("Phone"),Request("Email"),_
Request("State"),Date

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "classifieds"

Set clas = Server.CreateObject("ADODB.Recordset")
clas.Open _
"SELECT * FROM Items WHERE Category='" & _
Request("Category") & "'",_
Connect,adOpenDynamic,adLockOptimistic
clas.AddNew
clas("Item") = Request("Item")
clas("Category") = Request("Category")
clas("Description") = Request("Description")
clas("Price") = Request("Price")
clas("Phone") = Request("Phone")
clas("Email") = Request("Email")
clas("State") = Request("State")
clas("Posted") = Date
clas("Password") = Request("Password")
clas.Update
If Err.Number = 0 Then %>
<font size=5><i>Your clasified ad has been placed.</i></font><p>
<a href="default.asp">Home</a><p>
<% Else %>
There was an error placing your ad.<p>
Error #<%=Err.Number%>: <%=Err.Description%><p>
<% End If %>
<% End If %>

</body>
</html>

------------------
Qwerty

Den som söker han letar...

@ndersMedlem sedan juni 200026 914 inlägg
#5

jag förstår inte varför man envisas med att använda recordsets för insert och update.

  1. skriv en riktig sql-fråga istället så sparar du prestanda och klipper koden med tio rader.
  2. du har inte stängt några objekt, gör gärna det.
  3. Dessutom heter det "classified" §jr

en sql-fråga för att lägga in data i en tabell har följande syntax:

insert into [tabellen] ([fält1],[fält2],[fält3]) values (värde1, värde2, värde3)

du slipper då använda recordsetobjektet helt och hållet och klarar dig med att bara köra en ren execute med ditt connectionobjekt.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
if i'm not back in five minutes, just wait longer.</A>

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