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

    Select e operatore mancante..

    allora ciao a tutti .. ho 2 db da uno devo aggiornare l'altro estraggo i record nel db che contiene gli aggionamenti e con update aggiorno il db vecchio ... questo è il mio codice che sto provando a fare...
    Codice PHP:
    <% ' CONTEOLLO AGGIONAENTI DA FARE PRELEVANDO TUTTI I RECORD DAL DB
    dim rs_agg, sql_agg
    Set rs_agg = Server.CreateObject("ADODB.Recordset") 
    sql_agg = "select  * from agg_descrizioni_extra"
    rs_agg.open sql_agg, dcnDB_ag
    if not rs_agg.eof then
    do until rs_agg.eof
    %>                        
                      <%
                    '
    SE TROVA AGGIORNAMENTI DA FARE FA QUESTO ...
                      
    dim rs_agg2sql_agg2idhoteldescriptiontype_id,description_new,languagecode
                    
                    idhotel
    rs_agg("hotel_id")
                    
    descriptiontype_idrs_agg("descriptiontype_id")
                    
    languagecoders_agg("languagecode")
                    
    description_newrs_agg("description") & ""
                    
    description_new=replace(description_new,"'","''")

                    
    set rs_agg2 Server.CreateObject("ADODB.Recordset"
                    
    sql_agg2 "select * from descrizioni_extra where hotel_id="&idhotel&" and descriptiontype_id="&descriptiontype_id&" and languagecode='"&languagecode&"' "
                    
    rs_agg2.open sql_agg2dcnDB
                    
    if not rs_agg2.eof then
                    
    do until rs_agg2.eof

                            
    'SE TROVA CORRISPONDENZA FA AGGIORNAMNETO ...
                            Dim rs_up, SQL_up
                            SQL_up = "UPDATE descrizioni_extra SET description='"&description_new&"' where hotel_id="&idhotel&" and descriptiontype_id="&descriptiontype_id&" and languagecode='"&languagecode&"' "
                            Set rs_up = Server.CreateObject("ADODB.Recordset")
                            rs_up.open sql_up, dcnDB
                            
                    rs_agg2.movenext 
                    loop 
                    else
                    ' 
    SE NO TROVA CORRISPONDENZA FA INSERIMENTO
                    
    %>
                    
    INSERIMENTO RECORD
                    
    <%
                    
    end if
                    
    rs_agg2.close 
                     set rs_agg2
    =nothing %> 
    ecc.. 
    errore che mi esce ...
    Tipo di errore:
    Microsoft JET Database Engine (0x80040E14)
    Errore di sintassi (operatore mancante) nell'espressione della query 'hotel_id= and descriptiontype_id= and languagecode='''.
    /admin/aggiornamento_db_descr_extra.asp, line 37


    linea 37 rs_agg2.open sql_agg2, dcnDB se stampo la select invece mi da:
    select * from descrizioni_extra where hotel_id=98106 and descriptiontype_id=2 and languagecode='en'
    dove sbaglio

  2. #2
    siccome sei in un ciclo, potrebbe non essere la prima a dar fastidio. metti response.flush invece di response.end e fallo girare

  3. #3
    infatti .. mi stampa 30 select ... non capisco una cosa xrò

    sql_agg2 = "select * from descrizioni_extra where hotel_id="&idhotel&" and descriptiontype_id="&descriptiontype_id&" and languagecode='"&languagecode&"' "

    in questa tabella ho 25 record perchè me ne stampa 30 e poi va in errore ... :master: quello che vorrei fare con il codice è:

    Seleziona tutti i record nuovi e aggiorna il db vecchio se esiste già il record nel vecchio db fai update altrimenti inserisci ...

  4. #4
    25... 30... hai messo rs_agg.movenext?

  5. #5
    si...

    questo è il cod:

    sql_agg = "select * from agg_descrizioni_extra"


    sql_agg2 = "select * from descrizioni_extra where hotel_id="&idhotel&" eccc.. "

    rs_agg2.movenext

    (stampo queste select)


    rs_agg.movenext

  6. #6
    questo è il cod completo cmq:

    Codice PHP:
    <% ' CONTEOLLO AGGIONAENTI DA FARE PRELEVANDO TUTTI I RECORD DAL DB
    dim rs_agg, sql_agg
    Set rs_agg = Server.CreateObject("ADODB.Recordset") 
    sql_agg = "select  * from agg_descrizioni_extra"
    rs_agg.open sql_agg, dcnDB_ag
    if not rs_agg.eof then
    do until rs_agg.eof
    %>
                  
                      
                      <%
                    '
    SE TROVA AGGIORNAMENTI DA FARE FA QUESTO ...
                      
    dim rs_agg2sql_agg2idhoteldescriptiontype_id,description_new,languagecode
                    
                    idhotel
    rs_agg("hotel_id")
                    
    descriptiontype_idrs_agg("descriptiontype_id")
                    
    languagecoders_agg("languagecode")
                    
    description_newrs_agg("description") & ""
                    
    description_new=replace(description_new,"'","''")

                    
    set rs_agg2 Server.CreateObject("ADODB.Recordset"
                    
    sql_agg2 "select * from descrizioni_extra where hotel_id="&idhotel&" and descriptiontype_id="&descriptiontype_id&" and languagecode='"&languagecode&"' "
                    
    rs_agg2.open sql_agg2dcnDB
                    
                    
    if not rs_agg2.eof then
                    
    do until rs_agg2.eof
    ' Stampa la query 
                    Response.Write(sql_agg2) 
                    response.write("
    ")
                    ' 
    Termina l'esecuzione 
                    Response.flush() 
                            '
    SE TROVA CORRISPONDENZA FA AGGIORNAMNETO ...
                            
    Dim rs_upSQL_up
                            SQL_up 
    "UPDATE descrizioni_extra SET description='"&description_new&"' where hotel_id="&idhotel&" and descriptiontype_id="&descriptiontype_id&" and languagecode='"&languagecode&"' "
                            
    Set rs_up Server.CreateObject("ADODB.Recordset")
                            
    rs_up.open sql_updcnDB
                            
    ' Stampa la query 
                            '
    Response.Write(SQL_up
                            
    ' Termina l'esecuzione 
                            
    'Response.End() 


                    rs_agg2.movenext 
                    loop 
                    else
                    ' 
    SE NO TROVA CORRISPONDENZA FA INSERIMENTO
                    
    %>
                    
    INSERIMENTO RECORD
                    
    <%
                    
    end if
                    
    rs_agg2.close 
                     set rs_agg2
    =nothing %> 
                  



    <% 
    rs_agg.movenext 
    loop 
    else%>
    <%
    response.write "Nessun Aggiornamento Disponbile!"%>
    <%
    end if
    rs_agg.close 
     set rs_agg
    =nothing %> 

    </
    body>
    </
    html>
    <%
    dcnDB_ag.close 
    set dcnDB_ag
    =nothing 
    %>

    <%
    dcnDB.close 
    set dcnDB
    =nothing 
    %> 

  7. #7
    non riesco ad andare avanti qualche consiglio ...

  8. #8
    ho rifatto il codice forse un po' + leggibile..

    Codice PHP:

    Set rs_agg 
    Server.CreateObject("ADODB.Recordset"
    sql_agg "select  * from agg_descrizioni_extra"
    rs_agg.open sql_aggdcnDB_ag

    set rs_agg2 
    Server.CreateObject("ADODB.Recordset"

    do 
    until rs_agg.eof

    idag
    =rs_agg("id")
    idhotelrs_agg("hotel_id")
    descriptiontype_idrs_agg("descriptiontype_id")
    languagecoders_agg("languagecode")
    description_newrs_agg("description") & ""
    description_new=replace(description_new,"'","''")
    %>
                            
                      <%
                    
    sql_agg2 "select * from descrizioni_extra where hotel_id="&idhotel&" "&_
                    
    "and descriptiontype_id="&descriptiontype_id&" and languagecode='"&languagecode&"' "
                    
    rs_agg2.open sql_agg2dcnDB
                    
                    
    if  rs_agg2.eof then
                    
                    
    '.....lo creo insert into nometabella
                    sql3 = "insert into descrizioni_extra (id,description,descriptiontype_id,hotel_id,languagecode) " &_
                    "values ("&idag&",'"&description_new&"',"&descriptiontype_id&","&idhotel&",'"&languagecode&"')" 
                    dcnDB.execute sql3 

                    end if 
                    
                    '
    ..... aggiorno il campo corrispondente del record corrispondente nella seconda tabella 
                    SQL_up 
    "UPDATE descrizioni_extra SET description='"&description_new&"' "&_
                            
    "where hotel_id="&idhotel&" and "&
                            
    "descriptiontype_id="&descriptiontype_id&" "&_
                            
    "and languagecode='"&languagecode&"' "
                            
    dcnDB.execute SQL_up

                    rs_agg2
    .close 'chiudo il secondo recordset.... 

                    rs_agg.movenext '
    .... e passo al record successivo nella prima tabella 
                    loop 

                    set rs_agg2 
    nothing 'distruggo il secondo recordset 
                    
                    rs_agg.close '
    chiudo e distruggo il primo recordset 
                    set rs_agg 
    nothing 
                    
                    
    %>
                    
    </
    body>
    </
    html>
    <%
    dcnDB_ag.close 
    set dcnDB_ag
    =nothing 
    %>

    <%
    dcnDB.close 
    set dcnDB
    =nothing 
    %> 
    sempre stesso errore ...

    Errore di sintassi (operatore mancante) nell'espressione della query 'hotel_id= and descriptiontype_id= and languagecode='''.
    /admin/aggiornamento_db_descr_extra.asp, line 36

    questa linea: rs_agg2.open sql_agg2, dcnDB


    il db originale con la tabella descrizioni_extra ha 25 record
    il db con aggiornamenti con la tabella agg_descrizioni_extra ha 30 record

    io volgio aggiornare il db con tabella descrizioni_extra se il record non viene trovato deve essere inserito .. non so dove sbaglio

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    if  rs_agg2.eof then 
    '.....lo creo insert into nometabella 
    else
    '..... aggiorno il campo corrisponde
    end if

    Roby

  10. #10

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.