Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    20

    esecuizione script sql da java

    ciao,
    devo eseguire degli script sql con un programma java.
    il problema è che alla lettura del 'go' contenuto in alcune parti dello script java entra in errore.
    sapete dirmi xkè????
    ho provato a escluderlo,ma in certi casi è necessario eseguire anke il 'go' affinchè lo scrip funzioni.

    codice:
    {
                 
                 if(!h.equals("GO"))                                                            //tolgo il 'GO'
                 {
                     System.out.println("h "+h);
                     r.append(h+"\n ");
                                                                   
                 }
    
             }
             //System.out.println(" exit "+r);
             try
             {
                  stmt1.addBatch(r.toString());                                                 
                  stmt1.executeBatch();                                                       
                  //stmt1.close();                                                              
                  main.db_conn(0,true,"finito.!."+file_update);
                  main.db_conn(0,true,file_update);
                  return;
             }
             catch (SQLException e)
                     {
                         //System.out.println(st.countTokens());
                         System.out.println("query NO:");
                         System.out.println(e.toString());
                         //return;
                         //System.out.println(st.countTokens());
                     }
              
            }
    questo è un pezzo di query che devo eseguire...

    ALTER TRIGGER [dbo].[TRUpd_Racks] ON [dbo].[Racks]
    FOR INSERT, UPDATE
    AS
    DECLARE @RackID int, @UsedInWeldingstation bit
    SET @RackID = (SELECT RackID From Inserted)

    IF (SELECT TOP 1 ISNULL(WeldingStation,'') FROM WeldingStations WHERE
    RackID_1 = @RackID OR RackID_2 = @RackID OR RackID_3 = @RackID ) <> ''
    BEGIN
    UPDATE HHC_Parameters SET ForceParamRefresh = 1
    END
    GO


    ....e questo è l errore.... java.sql.BatchUpdateException: Incorrect syntax near 'GO'.


    grazie.!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    dice che c'è un errore di sintassi vicino "GO", provato ad eseguire lo script direttamente?
    Per capire se è qualcosa che dà fastidio a java oppure è lo script che non va

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    20
    si da sql server nessun problema....
    anzi a dir la verità,da sql funziona se lo si mette a capo...del tipo:

    BEGIN
    UPDATE HHC_Parameters SET ForceParamRefresh = 1
    END
    GO

    ok,funziona;
    se

    BEGIN
    UPDATE HHC_Parameters SET ForceParamRefresh = 1
    END GO

    no,non và in sql server...xò non sò se può essere questo che magari può dar fastidioa java,dato che lo script lo eseguo riga x riga.

    grazie cmq.!

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    prova a metterlo esattamente nella forma in cui va su sql server (cioè a capo)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    20
    ma lo faccio con

    codice:
    r.append(h+"\n ");
    che porta a capo ogni riga....

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    lasci uno spazio dopo \n, forse gli dà fastidio quello spazio

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    20
    provato di tutto.!!!.
    davvero mi sembra strana sta cosa.!.

  8. #8
    Provato con \r\n? Magari il server vuole anche un carriage return.... Sopratutto se il server è Linux. il carattere "a capo" diventa \r\n se non sbaglio...

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    20
    risolto così:

    leggo lo script finkè nn trovo il 'GO'.
    a quelo punto eseguo quello ke ho letto,poi svuoto la stringa e continuo a leggere fino al prox 'GO'....

    grazie a tutti cmq.!.

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.