webForumDet fria alternativet

tomma fält IGEN

ASP

9 svar · 324 visningar · startad av reka1

Medlem sedan sep. 2001650 inlägg
Frågan#1

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. :(

Medlem sedan juni 200032 967 inlägg
#2

Ä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

Medlem sedan sep. 2001650 inlägg
#3

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.

Medlem sedan juni 200032 967 inlägg
#4

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...

Medlem sedan sep. 2001650 inlägg
#5

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>&nbsp;</p>
	<a href="index1_tmp.asp?val=2">Uppdatera kundevent:</a>
	<p>&nbsp;</p>
	<a href="index1_tmp.asp?val=3">Radera/ändra kund</a>
	<p>&nbsp;</p>
	<a href="index1_tmp.asp?val=4">Addera bransch</a>
	<p>&nbsp;</p>
	<a href="index1_tmp.asp?val=6">Lista alla kunder</a>
	<p>&nbsp;</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>&nbsp;</td></tr>"
response.write "<tr><td colspan='4'>&nbsp;</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>
Medlem sedan juni 200032 967 inlägg
#6

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>"
%>
Medlem sedan sep. 2001650 inlägg
#7

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...

Medlem sedan juni 200032 967 inlägg
#8

Hmm, jag är ledsen, jag kan verkligen inte förstå vad som är fel.

Medlem sedan sep. 2001650 inlägg
#9

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.

Medlem sedan sep. 2001650 inlägg
#10

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.

339 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
187 ms — deklarationer (db)
0 ms — hämta statistik (cache)
149 ms — hämta tråd, inlägg och bilagor (db)
187 ms — ändringar (db)