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

    MsSQL - Strano output HTML

    Ciao a tutti!

    Sto approcciando in questi giorni la combinazione ASP/MsSQL e notavo subito una cosa strana.
    Ho fatto una paginetta semplice semplice di connessione al mio DB e una query altrettanto semplice per stampare alcuni dati:

    Codice PHP:
    <%
    Set Conn Server.CreateObject("ADODB.Connection")
    Conn.ConnectionString "Provider=SQLOLEDB.1;Persist Security Info=True;Data Source=XXXXXX;Password=XXXXXX;User ID=XXXXXX;Initial Catalog=XXXXXX"
    Conn.Open

    sql 
    "SELECT * FROM utenti ORDER BY nome ASC;"
    Set rs Server.CreateObject("ADODB.Recordset")
    RS.open sql,Conn,3

    while not RS.EOF
    i
    =i+1
    %>
    Riga <%=i%>: <%=RS("nome")%> <%=RS("cognome")%>

    <%
    rs.movenext
    wend
    RS
    .Close
    Conn
    .Close
    Set RS 
    Nothing
    Set Conn 
    Nothing
    %> 
    Se richiamo la pagina nel browser tutto sembra a posto; tuttavia se apro il sorgente HTML della pagina ho questo:
    Codice PHP:
    Riga 1Andrea                                                                                                                                                                                                                                                         Bianchi                                                                                                                                                                                                                                                        


    Riga 2
    Francesco                                                                                                                                                                                                                                                      Gialli                                                                                                                                                                                                                                                         


    Riga 3
    Luigi                                                                                                                                                                                                                                                          Neri                                                                                                                                                                                                                                                           


    Riga 4
    Mario                                                                                                                                                                                                                                                          Rossi 
    Come mai tutti questi spazi e questa formattazione così strana?
    Ho pensato che possa dipendere dal fatto che il tipo di dati nel DB è un varchar(255) e che lui sulla pagina si porti appresso tutti i 255 caratteri. Può essere?
    In questo caso cosa dovrei fare?

    Besos.
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  2. #2
    Se stampi la riga così:

    codice:
    <%
    ...
    while not RS.EOF 
        i=i+1 
    
        Response.Write("Riga " & i & ": " & RS("nome") & " " & RS("cognome") & "
     ")
    
    rs.movenext 
    wend 
    ...
    %>
    succede lo stesso?

    In alternativa/accoppiata prova a fare un trim dei campi recordset Trim(Rs("nome"))

    xxx

  3. #3
    Sei decisamente il mio serpentello preferito!!


    Dunque, col primo metodo non cambia nulla e ci avevo già provato, mentre con il Trim effettivamente risolvo il problema.
    Ma questo significa che ogni volta che richiamo un campo devo utilizzare il Trim? Una bella scocciatura!!!
    Ma non esiste qualcosa di permanente tipo l'ignore.whitespace dell'XML?
    O forse sbaglio il tipo di campo nel DB? A dir la verità ho provato anche con il nchar ma si comporta allo stesso modo.

    Mumble mumble.....
    :master:
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  4. #4
    la lettura del db NON si porta appresso gli spazi se tu non li hai messi nel db: ergo, con ogni probabilità il campo CONTIENE gli spazi (che non dovrebbe contenere). controlla

  5. #5
    Grande Optime!!!!
    Effettivamente gli spazi sono nel DB, non avevo ricontrollato.... E ho chiarito l'arcano anche sulla questione "chi ce l'ha messi?".

    Io ho scritto i dati nelle celle poi quando ho provato a cambiare il tipo di campo da varchar a nchar (e voi penserete: perchè non te le tieni in tasca quelle manacce???.....) il DB stesso mi ha aggiunto tutti gli spazi fino ad arrivare a 255.

    Ok, grazie a tutti delle dritte, spero servirà a qualche altro smanettone come la sottoscritta!

    Besos!
    Sto ancora imparando.... Chiedo comprensione!
    !...Send ME a message...!

  6. #6
    Originariamente inviato da Picciola
    Sei decisamente il mio serpentello preferito!!
    xxx

  7. #7
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    I campi di tipo char, nchar si estendono per tutta la dimensione del campo.
    Così se in un campo nchar(10) viene inserita una stringa di 3 caratteri, i restanti 7 vengono riempiti con il carattere di spaziatura.
    Questo non succede con il varchar (char variabile)
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

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 © 2026 vBulletin Solutions, Inc. All rights reserved.