Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [SqlServer] Anomalia visualizzazione query

    Ciao! Ho un problema che mi sembra davvero strano ma non riesco a venirne a capo.
    Ho una pagina asp già fatta che in tutto deve visualizzarmi 30 campi, ed è strutturata con circa una decina di recordset a partire da un ID che viene passato.
    3-4 di questi recordset sono tutti sulla stessa tabella, anzichè fare una unica SELECT di circa 10 campi sulla stessa tabella, questa è stata spezzata prendendo 2-3 campi per volta.
    Insomma un delirio anche a livello di leggibilità.

    Per alcuni motivi devo rifare questa pagina, e ho pensato di fare una query unica in sql server in modo da recuperare tutti i 30 campi che mi servono.
    In asp mi limito a questo:
    codice:
    set rsDettTicket = db.execute("SELECT * FROM W_StampaChiamata WHERE Ticket = '" & varTicket & "'")
    if not rsDettTicket.eof then
      MI COSTRUISCO LA STRUTTURA DELLA PAGINA CON LE RESPONSE.WRITE DEI CAMPI
    end if
    Il problema è che mi viene visualizzato solo il contenuto di 3 campi , mentre il resto risulta vuoto ma non è così! Infatti se lo stesso Sql lo inserisco direttamente nel db, mi estrae tutto ciò di cui ho bisogno.

    C'è un modo per aggirare questo ostacolo? O devo per forza tornare alla pagina originale creandomi tanti recordset in modo da spezzare il recupero dei campi? :master:

  2. #2
    ti aiuterei se ti capirei

  3. #3
    ok ok, ci riprovo

    Ho una pagina asp (non fatta da me) che recupera, a partire da 1 id, dei dati da visualizzare in una tabella html.
    I dati vengono recuperati tramite tanti passaggi di apertura di vari recordset che recuperano 1 o 2 campi alla volta dalla stessa tabella, anzichè in un colpo solo.
    Ad esempio:

    set rs1 = db.execute ("Select campo1, campo2, campo3 from tab1 where id='" & id & "'")
    set rs2 = db.execute ("Select campo4, campo5, campo6 from tab1 where id='" & id & "'")
    set rs3 = db.execute ("Select campo from tab2 where id='" & tab1("id") & "'")
    set rs4 = db.execute ("Select campo10 from tab3 where id='" & tab2("id") & "'")

    ecc.....


    Io devo sistemare questa pagina per aggiungere dei controlli, e siccome com'è adesso è illeggibile, ho creato una query in Sql Server, in modo da avere già tutti i campi che mi servono e richiamarli seccamente dalla mia pagina asp aprendo 1 solo recordset.
    Quindi faccio così:

    codice:
    strSql = "SELECT * FROM Mia_Query WHERE Ticket= '" & varTicket & "'"
    set rsDettTicket = db.execute(strSql)
    response.write strSql
    If NOT rsDettTicket.EOF OR NOT rsDettTicket.BOF Then
      response.write nomecampo1
      response.write nomecampo2
      response.write nomecampo3
      response.write nomecampo4
      response.write nomecampo5
    end if
    Quando faccio questo, mi viene visualizzato il contenuto di 1 o 2 campi al massimo dopodichè il resto è come se risultasse vuoto quando in realtà sono tutti valorizzati.
    Non capisco quale sia il problema


    Di seguito riporto il codice che è salvato come view "Mia_Query" in Sql Server.

    codice:
    SELECT     Tabella_1.IDProtocollo AS Ticket, Tabella_1.Data AS Data, Tabella_1.RispostaDettaglio AS Soluzione, 
                          Tabella_1.Domanda AS Problema, Tabella_1.Urgenza AS Urgenza, Tabella_2.Piano AS Piano_ticket, 
                          Tabella_2.Stanza AS Stanza_ticket, Tabella_2.Scala AS Scala_ticket, 
                          Tabella_5.Descrizione AS Commessa, Tabella_3.Contatto AS Riferimento, Tabella_3.Interno AS Telefono, 
                          Tabella_4.Cognome AS Settore, Tabella_9.Cognome + ' ' + Tabella_9.Nome AS Tecnico, 
                          Tabella_8.Articolo AS Articolo, Tabella_8.SerialNumber AS SerialNumber, Tabella_8.Cespite AS Cespite,
                           Tabella_10.Descrizione AS TipoChiamata, Tabella_11.Nome AS Indirizzo, 
                          Tabella_7.[In Data] AS Data_Informativa, lddb.Computer.LastUpdInvSvr AS Data_LNDK, 
                          Tabella_6.Scala AS Scala_asset, Tabella_6.Piano AS Piano_asset, 
                          Tabella_6.Stanza AS Stanza_asset, Tabella_6.[Data ultimo agg] AS Data_HDA, 
                          Tabella_6.Servizio AS Servizio_asset, Tabella_6.Codana AS Codana, 
                          Tabella_1.IDProtocolloHardware AS IDProtocolloHardware, Tabella_8.IDCategoria AS IDCategoria, 
                          Tabella_1.IDGruppo AS IDGruppo
    FROM         Tabella_1 LEFT OUTER JOIN
                          Tabella_5 ON Tabella_1.IDCommessa = Tabella_5.IDProtocollo LEFT OUTER JOIN
                          Tabella_3 ON Tabella_1.IDRiferimento = Tabella_3.IDRiferimento LEFT OUTER JOIN
                          Tabella_4 ON Tabella_1.IDFornCli = Tabella_4.IDCliente LEFT OUTER JOIN
                          Tabella_9 ON Tabella_1.IDPersonaleInCarico = Tabella_9.IDTecnico LEFT OUTER JOIN
                          Tabella_8 ON Tabella_1.IDProtocolloHardware = Tabella_8.IDProtocollo LEFT OUTER JOIN
                          Tabella_10 ON Tabella_1.Tipo = Tabella_10.IDTipo LEFT OUTER JOIN
                          Tabella_11 ON Tabella_1.IDPosizione = Tabella_11.IDProtocollo LEFT OUTER JOIN
                          Tabella_2 ON Tabella_1.IDProtocollo = Tabella_2.IDProtocollo LEFT OUTER JOIN
                          DBDIVERSODALLEALTRETAB.Computer ON Tabella_8.Cespite = DBDIVERSODALLEALTRETAB.Computer.DeviceName LEFT OUTER JOIN
                          Tabella_6 ON Tabella_8.IDProtocollo = Tabella_6.IDProtocollo LEFT OUTER JOIN
                          Tabella_7 Tabella_7 ON Tabella_3.IDRiferimento = Tabella_7.IDProtocollo

  4. #4

  5. #5
    è una vista

  6. #6
    quindi la richiami con

    SELECT * FROM MyVista

    giusto?

    e dentro QA funzia, giusto?

  7. #7
    esatto!
    il bello è che nella stessa pagina, tramite lo stesso filtro apro un'altra vista con tantissimi campi su cui faccio dei test, e di tutti quelli che ho a disposizione faccio la response.write di solo 6 campi che vengono visualizzati correttamente
    quindi non capisco, non credo sia un problema di quantità dei dati nella query :master:

  8. #8
    Ho iniziato a riscrivermi la query a pezzi direttamente nella pagina asp e ho capito il problema VVoVe:

    Ho 2 campi di tipo ntext (lunghezza 16) che mi creano tutto lo scombussolamento!
    Se li tolgo dalla vista (sia scritta interamente in asp, sia richiamata da sql server con una "SELECT * FROM Mia_Query") riesco a leggere e stampare tutti i dati.

    I 2 campi che danno fastidio li ho estratti in un recordset a parte e ho risolto


  9. #9

  10. #10
    Mi pare 2000 ma non sono sicura.
    Non riesco ad accedere direttamente al server del db perciò non posso controllare

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.