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

    concatenazione stringa SQL

    ciao a tutti..devo realizzare una stringa di SQL che funga da filtro, solo che non riesco a correggere la sintassi x farla funzionare...la stringa è cosi:

    codice:
     String codice = "pippo";
     String descr = "pippolo";
     String Sql_Filter = "";
    
       if (!codice.equals(""))
    	   {	
    		Sql_Filter = Sql_Filter + " CODICE_ID = 'codice'   "		
    	   }
    	   else  if (!descr.equals(""))   
    	   {	
    	    Sql_Filter = Sql_Filter + " CODICE_SHORT = 'descr'   "		 
    	   }
    	   
    		String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1" + Sql_Filter;

  2. #2
    senza and non potrà mai funzionare:
    codice:
    if (!codice.equals(""))
    {	
         Sql_Filter = Sql_Filter + " and CODICE_ID = 'codice' "		
    }
    else  
          if (!descr.equals(""))   
          {	
              Sql_Filter = Sql_Filter + " and CODICE_SHORT = 'descr' "		 
          }
    inoltre dovresti verificare che il tuo db voglia il ; finale alla query.

    quindi vedi tra queste due quale funziona:
    codice:
    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1" + Sql_Filter";
    //oppure
    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1" + Sql_Filter + ";";

  3. #3
    continua a darmi problemi di connessione anke se ho cambiato il codice...nn mi esegue il filtro..senza di esso funzia..
    ma a questa nn manca un apice???
    codice:
    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1" + Sql_Filter";

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Originariamente inviato da maninblack
    continua a darmi problemi di connessione anke se ho cambiato il codice...nn mi esegue il filtro..senza di esso funzia..
    ma a questa nn manca un apice???
    codice:
    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1" + Sql_Filter";
    Innanzitutto devi stare attento, come ti ha detto stex1984 agli operatori logici.
    Come seconda cosa, non puoi chiudere delle virgolette che non hai aperto (vedi la fine della tua istruzione).
    Poi, devi stare attento anche agli spazi ed eventualmente agli apici (se richiesti), nonché alle eventuali parentesi nelle condizioni WHERE:
    codice:
    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE ((CODICE = '1') AND " + Sql_Filter + ");";
    dove Sql_Filter deve essere una condizione valida e con la corretta sintassi.

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    76
    Più che altro c'è un " in +!

    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1" + Sql_Filter;

    Ma credo che la sintassi corretta sia con il ";" finale:

    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1" + Sql_Filter + ";";


    Hai detto che senza il filtro funziona, cioè se esegui solo

    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE CODICE = 1"

    funziona? Giusto per capire se vuolo o no il ";". Inoltre CODICE di che tipo è? Se è solo numerico allora va bene, ma se è String allora ci vogliono gli apici ... CODECE = '1'

  6. #6
    ma quando i filtri nn ci sono la parentesi di chiusura dove la metto? devo inizializzare sql_Filter con una parentesi?

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    76
    No! Suppongo che strSQL la passi già tra parentesi! Che DB usi?

  8. #8
    x krisc1--->CODICE è un numero e col punto e virgola finale(come hai postato) funzia bene ma commentando i filtri pero'...nn riesco a farla andare cazzarola
    CMQ uso sqlServer

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Scusa un attimo... se non hai i filtri, allora la stringa Sql_Filter sarà una stringa vuota e l'SQL risulterà questo:
    codice:
    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE ((CODICE = '1') AND " + Sql_Filter + ");";
    
    ovvero
    
    String strSQL = "SELECT CODICE_ID FROM TABELLA WHERE ((CODICE = '1') AND " + "" + ");";
    
    ovvero
    
    SELECT CODICE_ID FROM TABELLA WHERE ((CODICE = '1') AND );
    Il che non può funzionare... devi essere tu a testare se i filtri ci sono oppure no. A seconda dei casi devi saper modulare la tua sintassi SQL.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    ma infatti, ho creato i filtri a priori e sembrano giusti:
    codice:
     if (!codice.equals(""))
    	   {	
    		Sql_Filter = Sql_Filter + " AND CODICE_ID = 'codice' ";	
    		  System.out.println(Sql_Filter);
    	   }
    	   else  if (!descr.equals(""))   
    	   {	
    	    Sql_Filter = Sql_Filter + " AND CODICE_SHORT_DESC = 'descr' ";	 
    	    System.out.println(Sql_Filter);
    	   }

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.