Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    4

    [VB2008]copia record di un db in un altro db

    Salve a tutti!
    come da titolo avrei bisogno di copiare i record di un database di sql express2005 in un altro sempre di sql (con la stessa struttura). Sono settimane che provo a fare un codice con vb2008 ma con scarsi risultati, purtoppo non sono molto pratico di questo linguaggio ma con il tsql non credo si possa fare...
    Per ora uso solo una tabella "prova" con un campo int primary key e un altro campo char.
    Se qualcuno riesce a darmi un indizio o a risolvere il problema gliene sarei davvero molto grato, se non sono stato chiaro o mancano info ditemi pure.
    Saluti!

  2. #2
    Utente di HTML.it L'avatar di ybla82
    Registrato dal
    Jan 2009
    Messaggi
    92
    Ciao, se non hai esigenza di scrivere per forza del codice, SQL server offre un tool per l'importazione dati da un altro database: ti permette di scegliere anche sorgente dati in rete.

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: [VB2008]copia record di un db in un altro db

    Originariamente inviato da pox88
    Salve a tutti!
    come da titolo avrei bisogno di copiare i record di un database di sql express2005 in un altro sempre di sql (con la stessa struttura). Sono settimane che provo a fare un codice con vb2008 ma con scarsi risultati, purtoppo non sono molto pratico di questo linguaggio ma con il tsql non credo si possa fare...
    Per ora uso solo una tabella "prova" con un campo int primary key e un altro campo char.
    Se qualcuno riesce a darmi un indizio o a risolvere il problema gliene sarei davvero molto grato, se non sono stato chiaro o mancano info ditemi pure.
    Saluti!
    Le informazioni che dai non sono insufficienti:
    - non si capisce se intendi solo una tabella oppure un'intero database
    - non si capisce se l'istanza è la stessa, oppure sono 2 istanze diverse

    In ogni caso, cerca nel BOL:
    - BULK INSERT (Transact-SQL)
    - BCP


  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    4
    Ciao, se non hai esigenza di scrivere per forza del codice, SQL server offre un tool per l'importazione dati da un altro database: ti permette di scegliere anche sorgente dati in rete.
    Ciao! intendi lo strumento di pubblicazione/sottoscrizione? se intendi quello, volevo evitarlo perchè non è disponibile nella versione express.


    @gibra
    Ciao! devo trasferire i record di tutto il database. Detta in modo semplice, avere un pulsante su un form che mi trasferisca i record di ogni tabella da un db a un altro.
    Grazie del suggerimento del bcp, probabilmente è questa la soluzione, adesso sto provando a usarlo anche se mi si presenta un errore di connessione al server. (sqlstate=s1t00 )
    Avevo gia pensato una cosa simile, cioe trascrivere il database in un file xml con una funzione di vb...ma non mi funzionava!
    Oppure avevo anche pensato alla funzione di sql backup/restore ma non credo vada bene o sbaglio?

    Grazie mille delle risposte!
    Ciao!!

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da pox88
    @gibra
    Ciao! devo trasferire i record di tutto il database.
    [CUT]
    Oppure avevo anche pensato alla funzione di sql backup/restore ma non credo vada bene o sbaglio?
    Dato che è tutto il DB, allora il Backup/Restore può essere la strada giusta.
    Ma questo dipende SE e COME hai impostato le credenziali di accesso per gli utenti e come questo influisce sul nuovo DB se cambi Server/Dominio...


  6. #6
    Ciao.
    Se mostri il codice che hai prodotto finora (senza successo) forse capiamo meglio cosa intendi e riusciamo a darti indicazioni più mirate alle tue intenzioni.

    Facci sapere....
    Ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    4
    Certo ora ve lo posto...questa è la prova con l'xml, che però avevo deciso di abbandonare perchè non mi piace molto come soluzione!

    codice:
      
    
            Dim oCon As New Data.SqlServerCe.SqlCeConnection("server=SQL Server Compact Edition;uid=;pwd=;database=Prova")
            Dim myCommand As Data.SqlServerCe.SqlCeCommand
            Dim strSql As String
            Dim drcm As Data.SqlServerCe.SqlCeDataReader
    
            oCon.Open()
    
            strSql = "Select commes.cod, "
            strSql &= "commes.commes_ID"
            strSql &= "from commes"
            myCommand = New Data.SqlServerCe.SqlCeCommand(strSql, oCon)
            drcm = myCommand.ExecuteReader()
            SalvaRilevaz(drcm)
            drcm.Close()
            oCon.Close()
    
    
    
    Function SalvaRilevaz(ByRef drcm As Data.SqlServerCe.SqlCeDataReader) As String
            SalvaRilevaz = ""
            Dim Rilevaz As String = "\C\Users\Administrator\Desktop\Rilevaz.xml"
    
    
    
            Dim textWriter As New Xml.XmlTextWriter(Rilevaz)
    
            textWriter.WriteStartDocument()
    
            textWriter.WriteComment("file Rilevazione salvato il" & Date.Now)
    
            While drcm.Read()
    
    
                textWriter.WriteStartElement("ami_commes")
    
    
                textWriter.WriteStartElement("dtcod")
                textWriter.WriteString(drcm(0))
                textWriter.WriteEndElement()
    
    
                textWriter.WriteStartElement("mi_commes_ID")
                textWriter.WriteString(drcm(1))
                textWriter.WriteEndElement()
    
     End While
            textWriter.WriteEndElement()
            textWriter.WriteEndDocument()
    
            textWriter.Close()
    
    
            Return Rilevaz
    
    
        End Function

    Il database è "prova", la tabella "commes" e ho considerato due soli campi. L'ho fatto con sqlCE perchè il mio fine ultimo è fare un software per pocket pc! So che sarà piena di errori e cose assurde per questo vi risparmio le altre prove!



    Dato che è tutto il DB, allora il Backup/Restore può essere la strada giusta.
    Solo che non ho idea di come far partire il backup/restore con codici vb...qualche indizio o link utile?

  8. #8
    Primo: Vedi .... se avessi mostrato subito il codice, altri avrebbero evitato di perder tempo a suggerirti cose che non corrispondevano alle tue intenzioni.
    Secondo: Se impostassi OptionStrict On , ti accorgeresti che il parametro passato al costruttore dell'oggetto XmlTextWriter è cannato.
    Modifica il tuo codice in questo modo
    codice:
    Function SalvaRilevaz(ByRef drcm As Data.SqlServerCe.SqlCeDataReader) As String
            SalvaRilevaz = ""
            Dim Rilevaz As String = "C:\Users\Administrator\Desktop\Rilevaz.xml"
    
            Dim textWriter As New Xml.XmlTextWriter(Rilevaz,System.Text.Encoding.ASCII)
            textWriter.WriteStartDocument()
            textWriter.WriteComment("file Rilevazione salvato il" & Date.Now)
    
            While drcm.Read()
                textWriter.WriteStartElement("ami_commes")
                textWriter.WriteStartElement("dtcod")
                textWriter.WriteString(drcm(0))
                textWriter.WriteEndElement()
                textWriter.WriteStartElement("mi_commes_ID")
                textWriter.WriteString(drcm(1))
                textWriter.WriteEndElement()
     End While
            textWriter.WriteEndElement()
            textWriter.WriteEndDocument()
            textWriter.Close()
            Return Rilevaz
        End Function
    Facci sapere....
    Ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    4
    Grazie mille della correzione, ho un paio di problemi con vb appena riesco lo provo!

    Cmq non avevo postato il codice perchè non volevo continuare con quella soluzione, che a mio parere è troppo statica e complessa. Mi interessava sapere metodi alternativi che magari qualcuno di voi conosce, date le mie consocenze limitate in ambito vb!
    Ma ci sono dei comandi per far partire il prompt da codice vb(per poi fare il bcp)?

  10. #10
    Ciao.
    Puoi usare il metodo Start della classe Process.
    Facci sapere...
    Ciao

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.