Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Aggiornamento database

  1. #1

    Aggiornamento database

    Sto usando questo codice per tenere aggiornati 2 database,il problema è che riesco ad aggiornare record presenti ma non ad inserirne di nuovi.


    <%
    Dim objFile
    Set objFile = Server.CreateObject ("Scripting.FileSystemObject")
    If objFile.FileExists (Server.MapPath("dati/prova.mdb")) Then
    Response.Write "I listini sono stati aggiornati!"
    Dim LocalConn
    Set LocalConn = Server.CreateObject("ADODB.Connection")
    LocalConn.ConnectionString="Provider=Microsoft.Jet .OLEDB.4.0;Data Source=C:\dati\prova.mdb"
    LocalConn.open

    pathdb = Request.ServerVariables("APPL_PHYSICAL_PATH") & "aggdata/dati/prova1.mdb"

    Session("ConnInfo")="Provider=Microsoft.Jet.OLEDB. 4.0;Data Source=" & pathdb

    Dim RemoteConn
    Set RemoteConn = Server.CreateObject("ADODB.Connection")
    RemoteConn.ConnectionString=Session("ConnInfo")
    RemoteConn.open

    SqlTmp = ""
    SqlTmp = SqlTmp & " select *"
    SqlTmp = SqlTmp & " from ARTICOLI"

    Set Localtable = LocalConn.Execute(SqlTmp)

    Do While Not Localtable.EOF

    SqlTmp = ""
    SqlTmp = SqlTmp & " select * "
    SqlTmp = SqlTmp & " from ARTICOLI"
    SqlTmp = SqlTmp & " where id=" & LocalTable("id")
    Set Remotetable = RemoteConn.Execute(SqlTmp)

    if Remotetable.EOF then
    Set TableInsert = Server.CreateObject("ADODB.Recordset")
    TableInsert.Open ARTICOLI,RemoteConn,2,3,&H0002
    TableInsert.AddNew

    TableInsert("id") = LocalTable("id")
    TableInsert("articolo") = LocalTable("articolo")
    TableInsert.Update

    else
    if Remotetable("id") = LocalTable("id") then
    SqlTmp = ""
    SqlTmp = SqlTmp & " update ARTICOLI "
    SqlTmp = SqlTmp & " set articolo = '" & LocalTable("articolo") &"'"
    SqlTmp = SqlTmp & " where ID=" & LocalTable("id")
    Set Remotetable = RemoteConn.Execute(SqlTmp)
    end if
    end if
    Localtable.Movenext

    Loop

    RemoteConn.Close
    Set RemoteConn = Nothing
    LocalConn.Close
    Set LocalConn = Nothing
    Else
    Response.Write "I listini non sono aggiornati."
    End If
    Set objFile = Nothing
    %>

  2. #2
    Perchè usi la sintassi

    codice:
    update ARTICOLI
    L'inserimkento prevede una sintassi differente usando INSERT e le specifiche di inserimento.

  3. #3
    Avevo avuto lo stesso problema con un mio script - contatore di accessi, e lo avevo risolto sostituendo alla linea:

    codice:
    if Remotetable.EOF then

    la linea:

    codice:
    if Remotetable.recordcount < 1 then
    Fai una prova..........

    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  4. #4
    x Weppos:

    Ciao W.......mi sembra di avere capito che l'update comunque funziona, l'inserimento di un nuovo record invece no.

    Effettivamente viene fatto l'update solo nel caso che il record esista, non dovrebbe dare problemi...

    Avevo avuto lo stesso problema nel creare un semplice contatore di accessi ispirandomi in parte proprio al tuo...

    La sintassi

    if rs.recordcount<1

    funzionava bene nel caso il record non esistesse, meglio di

    if rs.recordcount=0

    perchè quando era

    rs.eof (cioè il record non esisteva) il valore di

    rs.recordcount era -1 e non zero.....strana questione che poi non avevo più potuto approfondire......
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  5. #5
    Probabilmente l' errore deriva proprio dal fatto che non uso INSERT

  6. #6
    Generalmente anch'io preferisco la sintassi

    sql = "INSERT ecc. ecc.

    ma anche quella usata nel tuo script funziona, hai provato a sostituire quella riga come suggerito sopra?
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  7. #7
    si ma mi restituisce questo errore:

    ADODB.Recordset (0x800A0BB9)
    Gli argomenti non sono di tipo valido, non sono compresi nell'intervallo consentito o sono in conflitto.


    la riga 43 è

    TableInsert.Open ARTICOLI,RemoteConn,1,3,&H0002

  8. #8
    L'errore che ti viene restituito si riferisce al numero o al tipo di dati che passi, devi controllare questo aspetto........se i valori contenuti nelle variabili sono validi, se ci sono tutti, se i nomi-campo sono corretti . . . .
    E' nato www.lombardiamotori.it

    www.universocase.it: il primo portale italiano di annunci immobiliari gratuiti e autogestiti!

  9. #9
    Niente da fare
    ho controllato tutti i campi ed ho sostituito il campo di confronto ID con un altro campo ma l' errore è sempre lo stesso.

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