Archief - SQL: Stored Procedure -- Image saven

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

orez

Legacy Member
Ik heb deze procedure gevonden op een site... maar aangezien ik nogal leek ben hierin, heb ik deze gewoon zo gebruikt, ik heb er een scriptje rondgeschreven waar ik dus afbeeldingen upload naar een database, en van deze afbeeldingen maakt hij ook thumbs... Nu ik upload een afbeelding in relatie met een bepaald NieuwsID. Als ik nu echter voor de 2x een afbeelding upload overschrijft hij de eerste, dus UPDATE hij, heeft dit met deze procedure te maken? (Mijn eerste stapjes met stored procedures...)

Ik wil dus elke keer ik een nieuwe afbeelding upload, dat er ook meerdere rijen ontstaan met hetzelfde NieuwsID ... Waar hij dus meerdere afbeeldingen per nieuwsbericht kan ophalen.

PHP:
CREATE PROCEDURE [insert_News_image] ( 
@NieuwsID [int], 
@img_name [varchar](50),
@img_data [image], 
@img_contenttype [varchar](50),
@img_name2 [varchar](50), 
@img_data2 [image], 
@img_contenttype2 [varchar](50) )
AS 
begin transaction 
  delete from News_images where NieuwsID = @NieuwsID 
  INSERT INTO [News_images] ( 
  [NieuwsID], 
  [Large_imgname],
  [Large_imgdata], 
  [Large_imgcontenttype],
  [Small_imgname], 
  [Small_imgdata], 
  [Small_imgcontenttype] )
VALUES ( 
  @NieuwsID, 
  @img_name, 
  @img_data, 
  @img_contenttype,
  @img_name2, 
  @img_data2, 
  @img_contenttype2)
commit transaction
GO

DarkBone

Legacy Member
Da's toch redelijk leesbare sql me dunkt.

Die DELETE doet het hem. Gewoon die delete schrappen en zorgen dat de sleutel niet enkel op NieuwsId ligt in de tabel News_images (wat nu het geval is denk ik).

orez

Legacy Member
Hmmz idd had et em lik zelf gevonden, tzit em blijkbaar in mn weergave :s

PHP:
Private Sub DisplayImages(ByVal NieuwsID As String)
        Dim SqlConnection1 As New System.Data.SqlClient.SqlConnection
        Dim strSQL As String
        Dim bmpFile As Bitmap
        Dim stmFile As New MemoryStream
        Dim objWriter As New BinaryWriter(stmFile)
        Dim myReader As SqlClient.SqlDataReader
        Dim sqlCount As String
        Dim Teller As Int32

        SqlConnection1.ConnectionString = ConnectionString

        strSQL = "Select Small_imgdata,Small_imgcontenttype from News_Images where NieuwsID=" & NieuwsID
        sqlCount = "SELECT Count(Small_imgcontenttype) From News_Images WHERE NieuwsID=" & NieuwsID
        Dim myCommand As New SqlClient.SqlCommand(strSQL, SqlConnection1)
        SqlConnection1.Open()
        myReader = myCommand.ExecuteReader()
        While myReader.Read
            objWriter.Write( _
            myReader("Small_imgdata"))
            bmpFile = New Bitmap(stmFile)
            Response.ContentType = myReader("Small_imgcontenttype")
            Dim thisformat = bmpFile.RawFormat
            bmpFile.Save(Response.OutputStream, thisformat)
        End While
        'Next
        myReader.Close()
        SqlConnection1.Close()
    End Sub

Hij toont deze maar slechts 1 maal, is er een manier om ze allemaal op te halen, en weer te geven? zoja hoe? (er mag gebruik gemaakt worden van een repeater ofzo...) Ik snap de code wel, hoe hij die ene file toont, maar op 1 of andere manier zou deze moeten geloopt worden, en telkens de volgende rij met als zelfde NieuwsID moeten tonen... Heb al geprobeerd met for next... maar kzou ni wete hoe ik hem van rij zou moeten laten verspringen :s

sneax

Legacy Member
als ge een afbeelding 'in uw database zet' gaat ge dan écht die binaire data van die images in uw database zetten?

Cakeman

Legacy Member
Yup, beetje zoals custom avatars op forums worden opgeslagen denk ik.

sneax

Legacy Member
Awel ik snap daar écht het nut ni van. Ik sla files altijd op gewoon op de 'webspace' en zet dan de bestandsnaam in mijn database. Bij sommige hosts krijgt ge bv. maar een database van 30mb maar wél 250mb webspace, waarom zou ge dan uw bestanden in een database zetten?

EdMeister

Legacy Member
Onnodige belasting voor je database. Doe gewoon zoals sneax zegt.

orez

Legacy Member
ik vraag een oplossing op het geplaatste probleem, nie hoe ik het anders zou moeten doen...

Dus ... hoe moet ik meerdere afbeeldingen weergeven? En ik ondervind zeer weinig extra belasting trouwens. Dit is trouwens ook overzichterlijker naar mijn mening. Dus hou het maar op deze manier, en niet op een andere...

orez

Legacy Member
ru`orez zei:
Hmmz idd had et em lik zelf gevonden, tzit em blijkbaar in mn weergave :s

Antwoord al gegeven trouwens Cakeman ... Kijk naar mn reply op darkbone zen commentaar

Cakeman

Legacy Member
ru`orez zei:
Hmmz idd had et em lik zelf gevonden, tzit em blijkbaar in mn weergave :s s
Hieruit laat je blijken dat je het probleem zelf gevonden hebt en dat je denkt dat het in de weergave zit en niet in de stored procedure.

In elk geval, als die stored procedure gefixt is en je er zeker van bent dat er meerdere images met dezelfde ID in je database zitten, dan weet ik niet direct wat er fout is.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan