Är problemet att SQL-frågan inte ger dig något resultat? Du bör alltid kontrollera detta.
if not rs.eof then
' koden här
end if
mvh
9 svar · 324 visningar · startad av reka1
Min tidigare fråga var inte alls löst upptäckte jag nu. Hade gjort en temporär omvänd lösning som lade till texten "Ingen data" i databasen om tomma matningar gjordes. Lösningsförslaget jag fick fungerade pga fälten i databasen inte var tomma.
Således kvarstår problemet som beskrivs och diskuteras här:
http://www.webforum.nu/showthread.php?s=&threadid=115398&forumid=22
Dock har felmeddelandet ändrats till:
Error Type:
(0x80020009)
Exception occurred.
/trade/merInfo.asp, line 48
b2 = "" & rs("bransch2") <<== rad 48, iövrigt här koden som i andra tråden med @nders förslag
Kan ju visserligen fortsätta köra med nödlösningen att omvända nolldata till texten "Ingen data" redan vid lagring av data men det känns klumpigt och onödigt. :(
Är problemet att SQL-frågan inte ger dig något resultat? Du bör alltid kontrollera detta.
if not rs.eof then
' koden här
end if
mvh
Resultat får jag när jag bortkommenterar allt som har med b2/bransch2 att göra. Då skriva alla fält ut.
Det är alltså kolumnen bransch2, där ingen data finns, som trilskas.
Hmm, i koden skriver du ju bara ut det fältet? Kan du inte visa hela koden du använder nu?
Men snälla, inte i [php]-taggar. Använd [kod]-taggar, eftersom php-färgkodningen bara förstör när det inte handlar om php...
Ok, här kommer hela koden, inom dess riktiga tag ;)
Response.write:arna som är bortkommenterade tar också värden från fält som kan vara tomma.
<%'Öppnar databasen
set con = server.createobject("adodb.connection")
con.open "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=trade;OPTION=3;"
'Branschalternativ
function val
sql = "select val from wwwdata order by val"
set rs = con.execute(sql)
response.write "<option>"
do until rs.eof
response.write "<option>" & rs("val")
rs.moveNext
loop
response.write "</select>"
rs.close
set rs = nothing
end function
%>
<html><head><title>TradingLink</title></head><body>
<table width="100% height="100%">
<tr><td>
<table><tr><td>
<a href="index1_tmp.asp?val=1">Addera kund</a>
<p> </p>
<a href="index1_tmp.asp?val=2">Uppdatera kundevent:</a>
<p> </p>
<a href="index1_tmp.asp?val=3">Radera/ändra kund</a>
<p> </p>
<a href="index1_tmp.asp?val=4">Addera bransch</a>
<p> </p>
<a href="index1_tmp.asp?val=6">Lista alla kunder</a>
<p> </p>
<form method="post" action="index1_tmp.asp?val=5">
Sök kund: <input type="text" name="input"><br>
<font size="2">Ange företag, år, plats el. status</font>
<input type="submit" value="Skicka">
</form>
</td></tr></table>
</td><td>
<%dim b2(5), kontaktperson, adress, postnr, postort, telefon, mobil, fax, mejl, webbplats
sql = "select * from kund where id ="&trim(request.querystring("id"))&""
set rs = con.execute(sql)
b2 = "" & rs("bransch2") '*** RAD 46
if b2 = "" then
b2 = "<i>Ingen data</i>"
end if
response.write "<table cellpadding='8' border='1'>"
response.write "<tr><td>Företag: </td><td>"&rs("adress")&"</td><td>Kontaktperson: </td><td>"&rs("kontaktperson")&"</td></tR>"
response.write "<tr><td>Adress: </td><td>"&rs("adress")&"</td><td>Postnr: "&rs("postnr")&"</td></tr>"
response.write "<tr><td>Ort: </td><td>"&rs("postort")&"</td><td>Land: "&rs("land")&"</td></tr>"
'response.write "<tr><td>Telefon: </td><td>"&rs("telefon")&"</td><td>Mobil: "&rs("mobil")&"</td></tr>"
'response.write "<tr><td>Fax: </td><td"'&rs("fax")&"</td><td>E-post: </td><td>"&rs("mejl")&"</td></tr>"
'response.write "<tr><td>Webbplats: </td><td>"&rs("webbplats")&"</td><td> </td></tr>"
response.write "<tr><td colspan='4'> </td></tr>"
response.write "<tr><td>Bransch 1: </td><td>"&rs("bransch1")&" </td><td>Bransch 2: </td><td>"&rs("bransch2")&"</td></tr>"
'response.write "<tr><td>Bransch 3: </td><td>"&rs("bransch3")&" </td><td>Bransch 4: </td><td>"&rs("bransch4")&"</td></tr>"
rs.close
set rs = nothing
con.close
set con = nothing
response.write "</table>"
%>
</body></html>
Så här hade jag gjort, för att ta hand om NULL, tomt recordset och konstigheter med Text-datatypen och ADO:
sql = "select * from kund where id =" & trim(request.querystring("id"))
set rs = con.execute(sql)
if not rs.eof then
b1 = "" & rs("bransch1")
b2 = "" & rs("bransch2")
b3 = "" & rs("bransch3")
b4 = "" & rs("bransch4")
if b2 = "" then
b2 = "<i>Ingen data</i>"
end if
sAddr = "" & rs("adress")
sContactPerson = "" & rs("kontaktperson")
sZip = "" & rs("postnr")
sArea = "" & rs("postort")
sCountry = "" & rs("land")
sPhone = "" & rs("telefon")
sCell = "" & rs("mobil")
sFax = "" & rs("fax")
sEmail = "" & rs("mejl")
sWebsite = "" & rs("webbplats")
response.write "<table cellpadding='8' border='1'>"
response.write "<tr><td>Företag: </td><td>" & sAddr & "</td><td>Kontaktperson: </td><td>" & sContactPerson & "</td></tR>"
response.write "<tr><td>Adress: </td><td>" & sAddr & "</td><td>Postnr: " & sZip & "</td></tr>"
response.write "<tr><td>Ort: </td><td>" & sArea & "</td><td>Land: "& ("" & sCountry & "</td></tr>"
'response.write "<tr><td>Telefon: </td><td>" & sPhone & "</td><td>Mobil: " & sCell & "</td></tr>"
'response.write "<tr><td>Fax: </td><td>" & sFax & "</td><td>E-post: </td><td>" & sEmail & "</td></tr>"
'response.write "<tr><td>Webbplats: </td><td>" & sWebsite & "</td><td> </td></tr>"
response.write "<tr><td colspan='4'> </td></tr>"
response.write "<tr><td>Bransch 1: </td><td>" & b1 & " </td><td>Bransch 2: </td><td>" & b2 & "</td></tr>"
'response.write "<tr><td>Bransch 3: </td><td>" & b3 & " </td><td>Bransch 4: </td><td>" & b4 & "</td></tr>"
else
response.write "finns inget här ju!!! :-("
end if
rs.close
set rs = nothing
con.close
set con = nothing
response.write "</table>"
%>
Tack för ditt engagemang. Tyvärr så blev det ingen bättring
b2 = "" & rs("bransch2")
Ger:
Error Type:
(0x80020009)
Exception occurred.
/trade/merInfo.asp, line 48
Ändra på datatyperna och "text" ger ovanstående meddelande och "varchar" ger:
Microsoft VBScript runtime (0x800A000D)
Type mismatch
/trade/merInfo.asp, line 48
Mig säger det inte så mkt men men...
Hmm, jag är ledsen, jag kan verkligen inte förstå vad som är fel.
Hmm, misstänekr nu att det är databasservern som jävlas. Kollade mina tidigare prylar som har hanterat tomma fält och dessa fungerade inte heller :-(
Ska ominstallera mysql och si hur det löser sig.
Hmm, efter ominstallation av Mysql så är fortfarande felet kvar!
Det måste ju vara servern som dummar sig eftersom mina tidigare skript inte fungerar nu.
Nån som har varit med om nåt liknande? :-/
Dvs att mySqlservern efter en omstart inte kan hantera fält med tomma poster.