Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Problema con Request.BinaryRead su campo blob Mysql

    Ciao a tutti
    ho bisogno di un aiutino perchè per quanto abbia cercato in giro non sono riuscito a trovare la soluzione a un problema che sicuramente per molti di voi é banale

    devo stampare in una pagina ASP il contenuto di un campo blob (binario) di MySQL dopo aver fatto delle replace sul suo contenuto

    per capirci, il campo in questione é il post_text di un forum phpbb3

    se faccio

    Response.BinaryWrite(rs("post_text"))

    mi stampa il testo convertito senza problemi ma ovviamente il testo é pieno di tag VB che devo ripulire/convertire in HTML perchè il messaggio venga visualizzato correttamente...

    ora, vorrei semplicemente cacciare in una variabile il contenuto, convertito in string, di questo blob, farci sopra tutti i replace del caso, e poi stampare il contenuto della variabile elaborata, ma se provo con

    testo = request.BinaryRead(rs("post_text"))

    mi da questo errore

    Oggetto Request error 'ASP 0106 : 80020005'
    Tipo non corrispondente
    /new/inclusione_news_test.asp, line 31
    È stato individuato un tipo di dati privo di handle.

    immagino che semplicemente sia il modo sbagliato di fare 'sta cosa... quindi...
    gentilmente, qualcuno di voi mi sa suggerire qual'é il modo giusto?
    grazie in anticipo

    Lorenzo

  2. #2
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Prova con una semplice response.write e vedi cosa restituisce.

  3. #3
    Originariamente inviato da Mizushi
    Prova con una semplice response.write e vedi cosa restituisce.
    Ciao Mizushi
    un response.write mi stampa una lunga serie di punti di domanda e caratteri strani poichè il contenuto del campo é in formato binario.
    Con Response.BinaryWrite invece mi stampa il contenuto correttamente convertito ma il problema é che non posso fare dei replace perchè la conversione viene fatta come ultima operazione...

  4. #4
    Ho trovato questa funzione che effettua la conversione usando l'ADODB.Stream

    Codice PHP:
    'Stream_BinaryToString Function
    '
    2003 Antonin Foller, [url]http://www.motobit.com[/url]
    'Binary - VT_UI1 | VT_ARRAY data To convert To a string 
    '
    CharSet charset of the source binary data - default is "us-ascii"
    Function Stream_BinaryToString(BinaryCharSet)
      Const 
    adTypeText 2
      
    Const adTypeBinary 1
      
      
    'Create Stream object
      Dim BinaryStream '
    As New Stream
      Set BinaryStream 
    CreateObject("ADODB.Stream")
      
      
    'Specify stream type - we want To save text/string data.
      BinaryStream.Type = adTypeBinary
      
      '
    Open the stream And write text/string data To the object
      BinaryStream
    .Open
      BinaryStream
    .Write Binary
      
      
      
    'Change stream type To binary
      BinaryStream.Position = 0
      BinaryStream.Type = adTypeText
      
      '
    Specify charset For the source text (unicodedata.
      If 
    Len(CharSet) > 0 Then
        BinaryStream
    .CharSet CharSet
      
    Else
        
    BinaryStream.CharSet "us-ascii"
      
    End If
      
      
    'Open the stream And get binary data from the object
      Stream_BinaryToString = BinaryStream.ReadText
    End Function 
    Già con questa sono a posto, nel senso che ho raggiunto il risultato
    Mi resta però la curiosità di sapere se questo é il metodo migliore o ce ne sono altri più "diretti"...
    se qualcuno lo sa, ben venga, altrimenti grazie comunque, problema risolto!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.