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

Discussione: Copia - incolla

  1. #1
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499

    Copia - incolla

    Ciao, ho due database nomi1 e nomi2.
    nomi1 ha le colonne idn e mail
    nomi2 ha le colonne idn2 e mail2

    Vorrei creare un codice che ogni volta che lo attivo, mi controlli tutti i record presenti in nomi1>mail e me li copi in nomi2>mail2

    Le condizioni sono:
    - Se 1record di mail è uguale ad 1record di mail2 (NON VIENE COPIATO)
    - Se non c'è niente da copiare esce un msg di avviso

    Avete un idea?

  2. #2
    devi creare due recordset, uno per ogni tabella e per ogni record del primo fai scorrere tutto il secondo confrontando i campi email.
    se dopo aver fatto scorrere tutto il secondo recordset non hai trovato nessuna coincidenza fai scrivere il nuovo record nel secondo database. altrimenti passi al prossimo record del primo recordset.

    spero sia tutto chiaro...

  3. #3
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    a parole e a logica è quello che pensavo anche io... devo provare a metterlo in pratica...

  4. #4
    prova così:

    codice:
    set rs_nomi1=server.createobject("adodb.recordset")
    sql_nomi1="select * from nomi1"
    rs_nomi1.open sql_nomi1,conn
    if not rs_nomi1.eof then
      do while not rs_nomi1.eof
        set rs_nomi2=server.createobject("adodb.recordset")
        sql_nomi2="select * from nomi2"
        rs_nomi2.open sql_nomi2,conn
        i=0
        do while not rs_nomi2.eof
          if rs_nomi1("email")=rs_nomi2("email") then
            i=i+1
          end if
          rs_nomi2.movenext
        loop
        if i=0 then
          rs_nomi2.addnew
          rs_nomi2("email")=rs_nomi1("email")
          rs_nomi2.update
        end if
        rs_nomi2.close
        set rs_nomi2=nothing
        rs_nomi1.movenext
      loop
      rs_nomi1.close
      set rs_nomi1=nothing
    end if

  5. #5
    Allora funziona?

  6. #6
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Scusami, ma sto lavorando a tanti progetti insieme... mi ci metto ora a provare.. ti farò sapere al più presto.
    Grazie

  7. #7
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Il set di record corrente non supporta l'aggiornamento. Potrebbe trattarsi di una limitazione del provider o del tipo di blocco selezionato.

    Questo è l'errore dove incontra il comando addnew

  8. #8
    prova così:

    codice:
    set rs_nomi1=server.createobject("adodb.recordset")
    sql_nomi1="select * from nomi1"
    rs_nomi1.open sql_nomi1,conn
    if not rs_nomi1.eof then
      do while not rs_nomi1.eof
        set rs_nomi2=server.createobject("adodb.recordset")
        sql_nomi2="select * from nomi2"
        rs_nomi2.open sql_nomi2,conn,3,3 
        i=0
        do while not rs_nomi2.eof
          if rs_nomi1("email")=rs_nomi2("email") then
            i=i+1
          end if
          rs_nomi2.movenext
        loop
        if i=0 then
          rs_nomi2.addnew
          rs_nomi2("email")=rs_nomi1("email")
          rs_nomi2.update
        end if
        rs_nomi2.close
        set rs_nomi2=nothing
        rs_nomi1.movenext
      loop
      rs_nomi1.close
      set rs_nomi1=nothing
    end if

  9. #9
    Utente di HTML.it L'avatar di semolino
    Registrato dal
    Nov 2004
    Messaggi
    1,499
    Ok, ma cosa significa quel 3,3?

    Ora da il seguente errore:
    Microsoft JET Database Engine (0x80040E21)
    Il campo "tblMailingList.Email" non può contenere un valore Null in quanto la proprietà Required per questo campo è impostata a True. Immettere un valore nel campo.
    /testm.asp, line 34
    In pratica nella prima dabella, dove legge le mail, ci sono alcuni record che sono vuoti; in questo caso andrebbe ad incollare nella seconda anche i record vuoti. Dato che la seconda tabella non accetta valori nulli, mi da errore.
    Dovrei fare in modo che se il campo è vuoto di tralasciarlo.

  10. #10
    prova ad aggiungergli questo controllo:

    codice:
    set rs_nomi1=server.createobject("adodb.recordset")
    sql_nomi1="select * from nomi1"
    rs_nomi1.open sql_nomi1,conn
    if not rs_nomi1.eof then
      do while not rs_nomi1.eof
       if rs_nomi1("email")<>"" then
        set rs_nomi2=server.createobject("adodb.recordset")
        sql_nomi2="select * from nomi2"
        rs_nomi2.open sql_nomi2,conn,3,3 
        i=0
        do while not rs_nomi2.eof
          if rs_nomi1("email")=rs_nomi2("email") then
            i=i+1
          end if
          rs_nomi2.movenext
        loop
        if i=0 then
          rs_nomi2.addnew
          rs_nomi2("email")=rs_nomi1("email")
          rs_nomi2.update
        end if
        rs_nomi2.close
        set rs_nomi2=nothing
        rs_nomi1.movenext
       end if
      loop
      rs_nomi1.close
      set rs_nomi1=nothing
    end if
    e il 3,3 sono due numeri che indicano il modo in cui aprire il database.
    prova ad andare a vedere la guida di asp sul sito.
    mi sembra di aver visto che li spiega.

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.