Toon posts:

[ASP] plaatjes uit sql server + html

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik zit met het volgende probleem: In een sql server tabel staan een aantal plaatjes deze wil ik weergeven op het scherm hiervoor gebruik ik onderstaande code:
ASP:
1
2
3
4
5
6
Response.Expires = 0
Response.Buffer = TRUE
Response.Clear
Response.ContentType = "image/gif"
Response.BinaryWrite RS("foto")
Response.End


Plus natuurlijk nog veel meer. Opzich kan ik hiermee een plaatje op het scherm krijgen. Het probleem is nu dat als ik dit in een pagina zet dat er geen andere gegevens (die d.m.v. HTML in het bestand staan) worden weergegeven dus alleen de foto. Nu heb ik op internet zitten rondkijken en nu blijkt dat door Response.Buffer = TRUE en Response.Clear de html buffer wordt leeggegooid en daarom niets wordt weergegeven.

Maar als ik deze commando's weghaal doet de pagina het verder wel maar staat er geen foto maar allemaal rare tekens.

Wat kan ik hieraan doen, moet ik iets anders erbij zetten ik heb geen idee

[ Voor 1% gewijzigd door gorgi_19 op 03-09-2004 16:17 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Ik zou gewoon een een pagina gebruiken die alleen de afbeelding schrijft, en deze pagina in een aandere pagina gebruiken die ook HTML bevat:
code:
1
[img]"mijn_pagina_die_foto_streamt.asp?foto_id=1"[/img]

Oops! Google Chrome could not find www.rijks%20museum.nl


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

:?

Een plaatje combineer je normaliter ook niet met deze code :)
Voorbeeldje:
default.html
HTML:
1
2
3
4
5
6
<head>
blaat
</head>
<body>
<img src="myImage.gif" />
</body>

Wil je dan een dynamisch plaatje erin zetten:
default.html
HTML:
1
2
3
4
5
6
<head>
blaat
</head>
<body>
<img src="myImage.asp" />
</body>

Oftewel: 2 bestandjes er van maken en niet combineren in 1 bestand. :)

[ Voor 9% gewijzigd door gorgi_19 op 03-09-2004 16:17 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 22-03 18:12
Je wilt dus naast de foto ook nog HTML gaan outputten. Lijkt me niet echt handig. Je kunt beter in een HTML bestand die je output een <img> tag outputten waarin je in de src attribuut een verwijzing naar je asp bestand maakt. Of begrijp ik je niet helemaal goed?

edit:
Sh*t :P

[ Voor 7% gewijzigd door Michali op 03-09-2004 16:18 ]

Noushka's Magnificent Dream | Unity


Verwijderd

Topicstarter
Bedankt dit is de oplossing _/-\o_ _/-\o_

Verwijderd

Topicstarter
Nadat ik wat andere dingen gedaan heb ben ik weer verder gegaan met het bovenstaande. Dat werkt allemaal prima. Het volgende probleem waar ik tegen aanloop en niet uitkom is dat hoe controleer ik of er wel of geen plaatje in de database zit.

In de database staan namen en pasfoto's. Maar niet alle pasfoto's staan in de database als er geen foto is staat krijg je op de webpagina zo'n kruisje te zien dat er geen foto is. Dit wil ik graag voorkomen.

Ik heb het volgende geprobeerd:
code:
1
2
3
<%if rst("foto") <> null then%> 
  [img]"Foto.ASP?id=1000">
<%end[/img]


Dit werkt gedeeltelijk als er geen foto in zit geeft hij ook niets weer, maar als er wel een foto inzit krijg ik de melding: Typen komen niet met elkaar overeen (op de regel waar het if statement staat)

Weet iemand hoe ik dit kan oplossen?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19:24

gorgi_19

Kruimeltjes zijn weer op :9

If rst("foto") Is Nothing Then

?

[ Voor 8% gewijzigd door gorgi_19 op 17-09-2004 10:30 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op 17 september 2004 @ 10:30:
If rst("foto") Is Nothing Then

?
Nee dat werkt ook niet hij denkt met Is Nothing dat er wel wat in zit want hij wil ook de foto's laten zien die er niet zijn.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Het ADODB.RecordSet.Field object RS("FOTO") bestaat wel maar heeft een waarde NULL.

code:
1
IF NOT ISNULL(rs("FOTO") ) THEN


als dat niet werkt zou je nog

code:
1
IF LEN(TRIM(RS("FOTO"))) > 0 THEN


Dit als een ontbrekende foto niet als NULL in de db staat maar als een lege string.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
P_de_B schreef op 17 september 2004 @ 10:45:
Het ADODB.RecordSet.Field object RS("FOTO") bestaat wel maar heeft een waarde NULL.

code:
1
IF NOT ISNULL(rs("FOTO") ) THEN
Dankje dit is de oplossing. Ik had het kunnen weten ik ben dit zelfde ook als eens in access tegen gekomen.

Vraagje: wat is eigenlijk het verschil tussen:

code:
1
IF NOT ISNULL(rs("FOTO") ) THEN


en

code:
1
IF rs("foto") <> NULL THEN


Dat laatste had ik dus en werkte niet.

Verwijderd

Verwijderd schreef op 17 september 2004 @ 10:52:

Vraagje: wat is eigenlijk het verschil tussen:
code:
1
IF NOT ISNULL(rs("FOTO") ) THEN

en
code:
1
IF rs("foto") <> NULL THEN
uit de VBA help in Access:
Important
Use the IsNull function to determine whether an expression contains a Null value. Expressions that you might expect to evaluate to True under some circumstances, such as If Var = Null and If Var <> Null, are always False. This is because any expression containing a Null is itself Null and, therefore, False.

Verwijderd

Bij de eerste bekijk je of het object bestaat en bij de tweede bekijk je of de waarde van rs("foto") NULL is volgens mij. Je kan het denk ik ook oplossen door onderstaande code:


code:
1
2
3
If IsObject(rs("foto")) Then
  ' doe iets
End If


je zou het voor de grap eens kunnen proberen... ik weet nml niet zeker uit mn hoofd of dit goed werkt.

Verwijderd

Topicstarter
Ik heb even voor de grap geprobeerd maar helaas... dat werkt niet dit heeft hetzelfde effect als: If rst("foto") Is Nothing Then

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op 17 september 2004 @ 11:06:
Bij de eerste bekijk je of het object bestaat en bij de tweede bekijk je of de waarde van rs("foto") NULL is volgens mij. Je kan het denk ik ook oplossen door onderstaande code:


code:
1
2
3
If IsObject(rs("foto")) Then
  ' doe iets
End If


je zou het voor de grap eens kunnen proberen... ik weet nml niet zeker uit mn hoofd of dit goed werkt.
Juist niet, het object bestaat wel, maar de waarde die in het recordsetobject zit, dus de waarde die uit de database komt is NULL. Je moet dus niet controleren of het object bestaat, maar de waarde.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • shades
  • Registratie: September 2001
  • Laatst online: 19-05 08:57

shades

huh ?

Je vraagt je af of je foto(id) wel bestaat ?

Is het niet handiger om dit in Foto.ASP af te vangen en a.d.h. daar van een "error" plaatje laten zien ofzo.

Bovendien hoe je je niet af te vragen of je object wel een object is maar of de opgevraagde foto wel bij in je recordset zit (die bij fotoid=... maar 1 record lang is)

ASP:
1
2
3
If (rs.EOF or rs.BOF) Then
    ' Doe iets anders
End If


En als je wilt weten of je foto(blob) leeg is (waarom is er dan wel een record van ?) dan kan je ook dit doen:

ASP:
1
2
3
If (rs.Fields("Foto").Value = null) Then
    ' Doe iets anders
End If

[ Voor 74% gewijzigd door shades op 17-09-2004 23:10 ]

https://k1600gt.nl

Pagina: 1