Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 25

Discussione: ERRORE - Sincro DB

  1. #1

    ERRORE - Sincro DB

    Ciao a tutti...
    Ho preso questo script dalla sezione ASP di html.it:
    codice:
    <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
    
    <%
    'Stringa per la connessione
    cString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("mdb-database/sincro_database_coppa.mdb")
    
    'creo e apro la connessione
    Set objConn=Server.CreateObject("ADODB.Connection")
    objConn.Open cstring
    
    'creo e apro il primo recordset, con i dati da utilizzare per l'aggiornamento
    set rs1 = server.createobject("ADODB.recordset")
    sql1 = "select * from contratti_temp"	
    rs1.open sql1, objconn
    
    set rs2 = server.createobject("ADODB.recordset") 'creo il secondo recordset, sulla tabella da aggiornare
    
    do until rs1.eof   'per ogni record esistente nella prima tabella.....	
    	
    	sql2 = "select * from contratti where id = "&rs1("id")&""   '...cerco il record corrispondente nella seconda tabella
    	rs2.open sql2, objconn		'apro il secondo recordset
    		
    		if rs2.eof then  'se il record non esiste nella seconda tabella.......
    			
    			'.....lo creo
    			sql3 = "insert into contratti  (id)  values ('"&rs1.fields.item("id").value&"')" 
    			objconn.execute sql3
    		
    		end if
    
    		for each campo in rs1.fields '.... e poi per ognuno dei campi presenti nella prima tabella.....
    		
    			'..... aggiorno il campo corrispondente del record corrispondente nella seconda tabella
    			sql4 = "update contratti set "&campo.name&"="&campo.value&" where id="&rs1.fields.item("id").value&""
    			objconn.execute sql4
    
    		next
    
    	rs2.close	'chiudo il secondo recordset....
    
    rs1.movenext   '.... e passo al record successivo nella prima tabella
    loop
    
    set rs2 = nothing   'distruggo il secondo recordset
    
    rs1.close			'chiudo e distruggo il primo recordset
    set rs1 = nothing
    
    'chiudo e distruggo la connessione
    objConn.close
    set objconn=nothing
    
    'notifico che la procedura è andata a buon fine
    response.write("
    
    
    
    
    
    
    ")
    response.write("<div align='center'>Aggiornamento effettuato!</div>")
    %>
    mi da questo errore...:

    Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

    [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

    /sincro.asp, line 83
    come posso risolvere...?

    ps... lo script mi limita ad usare un formato capo uguale per tutti i campi... ma io ho le due tabelle con tutti campi "testo", meno uno che è "numerico", ed uno "data"...come posso intervenire?

    grazie tante per l'attenzione

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Al posto di questo:
    codice:
    		sql4 = "update contratti set "&campo.name&"="&campo.value&" where id="&rs1.fields.item("id").value&""
    			objconn.execute sql4

    scrivi questo:
    codice:
    		sql4 = "update contratti set "&campo.name&"="&campo.value&" where id="&rs1.fields.item("id").value&""
    response.write sql4&"
    "
    			'objconn.execute sql4
    Vediamo cosa vedi a video.

    Roby

  3. #3
    mi stampa a video una cosa del genere:

    ...
    update contratti set codice_contratto=2300000101 where id=7
    update contratti set nome_giocatore= where id=7
    update contratti set id_giocatore= where id=7
    update contratti set nome_squadra= where id=7
    update contratti set id_squadra=0 where id=7
    update contratti set tipo_contratto= where id=7
    update contratti set valore_contratto=0 where id=7
    update contratti set Titolare= where id=7
    update contratti set stato=9 where id=7
    update contratti set id=7 where id=7
    update contratti set inserimento=22/12/2006 12.52.05 where id=7
    ...
    per tutti i record presenti

    e poi in fondo scrive: "Aggiornamento effettuato!"

    dove devo intervenire...?

    ti ringrazio per l'aiuto

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Come vedi alcune query sono incomplete mancando alcune informazioni (dopo l'uguale non c'è nulla) ed l'ultima uqery è sbagliata, devi usare # quando nella query metti una data destinata ad un campo data/ora.

    Roby

  5. #5
    Originariamente inviato da Roby_72
    Come vedi alcune query sono incomplete mancando alcune informazioni (dopo l'uguale non c'è nulla) ed l'ultima uqery è sbagliata, devi usare # quando nella query metti una data destinata ad un campo data/ora.

    Roby
    non ho capito bene dove devo intervenire...
    lo script da errore perchè ci sono dei campi vuoti? (alcuni campi saranno sempre vuoti)

    e per ladata,dove devo intervenire?

    ti ringrazio per l'attenzione

  6. #6

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non so bene quello che devi fare ma è chiaro che una query del genere:

    codice:
    update contratti set id_giocatore= where id=7
    non può funzionare perché l'id del giocatore è assente.
    Dove prendi il valore da inserire?

    Roby

  8. #8
    l'id di riferimento non è "id_giocatore" ma "id"

    quel campo tiene solo traccia di chi ha inserito il recod...

    si può risolvere la cosa?

    Ti ringrazio

  9. #9
    ma cosa devi fare in pratica?

  10. #10
    devo portare i revcord di una tabella in un'altra... e se i record esistono vanno aggiornati...

    quella era l'unica soluzione trovata...

    hai alternative?

    grazie

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 © 2026 vBulletin Solutions, Inc. All rights reserved.