1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

DESESPERADO!! Preciso de criar funçoes em VB para Backup e Restore de bd em SQL Serve

Discussão em 'Programação' iniciada por Fil__, 19 de Outubro de 2008. (Respostas: 42; Visualizações: 3691)

  1. Fil__

    Fil__ Power Member

    Malta, tal como o topico diz tou DESESPERADO!! Preciso de criar funçoes em VB para Backup e Restore de bd em SQL Server 2005. Ja pesquisei e fartei-me de procurar (macoratti, etc...) e nada. Nao consigo nada de nada a funcionar. Peço-vos... AJUDEM POR FAVOR!!
     
  2. SkylineGTR

    SkylineGTR Power Member

  3. Fil__

    Fil__ Power Member

    Estou a usar este codigo
    Código:
    Dim conn As New OleDbConnection("Provider=SQLOLEDb.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=(local)")
                Dim cm As New OleDbCommand
                cm.CommandText = "backup database master to disk='c:\Test.BAK'"
                cm.Connection = conn
                conn.Open()
                cm.ExecuteNonQuery()
                conn.Close()
    
    mas ele diz que nao encontra o servidor sql. O que estou a fazer de errado?
     
  4. fLaSh_CF

    fLaSh_CF Banido

  5. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Ve assim se ja funca ;)

    dim conn as New SqlConnection("Data Source=xxx;Initial Catalog=xxx;Persist Security Info=True;User ID=xx;Password=xxx")

    Claro corrige isto

    conn.Open()
    cm.Connection = conn
     
  6. [C4]

    [C4] Power Member

    cm.Connection = conn
    conn.Open()

    ou
    conn.Open()
    cm.Connection = conn

    é irrelevante para o caso.
    Atribuis a ligacao e abre-la ou abres a ligacao e atrubuis a ligacao aberta é irrelevante desde que executes o comando depois da ligacao estar aberta.

    O problema esta em: Data Source = (local) . Deve ser Data Souce=localhost
    O comando so é executado em cm.ExecuteNonQuery()
     
  7. Fil__

    Fil__ Power Member

    Experimentei ocmo disseste C4 mas ele diz que o SQL server nao existe
    Código:
            Try
                Dim conn As New OleDbConnection("Provider=SQLOLEDb.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=localhost")
                Dim cm As New OleDbCommand
                cm.CommandText = "backup database master to disk='c:\Test.BAK'"
                cm.Connection = conn
                conn.Open()
                cm.ExecuteNonQuery()
                conn.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    
     
  8. [C4]

    [C4] Power Member

    Tens o sqlserver a correr na mesma maquina onde estas a correr a aplicacao?

    Dica para ciar a connectionstring:
    Criar um ficheiro bla.udl no desktop
    Executar um duplo clique no ficheiro.
    Executar todos os passos para ligar ao servidor: Escolher o provider, a bd , user, pass e Testar a ligacao.
    Se o teste correr bem, gravar (OK).
    Abrir o ficheiro com um editor de texto. A ConnectionString está la em plaintext.
     
    Última edição: 20 de Outubro de 2008
  9. Fil__

    Fil__ Power Member

    Yap C4. Pods ajudar-me?
     
  10. [C4]

    [C4] Power Member

    Posso tentar.
    Qual a BD que estas a utilizar?
    editei o posta anterior para colocar la uma dica para criar a connection string
    pode dar-se o caso de apesar do servidor estar a correr, nao permitir ligacoes.
     
  11. fLaSh_CF

    fLaSh_CF Banido

    Código:
        ''' <summary>
        ''' Faz um backup da base de dados
        ''' </summary>
        ''' <param name="sDir">destino da base de dados</param>
        ''' <param name="sFileName">nome da base de dados</param>
        ''' <param name="sPassword">opcional palavra passe</param>
        ''' <returns>true se ok</returns>
        ''' <remarks>false em caso de erro</remarks>
        Public Function BackUpDataBase(ByVal sDir As String, _
                                       ByVal sFileName As String, _
                              Optional ByVal sPassword As String = "") As Boolean
            Try
                Dim sQuery As String
                Dim sPams() As String = Split(m_sConnectionString.Trim, ";")
                Dim sBD As String = String.Empty
    
                'Extrai o nome da bd a partir da connection string..
                For Each sName As String In sPams
                    If InStr(sName, "DATABASE") Then
                        sBD = sName.Substring(InStr(sName, "SERVER="))
                        If sBD.EndsWith(";") Then
                            sBD.Remove(sBD.LastIndexOf(";"))
                        End If
                    End If
                Next
    
                sQuery = "BACKUP DATABASE '" & sBD & "' " & _
                             "TO DISK = '" & sDir & "' " & _
                             "WITH NAME = '" & sFileName & "', " & _
                             If(String.IsNullOrEmpty(sPassword), "", "PASSWORD = '" & sPassword & "', ") & _
                             "DIFFERENTIAL()"
                'Corre o comando
                Return Me.Execute(sQuery)
            Catch ex As Exception
                RaiseEvent OnError("BackUpDataBase", ex)
            End Try
        End Function
    Para mais info.. vê este post: http://www.techzonept.com/showthread.php?t=350062

    Compr.
     
  12. Fil__

    Fil__ Power Member

    Estou a usar uma bd que criei no sql server management. Chama-se mesmo bd e coloquei-a numa pasta que esta no c:\dados\bd.mdf

    Código:
       Try
                Dim conn As New OleDbConnection("Provider=SQLOLEDb.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=localhost")
                Dim cm As New OleDbCommand
                cm.CommandText = "backup database master to disk='c:\Test.BAK'"
                cm.Connection = conn
                conn.Open()
                cm.ExecuteNonQuery()
                conn.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
    
    Esta e a string que o meu form tem logo ao inicio, pode ser que de pa te ajudar
    Código:
        Dim Conx As String = "Data Source=.\SQLEXPRESS;AttachDbFilename='C:\Dados\bd.mdf';Integrated Security=True;Connect Timeout=30;User Instance=True"
    
     
  13. [C4]

    [C4] Power Member

    Tenta com esta:
    Provider=SQLOLEDb.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=[NOME_DA_TUA_MAQUINA]\SQLEXPRESS"
    Troca o [NOME_DA_TUA_MAQUINA] pelo nome da tua maquina ou por localhot
    e posta o erro
     
  14. Fil__

    Fil__ Power Member

    Da o mesmo erro, diz que o SQL nao existe ou que nao consegue acede-lo... nao entendo. Estou a 2 dias nesta treta e nada...
     
  15. Fil__

    Fil__ Power Member

  16. [C4]

    [C4] Power Member

    ja tentaste com o ficheiro udl?
     
  17. Fil__

    Fil__ Power Member

    O que e o ficheiro UDL C4? Desculpa, nao reparei nisso, mas tambem nao sei o que é
    Olha, a mensagem de erro é esta:
    [DBNETLIB][ConnectionOpen (Connect()).]O SQL Server não existe ou o acesso foi recusado.
    Ajuda?
     
  18. fLaSh_CF

    fLaSh_CF Banido

    Por o que vi, penso que o problema está do lado do teu servidor.. verifica o servidor ..

    Uma observação..
    Estás a utilizar estas livrarias?
    Eu acho que estás a utilizar o "ODBC Driver", isto era/é utilizado muito em VB6 que também pode ser em .NET por interface Interop, mas eu não recomendo.

    Na minha opinião acho que deverias utilizar as livrarias do .NET
    System.Data.SqlClient
    System.Data.OleDb


    Pois ODBC Driver deixa dependências, e na minha opinião trabalhando com .NET já está obsoleto..
     
    Última edição: 20 de Outubro de 2008
  19. Fil__

    Fil__ Power Member

    Yap fLaSh, estou a usar, foi logo a minha primeira preocupaçao
     

Partilhar esta Página