Avatar billede brops Nybegynder
06. oktober 2003 - 22:46 Der er 9 kommentarer og
1 løsning

fejlmelding i mit scrip

jeg har følgened script som inden jeg converterede min database til MySQL ikke meldte fejl på scriptet

<%
SQLserveradr="adressen til databasen her"
SQLdatabase="navn på din database her"
SQLlogin="login navn her"
SQLpassword="dit password her"

Set Conn = Server.CreateObject("ADODB.Connection")

conStr = "driver={MySql};server="& SQLserveradr &";database="& SQLdatabase
conStr = conStr & ";uid="& SQLlogin &";pwd="& SQLpassword & ";OPTION=16386"

Conn.Open conStr
%>
<% 'checker om brugeren er loget ind
if Request.Cookies("admin") <> "" then %>
<% 'finder oplysninger om brugeren i databasen
  if Request.Cookies("admin") <> "" then
  admin = Request.Cookies("admin")
  res = conn.execute("SELECT * FROM admin WHERE adminID = " + admin)
'laver en slags var på felterne da de bliver brugt flere gangen
  nick = res("nick")
  rname = res("rname")
  town = res("town")
  age = res("age")
  weapon = res("weapon")
  quote = res("quote")
  pass = res("pass")

%>
<head>
</head>
<body>
<form name=afsend action=ret_admin_ind.asp method=post>
  <table>
    <tr>
      <td colspan="2">Ret info om <%=nick%></td>
    </tr>
    <tr>
      <td>nick*</td>
      <td> <input type=text name=navn value="<%=nick%>" size="20"> </td>
    </tr>
        <tr>
      <td>Real name*</td>
      <td> <input type=text name=alder value="<%=rname%>" size="20"> </td>
    </tr>
    <tr>
      <td>Town*</td>
      <td> <input type=text name=city value="<%=Town%>" size="20"> </td>
    </tr>
    <tr>
      <td>Age*</td>
      <td> <input type=text name=icq value="<%=age%>" size="20"></td>
    </tr>
    <tr>
      <td>Weapon*</td>
      <td> <input type=text name=vaben value="<%=weapon%>" size="20"></td>
    </tr>
    <tr>
      <td><strong>Quote*</strong><br>
        <p><strong>OBS!!!</strong> hvis man skal
          lave linieskift skal der bruges HTMLkoder (alle htmlkoder virker) <br>
          nyttige kommandoer:<br>
          &lt;br&gt; = linieskift eksempel &quot;jeg vil g&aring; en tur<br>
          &lt;br&gt; solen skinner</p>
        <p> &lt;p&gt; = afsnit eksempel </p>
        <p>&lt;p&gt; jeg vil g&aring; en tur.&lt;/p&gt;</p>
        <p>&lt;p&gt;solen skinner&lt;/p&gt;<br>
          &lt;font size=&quot;tal&quot; face=&quot;type&quot;&gt; skrifttype og
          st&oslash;rrelse eksempel <font size="2" face="Verdana">&lt;font size=&quot;2&quot;
          face=&quot;verdana&quot;&gt;jeg vil g&aring; en tur&lt;/font&gt;</font><br>
          &lt;strong&gt; = fed eksempel: jeg <strong>&lt;strong&gt;vil&lt;/strong&gt;</strong>
          g&aring; mig en tur (<b>&lt;b&gt; kan bruges &lt;/b&gt;</b>)</p>
      </td>
      <td> <textarea name="Quote" cols="20" rows="10"><%=ommig%></textarea>
      </td>
    </tr>
    <tr>
      <td>land*</td>
      <td><select name="land">
          <option selected>v&aelig;lg land</option>
          <option value="dansk.gif">Dansk</option>
        </select></td>
    </tr>
    <tr>
      <td>status*</td>
      <td><select name="status1">
          <option selected>v&aelig;lg status</option>
          <option value="aktiv">aktiv</option>
          <option value="inaktiv">inaktiv</option>
        </select></td>
    </tr>
    <tr>
      <td colspan=2>HUSK DU SKAL OPLYSE PASSWORD
        HVERGANG DU RETTE I INFO</td>
    </tr>
    <tr>
      <td>Password *</td>
      <td> <input type=password name=pass size="20"> </td>
    </tr>
    <tr>
      <td>Gentag password *</td>
      <td> <input type=password name=passA size="20"> </td>
    </tr>
    <tr>
      <td colspan="2">
        <input name="submit" type=submit value="ret brugerinfo">
        <input type="reset" name="Reset" value="Reset">
      </td>
    </tr>
  </table>
</form>
<% end if %>
<% else %>
<table>
  <tr>
    <td>Fejl</td>
  </tr>
  <tr>
    <td>Du er ikk logget ind eller har ikk rettigheder til at se denne side ved tilbage til sitet <a href="index.asp">her</a></td>
  </tr>
</table>
<% end if %>

men efter kommer denne fejlmelding nu:

error '800a0cc1'

ADO Could not find the object in the collection corresponding to the name or ordinal reference requested by the collection.

/asp/ret_admin.asp, line 21

hvad er der galt???
Avatar billede Slettet bruger
06. oktober 2003 - 22:50 #1
du beder om noget der ikke findes i databasen... tjek dine navne på felter
Avatar billede erikjacobsen Ekspert
06. oktober 2003 - 22:52 #2
Plejer man ikke at skrive
res = conn.execute("SELECT * FROM admin WHERE adminID = " & admin)
eller
res = conn.execute("SELECT * FROM admin WHERE adminID = '" & admin & "'")
Avatar billede brops Nybegynder
06. oktober 2003 - 23:16 #3
questis>> det er de navne jeg bruger i databasen har jeg nemlig tjekket efter 200 gange :D

erikjacobsen>> kigger lige på det...
Avatar billede brops Nybegynder
06. oktober 2003 - 23:26 #4
erikjacobsen>> det virker ikk kan det være moden jeg laver de variabler på????
Avatar billede henrik_n Nybegynder
07. oktober 2003 - 10:56 #5
Hej Brops

Det kan det være :
<td> <input type=text name=city value="<%=Town%>" size="20"> </td>
hvor du har skrevet Town med stort, hvor du i variablen har skrevet det med lille:
town = res("town")

Måske "age" feltet er lavet om til et tal felt ved din konvetering til MySgl ???
Avatar billede brops Nybegynder
07. oktober 2003 - 11:47 #6
henrik_n>>
1: nej det var heller ikk den den sigr jo også fejlen er i linie 21 som er:
nick = res("nick") og feltet nick findes i databesen

2 age er ikk konvertert til tal men er et VARCHAR som de andre felter

jeg er åben for forslag så kom med dem :D

Br0ps
Avatar billede d4s Novice
07. oktober 2003 - 23:13 #7
Dine feltnavne har en værdi startende med 0. Hvis nick er det 4. felt, har det altså værdien 3 og kan læses med res(3). Prøv at lave linien om til nick=res(3) og se om det løser problemet.

D4
Avatar billede d4s Novice
07. oktober 2003 - 23:23 #8
Jeg har undersøgt om NICK er et reserveret ord i MySQL og det er det ikke. Ordene kan findes her: http://www.mysql.com/doc/en/MaxDB_Reserved_Words.html
Jeg er derfor 100% sikker på at fejlen skyldes at du ikke har et felt i admin tabellen med navnet nick. Det er i hvert fald hvad fejlbeskeden betyder.

Til sidst: Du mangler at teste for EOF og BOF inden du arbejder med den læste post. Det er ikke derfor du får fejl, men en god ting at huske fremover ;O)
Avatar billede brops Nybegynder
08. oktober 2003 - 13:55 #9
D4 EOF og BOF skulle ikk gernefindes da det er noget til at rette ens egne oplysninger, derfor ikk testet for det.

jeghar lokaliceret noget af fejlen: da jeg bad den skrive min SQL streng lavede den '1' omkring det kunne databasen ikk finde men den siger stadig den ikk kan finde "nick" i databasen

min database i admintabelen ser således ud:
adminID  int(10)  UNSIGNED Nej    auto_increment 
nick  varchar(50)  Ja  NULL   
rname  varchar(50)  Ja  NULL   
pass  varchar(50)  Ja  NULL   
town  varchar(50)  Ja  NULL   
age  varchar(50)  Ja  NULL   
weapon  varchar(50)  Ja  NULL   
flag  varchar(50)  Ja  NULL   
status1  varchar(50)  Ja  NULL   
kills  varchar(50)  Ja  0   
deaths  varchar(50)  Ja  0   
quote  text  Ja  NULL   

så som i kan se findes de i tabellen, men den fejlmelder stadig med samme fejl når jeg har rettet
res = conn.execute("SELECT * FROM admin WHERE adminID = '" & admin & "'") til
res = conn.execute("SELECT * FROM admin WHERE adminID = " & admin & "")
som når jeg udskriver den giver det rigtige (udskrevet: SELECT * FROM admin WHERE adminID = 1)
Avatar billede brops Nybegynder
12. oktober 2003 - 15:24 #10
lukker
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

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