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

    ACCESS: Stringa più lunga di 255 caratteri

    Ho la necessità di comporre una stringa per una query SQL più lunga di 255 caratteri. Access non mi da errore ma mi tronca la stringa a 255 caratteri e quindi non è eseguibile su SQL SERVER che non mi da risultati.

    La stringa in questione è questa:

    dim sql as String
    sql = "SELECT MIN(datediff(day,DATA_PRELIEVO,DATA_VALIDAZ)),AVG( datediff(day,DATA_PRELIEVO,DATA_VALIDAZ)),MAX(date diff(day,DATA_PRELIEVO,DATA_VALIDAZ)) FROM C_Depur_Verbali v , C_Depur_Analisi a WHERE v.LAST_MODIF<'" & Me.DataFin & "' AND v.LAST_MODIF >'" & Me.DataFin & "' AND a.ID_VERBALE=v.ID_VERBALE AND a.Id_PARAM='" & RS1("ID_PARAM") & "' AND v.ID_COMMITTENTE'" & Me.listaClienti.ItemData(Me.listaClienti.ListIndex ) & "'"


    Come risolvete il problema delle stringhe lunghe più di 255 caratteri?

    GRAZIE MILLE!

  2. #2
    Non mi risulta che Access abbia un limite così basso, se non erro il limite è attorno ai 64000 caratteri; posta il codice completo, e specifica che linguaggio stai usando.

    In ogni caso, non devi concatenare i parametri in quella maniera nella query; usa piuttosto le query parametriche.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Sono d'accordo con MItaly, ( NB: Come si scrive d'accordo ?? )

    non ho mai avuto quel problema,
    le stringhe ( certamente meglio parametriche ) è meglio scriverle cosi:
    codice:
    dim sql as String
    sql = ""
    sql = sql & "SELECT "
    sql = sql & "MIN(datediff(day,DATA_PRELIEVO,DATA_VALIDAZ)), "
    sql = sql & "AVG(   datediff(day,DATA_PRELIEVO,DATA_VALIDAZ)), "
    sql = sql & " eccetera ....... "
    Ultima modifica di nman; 09-10-2013 a 07:26

  4. #4
    Ciao a Tutti,

    file rifatto da nuovo e tutto funziona....

    Ad un certo punto mentre cercavo di digitare "Dim s as String" Access crashava tutte le volte.

    Quindi ho ripreso un file di Backup, ho riscritto tutto il codice che lì non funzionava e ora funziona.

    Non so che dire....

    GRAZIE A TUTTI!

  5. #5
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Comunque per mia "cultura" mi sono fatto un esperimento:

    il risultato è che:
    - Il limite dei caratteri per una stringa scritta su riga unica è di 1014

    - il limite dei caratteri per una stringa scritta su righe multiple è di oltre 91000

    NB: Access2013

    codice:
    Private Sub cmd0_Click()
    '  cmd0  è un pulsante di comando su una maschera
    
    Dim SrGi As String
    SrGi = ""
    SrGi = SrGi & "12345678901234567890123456789012345678901234567890"
    SrGi = SrGi & "12345678901234567890123456789012345678901234567890"
    ' eccetera fino a 91000 caratteri è andata bene
    
    Dim SrSb As String
    SrSb = "2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111"
    ' questi sono 1014 caratteri  di piu non ne posso scrivere su riga unica
    
    Me.TeGi.Value = SrGi
    Me.TeSb.Value = SrSb
    ' Visualizzo le 2 stringhe su semplici caselle di testo
    
    Me.LeGi = Len(SrGi)
    Me.LeSb = Len(SrSb)
    ' Visualizzo la lunghezza delle 2 stringhe su caselle di testo
    
    Me.Testo6.SetFocus
    ' sposto il focus
    
    End Sub
    Ultima modifica di nman; 10-10-2013 a 07:14

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.