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

    [VB.NET] Copiare dati da un database a un altro database protetto da password

    Salve. Ho esigenza di copiare i dati da un database Access97 ad un altro database Access97, questo più o meno ho capito come farlo, ma il problema è che quando va ad eseguire il comando sql per copiarlo mi dice password non valida. Il fatto è che io mi connetto ad un solo database... l'altro lo fa in automatico senza che io gli dia i parametri, la mia domanda è come faccio a dargli la password prima che esegua il comando sql?

    Il codice che uso è questo:

    codice:
    Dim objConnection As New
    OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Programmi\db1.mdb;Persist Security Info=False;Jet OLEDB:Database Password=pass")        
    Dim tr As OleDb.OleDbTransaction         
    objConnection.Open()              
    tr = objConnection.BeginTransaction(IsolationLevel.ReadCommitted)         
    Dim Cmd As New OleDb.OleDbCommand("", objConnection, tr)            
    Cmd.CommandText = "insert into tabella select * from tabella in 'c:\\Programmi\db2.mdb'"         
    Cmd.ExecuteNonQuery()         
    tr.Commit()          
    Cmd.Parameters.Clear()         
    objConnection.Close()

  2. #2
    Il codice funziona, ho anche verificato, ma funziona solo se il database di destinazione non è protetto da password... come si fa a dirgli la password?

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Se ha la password è dura...
    Provai anch'io tempo fa (in VB6) ma non c'è stato nulla da fare.
    Ho cercato anche sul web, ma non sembra proprio fattibile

    Alla fine mi sono arreso ed ho optato per la soluzione drastica:
    azzerare la password, aprire il db, e poi rimetterla.

  4. #4
    E lo si può fare da codice?
    Però mi sembra assurdo che non c'è possibilità di connettersi manualmente al secondo database... e anche che non hanno preso in considerazione che il database potesse essere protetto...
    Ho cercato anch'io sul Web e non sono riuscito a trovare nemmeno una discussione dove si parlava del problema della password quando si copiano i dati da un database all'altro... nessuno protegge i database?

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Seguendo il tuo esempio, questa sintassi dovrebbe permetterti di collegarti al database:

    codice:
    insert into tabella select * from tabella in '' [MS Access;PWD=Password;DATABASE=c:\Programmi\db2.mdb]
    Spero che il percorso del database che hai indicato non sia "effettivo", in quanto la cartella Programmi ha delle peculiarità in Windows, soprattutto in scrittura.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    Il database si trova in una sottocartella della cartella Programmi, comunque adesso non mi da nessun errore, tutto fila liscio, però quando finita l'operazione vado a guardare nel database la tabella di destinazione è ancora vuota... perché adesso non funziona la copia?

  7. #7
    Funziona funziona!!
    Tra una prova e l'altra avevo cancellato la riga di codice dove confermavo la transazione e ovviamente non veniva eseguita nessuna copia... da spararmi
    Grazie infinite, il suggerimento è stato preziosissimo, ormai avevo abbandonato questa strada...

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da alka
    Seguendo il tuo esempio, questa sintassi dovrebbe permetterti di collegarti al database:

    codice:
    insert into tabella select * from tabella in '' [MS Access;PWD=Password;DATABASE=c:\Programmi\db2.mdb]
    Ciao!
    Grande alka !!!

    Anche se non ho capito bene il perchè di quei 2 apici...
    Comunque funziona perfettamente.


  9. #9
    I due apici racchiudevano l'indirizzo del database... forse se viene messo tra i due apici non serve poi indicargli l'indirizzo tra le parentesi quadre?

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non credo, perchè se tolgo gli apici mi da errore.
    Puoi anche sostituire le parentesi quadre con gli apici singoli (ma questo è noto),
    ma non puoi togliere quei 2 apici che vengono prima,
    quindi la seguente istruzione funziona:

    codice:
    sSql = "SELECT * FROM clienti IN '' 'MS Access;PWD=prova;DATABASE=" & msPROVA_PWD & "'"

    mentre questa, senza i 2 apici singoli, non funziona:
    codice:
    sSql = "SELECT * FROM clienti IN 'MS Access;PWD=prova;DATABASE=" & msPROVA_PWD & "'"

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.