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

    [VB.NET 2005] Gestione variabili stringhe lunghe

    Ciao a tutti,
    stò realizzando un programma che prevede, per la sezione di analisi, delle query SQL complesse e lunghe (quella più lunga se stampata riempie 1,5 pagine di word) che devo far eseguire nel codice. Per fare questo memorizzo queste query in variabili string ma qua nasce il problema, essendo lunghe, devo manualmente impostare su ogni riga le " iniziali e " & _ alla fine della stessa.

    Volevo sapere se ci sono tipo dei "marcatori" di indicare l'inizio e la fine di una variabile stringa oppure, qualora non ci fossero se c'è un modo un pò più semplice per gestire queste stringhe.

    Grazie a tutti per la collaborazione.
    Saluti
    Alessandro

  2. #2
    usa la classe stringbuilder es.
    Dim sb as New StringBuilder
    sb.AppendLine(tuastringa)
    ....
    dim res as String
    res = sb.ToString

    http://msdn.microsoft.com/library/it...classtopic.asp
    Saluti a tutti
    Riccardo

  3. #3
    Forse non mi sono spiegato, il mio problema non è relativo alla dimensione massima di una variabile string, è relativa a come scrivere più semplicemente il codice, ho provato ad usare la funzione che mi hai suggerito ma devo sempre usare le " iniziali e " & _ alla fine.

    Io ho un'struzione tipo questa:

    codice:
                myadp.SelectCommand = New MySqlCommand("SELECT Tipo, curTotLordo, numPratiche, curMedioPratica, curLordo6, numPratiche6, curMedioPratica6, curLordo3, numPratiche3, curMedioPratica3 " & _
                                                        "FROM (SELECT intIdCustomer, 'REQUESTED' as Tipo, sum(curTotLordo) as curTotLordo, sum(numPratiche) as numPratiche, sum(curMedioPratica) as curMedioPratica, sum(curLordo6) as curLordo6, sum(numPratiche6) as numPratiche6, sum(curMedioPratica6) as curMedioPratica6, sum(curLordo3) as curLordo3, sum(numPratiche3) as numPratiche3, sum(curMedioPratica3) as curMedioPratica3 " & _
                                                        "FROM (SELECT intIdCustomer, sum(curBudget) as curTotLordo, count(intId) as numPratiche, ROUND(avg(curBudget),2) as curMedioPratica, 0 as curLordo6, 0 as numPratiche6, 0 as curMedioPratica6, 0 as curLordo3, 0 as numPratiche3, 0 as curMedioPratica3 " & _
                                                        "FROM tf_head " & _
                                                        "GROUP BY intIdCustomer " & _
                                                        "UNION SELECT intIdCustomer, 0 as curTotLordo, 0 as numPratiche, 0 as curMedioPratica, sum(curBudget) as curLordo6, count(intId) as numPratiche6, ROUND(avg(curBudget),2) as curMedioPratica6, 0 as curLordo3, 0 as numPratiche3, 0 as curMedioPratica3 " & _
                                                        "FROM tf_head " & _
                                                        "WHERE dtaApertura BETWEEN DATE_SUB(CURRENT_DATE(),INTERVAL 6 MONTH) AND CURRENT_DATE() " & _
                                                        "GROUP BY intIdCustomer " & _
                                                        "UNION SELECT intIdCustomer, 0 as curTotLordo, 0 as numPratiche, 0 as curMedioPratica, 0 as curLordo6, 0 as numPratiche6, 0 as curMedioPratica6, sum(curBudget) as curLordo3, count(intId) as numPratiche3, ROUND(avg(curBudget),2) as curMedioPratica3 " & _
                                                        "FROM tf_head " & _
                                                        "WHERE dtaApertura BETWEEN DATE_SUB(CURRENT_DATE(),INTERVAL 3 MONTH) AND CURRENT_DATE() " & _
                                                        "GROUP BY intIdCustomer) AS A " & _
                                                        "GROUP BY intIdCustomer " & _
                                                        "UNION SELECT intIdCustomer, 'POSITIVE' as Tipo, sum(curTotLordo) as curTotLordo, sum(numPratiche) as numPratiche, sum(curMedioPratica) as curMedioPratica, sum(curLordo6) as curLordo6, sum(numPratiche6) as numPratiche6, sum(curMedioPratica6) as curMedioPratica6, sum(curLordo3) as curLordo3, sum(numPratiche3) as numPratiche3, sum(curMedioPratica3) as curMedioPratica3 " & _
                                                        "FROM (SELECT intIdCustomer, sum(tq_head.curAmountTot) as curTotLordo, count(tf_head.intId) as numPratiche, ROUND(avg(tq_head.curAmountTot),2) as curMedioPratica, 0 as curLordo6, 0 as numPratiche6, 0 as curMedioPratica6, 0 as curLordo3, 0 as numPratiche3, 0 as curMedioPratica3 " & _
                                                        "FROM tf_head INNER JOIN tq_head ON tf_head.intId=tq_head.intIdTF " & _
                                                        "WHERE strStatoTF='02' " & _
                                                        "GROUP BY intIdCustomer " & _
                                                        "UNION SELECT intIdCustomer, 0 as curTotLordo, 0 as numPratiche, 0 as curMedioPratica, sum(tq_head.curAmountTot) as curLordo6, count(tf_head.intId) as numPratiche6, ROUND(avg(tq_head.curAmountTot),2) as curMedioPratica6, 0 as curLordo3, 0 as numPratiche3, 0 as curMedioPratica3 " & _
                                                        "FROM tf_head INNER JOIN tq_head ON tf_head.intId=tq_head.intIdTF " & _
                                                        "WHERE strStatoTF='02' AND dtaChiusura BETWEEN DATE_SUB(CURRENT_DATE(),INTERVAL 6 MONTH) AND CURRENT_DATE() " & _
                                                        "GROUP BY intIdCustomer " & _
                                                        "UNION SELECT intIdCustomer, 0 as curTotLordo, 0 as numPratiche, 0 as curMedioPratica, 0 as curLordo6, 0 as numPratiche6, 0 as curMedioPratica6, sum(tq_head.curAmountTot) as curLordo3, count(tf_head.intId) as numPratiche3, ROUND(avg(tq_head.curAmountTot),2) as curMedioPratica3 " & _
                                                        "FROM tf_head INNER JOIN tq_head ON tf_head.intId=tq_head.intIdTF " & _
                                                        "WHERE strStatoTF='02' AND dtaChiusura BETWEEN DATE_SUB(CURRENT_DATE(),INTERVAL 3 MONTH) AND CURRENT_DATE() " & _
                                                        "GROUP BY intIdCustomer) AS A " & _
                                                        "GROUP BY intIdCustomer) AS B " & _
                                                        "WHERE intIdCustomer=?intIdCustomer " & _
                                                        "ORDER BY intIdCustomer, Tipo DESC", dbcon)
    come posso scrivere tutta la stringa averla tutta su una riga e senza dover mettere tutta la sintassi riga per riga. In PHP c'è il marcatore di testo <<<<PIPPO .....<<<<EOFPIPPO, in VB c'è qualcosa di simile?

  4. #4
    Originariamente inviato da xander1979
    Forse non mi sono spiegato, il mio problema non è relativo alla dimensione massima di una variabile string, è relativa a come scrivere più semplicemente il codice, ho provato ad usare la funzione che mi hai suggerito ma devo sempre usare le " iniziali e " & _ alla fine.
    a parte che usare la classe stringbuilder o la classe string non centro con la dimensione massima di una stringa, puoi certamente omettere i segni &_ alla fine
    es.
    tuosb.Append("uffa")
    tuosb.Append(" pero'")
    tuosb.ToString() ' stampa: uffa pero'

    per il resto non mi sembra esista lo stesso comando php di cui parli in vb.net
    Saluti a tutti
    Riccardo

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.