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

    Riempimento automatico database mssql

    Salve,
    sto cercando di riempire automaticamente un database mssql da uno access ma non mi funziona (non ri riempe il database):
    La pagina iniziale del broswer sara: "http://......./conversione2.asp?id=0"

    <%
    id=request.QueryString("id")

    conto=0

    Do Until conto=50
    conto=1+conto
    id=id+1
    Set conn3 = Server.CreateObject("ADODB.Connection")
    conn3.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/mdb-database/articolimobile.mdb")
    sSql3="SELECT * FROM articolo WHERE id="&id&""
    Set rs3 = Server.CreateObject("ADODB.Recordset")
    rs3.Open sSql3, conn3, 3, 3


    If rs3.EOF=FALSE Then
    Set Conn2 = Server.CreateObject("ADODB.Connection")
    Conn2.Open "Driver={SQL Server};Server=62.149.153.15;Database=MSSql34652;U id=MSSqlxxxxx;Pwd=xxxxxx;"
    Set Rs2=server.CreateObject("ADODB.Recordset")
    Rs2.Open "articolo",Conn2,3,3
    Rs2.AddNew

    Rs2("id") = Rs3("id")
    Rs2("titolo") = Rs3("titolo")
    Rs2("testo") = Rs3("testo")
    Rs2("nota1") = Rs3("nota1")
    Rs2("data") = Rs3("data")
    Rs2("ora") = Rs3("ora")
    Rs2("nota2") = Rs3("nota2")
    Rs2("genere1") = Rs3("genere1")
    Rs2("genere2") = Rs3("genere2")
    Rs2("immagine1") = Rs3("immagine1")
    Rs2("immagine2") = Rs3("immagine2")
    Rs2("immagine3") = Rs3("immagine3")
    Rs2("immagine4") = Rs3("immagine4")
    Rs2("immagine5") = Rs3("immagine5")
    Rs2("autore") = Rs3("autore")
    Rs2("email") = Rs3("email")

    Rs2.update
    Rs2.Close
    Conn2.Close
    Set Rs2 = Nothing
    Set Conn2=Nothing

    end if

    Loop


    rs3.Close
    Set rs3 = Nothing
    conn3.Close
    Set conn3 = Nothing

    %>
    <META HTTP-EQUIV="REFRESH" CONTENT="5; URL=conversione2.asp?id=<%=id%>">


    Dove sbaglio?
    Ciao e grazie in anticipo!

  2. #2
    1. perché fai il giro 50 volte quando l'articolo è uno solo?
    2. fatti stampare il valore di >>> sSql3="SELECT * FROM articolo WHERE id="&id&"" <<< così ti accerti che ID sia passato correttamente

  3. #3
    Guarda che io incremento l'id ad ogni giro per passare al record successivo (faccio ogni 50 record per no andare in timeout visto che risiede su aruba il sito).

    Qualcuno ha una soluzione migliore?

  4. #4
    Originariamente inviato da Mattatore85
    Guarda che io incremento l'id ad ogni giro per passare al record successivo (faccio ogni 50 record per no andare in timeout visto che risiede su aruba il sito).

    Qualcuno ha una soluzione migliore?
    ciao. io la soluzione te l'ho data

  5. #5
    Ora mi riempie il database con tutti i record ma mi copia ogni record 8-12 volte.. perché? Scusa io non ho scritto che dopo l'inserimento di un record deve passare al record successivo. Perché mi copia sempre lo stesso + volte?
    Grazie ancora!

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Questo cos'è??

    Do Until conto=50


    Roby

  7. #7
    Allora copio 50 record alla volta in modo tale da no andare in timeout, arrivato al 50esimo record ricarico la pagina inserendo in request.query l'ID del record successivo in modo da ripetere l'operazione e copiare i successivi 50 record..
    La cosa funge..ma non capisco perché mi copia ogni record 8-10-12 volte... non capisco il motivo ... :master:

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se il contatore su Access ha un salto (record non consecutivi) ti perdi i record...
    Io farei una TOP 50 sulla query di Access e sempre su access metterei ad 1 un campo aggiuntivo in modo da non riprenderlo nella successiva top 50.


    Roby

  9. #9
    questo lavoro lo devi fare una volta soltanto?

  10. #10
    Scutate ma avevo dimenticato di inserire il campo chiave che si incrementa per questo mi scriveva + volte il record.
    Si riempe tutto alla grande.
    Ma ora è sorto un altro problema: ho la necessità che venga copiato il numero essatto dell'id (chiave incrementata) di access nel campo id (sempre chiave incrementata) di mssql .. cioè devo corrispondere.
    Se configuro l'id di mssql come campo numerico normale non ci sono problemi ma se invece lo configuro come chiave mi da questo errore (quando tenta di copire il campo id):

    Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

    Voi direte: "riempilo prima come campo numerico normale e poi lo trasformi come chiave!!" Sono d'accordo ma nel pannello di aruba non si può fare.. se lo trasformo poi in chiave perdo l'incremento automatico è l'identità.

    Voi sapere come posso fare? O sapere come posso evitare quell'errore e scrivere in una chiave?..THZ MILLE ANCORA

    X ROBY: ho fatto un controllo per evitare i record saltati

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.