Avatar billede kenpal Nybegynder
15. august 2001 - 19:22 Der er 10 kommentarer og
1 løsning

URGENT - Fejlmeddelse...

Hej Jeg har denne åbning af database Access 2000

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/log/users.mdb\")
catnavn = Request.QueryString(\"catnavn\")
set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT * FROM Denmark WHERE catnavn=\" & catnavn, Conn, 1, 3
rs.Update
%>


....Og får denne fejlmeddelse:

Microsoft OLE DB Provider for ODBC Drivers error \'80040e10\'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/foreignhelp/Channels/denmark/showuser.asp, line 57


******linie 57 er denne linie: 
rs.Open \"SELECT * FROM Denmark WHERE catnavn=\" & catnavn, Conn, 1, 3


***hvad betyder forøvrigt conn, 1, 3?
Avatar billede bjarke-b Nybegynder
15. august 2001 - 19:24 #1
<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/log/users.mdb\")
catnavn = Request.QueryString(\"catnavn\")
set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT * FROM Denmark WHERE catnavn=\"\' & catnavn & \"\'\", Conn, 1, 3
rs.Update
%>
Avatar billede ldanielsen Nybegynder
15. august 2001 - 19:27 #2
Conn er dit connectionobject, og 1 og 3 er cursortype og locktype.

Jeg tror du skal have plinger om catnavn, det er da en streng, ikke?

rs.Open \"SELECT * FROM Denmark WHERE catnavn = \'\" & catnavn & \"\'\", Conn, 1, 3




Avatar billede ldanielsen Nybegynder
15. august 2001 - 19:30 #3
Der er nu en nemmere måde at åbne recordsettet på, hvis det ikke skal kunne opdateres:

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/log/users.mdb\")

Så er din connection åben

Set Rs = Conn.Execute(\"SELECT * FROM Denmark WHERE catnavn = \'\" & catnavn & \"\'\")

Simpelthen

Avatar billede ldanielsen Nybegynder
15. august 2001 - 19:31 #4
Hvad vil du med rs.Update??
Avatar billede kenpal Nybegynder
15. august 2001 - 20:12 #5
..beklager min lange svartid - jeg røg offline og kunne ikke komme på igen. Tak for jeres hurtige svar.

Ida mht. rs update, ved jeg det ikke, da det er et script jeg har \"skrevet\" om. Mener du at det er en skade til? eller overflødigt?

Nu spørger jeg måske lidt dumt, men havd er cursortype og locktype?

Avatar billede kenpal Nybegynder
15. august 2001 - 20:26 #6
UPS  nu får jeg en anden fejl:

ADODB.Recordset error \'800a0e7d\'

The application requested an operation on an object with a reference to a closed or invalid Connection object.

/foreignhelp/Channels/denmark/showuser.asp, line 57

Stadig samme linie?
Avatar billede kenpal Nybegynder
15. august 2001 - 20:32 #7
Nu prøvede  jeg at sætte ida\'s version ind og fik følgende:

ADODB.Field error \'80020009\'

Either BOF or EOF is True, or the current record has been deleted; the operation requested by the application requires a current record.

?
Avatar billede ldanielsen Nybegynder
15. august 2001 - 21:32 #8
Den sidste fejl betyder blot at dit recordset er tomt, så det må da være et fremskridt :o)

Drop rs.Update!

I hvert fald hvis du åbner med Conn.Execute

Cursortype bestemmer om du kan bladre frem og tilbage i recordsettet, og om du kan ændre data og gemme dem (rs.Update).

Når du bruger min metode får du standardcursoren som understøtter rs.MoveNext og ikke meget andet. Men det er fint til at få listet data op.

Hvis du vil ændre data, så skal du bruge en anden cursor, og jeg kan ikke huske hvad de hedder. Jeg opdaterer altid med fx.:

Conn.Execute \"UPDATE Tabellen SET Navn = \'Børge\', dato = GETDATE() WHERE ID = 5\"

eller lign.

Du får fejlen i en linie hvor du prøver at hente data i recordsettet:

Response.Write rs(\"Navn\")

eller sådan noget

Prøv
if not rs.BOF then
  Response.Write ...
end if

Locktype bestemmer hvorvidt en anden bruger kan ændre i de data du har hentet ud, dvs. om to brugere kan rette i de samme felter på samme tid, hvilket er noget farligt noget. Du må selv læse på det.

Og så hedder jeg altså Lars Danielsen, ikke Ida :o)
Avatar billede sommerfulg Nybegynder
15. august 2001 - 22:19 #9
Hej igen - nu er jeg ved at blive vanvittig....
jeg har barberet scriopiptet helt ned og får følgende fejl:

ADODB.Recordset error \'800a0e7d\'

The application requested an operation on an object with a reference to a closed or invalid Connection object.

/foreignhelp/Channels/denmark/showuser2.asp, line 6

***************************
Nu ser hele scriptet således ud:

<%
Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"/log/users.mdb\")
catnavn = Request.QueryString(\"catnavn\")
set rs = Server.CreateObject(\"ADODB.Recordset\")
rs.Open \"SELECT * FROM Denmark WHERE catnavn =\"\' & catnavn & \"\'\", Conn, 1, 3
%>

            <table width=\"100%\" cellspacing=\"1\" cellpadding=\"0\" border=\"0\" bgcolor=\"#000000\">
              <tr>
                <td bgcolor=\"#FFFFFF\">
                  <table width=\"100%\" cellspacing=\"1\" cellpadding=\"1\" border=\"0\" bgcolor=\"#FEF5CC\">
                    <tr>
                      <td class=\"skrift\">Brugernavn: <font color=\"#0066CC\">
                        <% = rs(\"telefon\") %>
                        </td>
                    </tr>
                  </table>
                </td>
              </tr>
       

                  </table>
<%
Conn.Close
Set Conn = Nothing
%>
Avatar billede kenpal Nybegynder
15. august 2001 - 22:22 #10
<<<<lars

undskyld navneforvekslingen....

:-)

Avatar billede kenpal Nybegynder
15. august 2001 - 22:27 #11
Jeg får lige den indskydelse..kan det være at databasen allerede er åben fra den forrige side
som hedder user.asp (som indeholder en loop funktion) her trykker man på et link (showuser.asp?catnavn=apotek) og ryger over på siden som hedder showuser.asp - og det er her fejlen kommer
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester