CICLO WHILE
boas pessoal...
estou a desenvolver um programa de backup[ô]s.. mas estou com um pequeno problema.. quando o meu programa faz a pesquisa das base de dados, ele só encontra uma de cada extençao por pasta.. e percisava que listasse todas as base de dados..
aqui vai o meu código:
Private Sub FSO_sqlserver(ByVal sPath As String, Optional ByVal bshowdialog As Boolean = False)
Dim folder As folder
Dim subfolder As folder
If Right$(sPath, 1) <> [Ô]\[Ô] Then sPath = sPath & [Ô]\[Ô]
lblpasta.Caption = sPath
DoEvents
Set folder = fso.GetFolder(sPath)
If Dir(sPath & [Ô]*.mdf[Ô]) <> [Ô][Ô] Then
If (sPath <> [Ô]*.mdf[Ô]) Then
List1.AddItem (Dir(sPath & [Ô]*.mdf[Ô]))
List2.AddItem (sPath)
End If
ElseIf Dir(sPath & [Ô]*.ldf[Ô]) <> [Ô][Ô] Then
List1.AddItem (sPath)
On Local Error Resume Next
If folder.SubFolders.Count > 0 Then
For Each subfolder In folder.SubFolders
FSO_sqlserver sPath & subfolder.Name, bshowdialog
Next
End If
Else
lblpasta = [Ô][Ô]
Exit Sub
End If
DoEvents
If Right$(sPath, 1) <> [Ô]\[Ô] Then sPath = sPath & [Ô]\[Ô]
lblpasta.Caption = sPath
DoEvents
Set folder = fso.GetFolder(sPath)
If Dir(sPath & [Ô]*.ldf[Ô]) <> [Ô][Ô] Then
List1.AddItem (Dir(sPath & [Ô]*.ldf[Ô]))
Me.List2.AddItem sPath
End If
On Local Error Resume Next
If folder.SubFolders.Count > 0 Then
For Each subfolder In folder.SubFolders
FSO_sqlserver sPath & subfolder.Name, bshowdialog
Next
End If
[txt-size=2]será que com um ciclo while resolvo este problema?[/txt-size]
estou a desenvolver um programa de backup[ô]s.. mas estou com um pequeno problema.. quando o meu programa faz a pesquisa das base de dados, ele só encontra uma de cada extençao por pasta.. e percisava que listasse todas as base de dados..
aqui vai o meu código:
Private Sub FSO_sqlserver(ByVal sPath As String, Optional ByVal bshowdialog As Boolean = False)
Dim folder As folder
Dim subfolder As folder
If Right$(sPath, 1) <> [Ô]\[Ô] Then sPath = sPath & [Ô]\[Ô]
lblpasta.Caption = sPath
DoEvents
Set folder = fso.GetFolder(sPath)
If Dir(sPath & [Ô]*.mdf[Ô]) <> [Ô][Ô] Then
If (sPath <> [Ô]*.mdf[Ô]) Then
List1.AddItem (Dir(sPath & [Ô]*.mdf[Ô]))
List2.AddItem (sPath)
End If
ElseIf Dir(sPath & [Ô]*.ldf[Ô]) <> [Ô][Ô] Then
List1.AddItem (sPath)
On Local Error Resume Next
If folder.SubFolders.Count > 0 Then
For Each subfolder In folder.SubFolders
FSO_sqlserver sPath & subfolder.Name, bshowdialog
Next
End If
Else
lblpasta = [Ô][Ô]
Exit Sub
End If
DoEvents
If Right$(sPath, 1) <> [Ô]\[Ô] Then sPath = sPath & [Ô]\[Ô]
lblpasta.Caption = sPath
DoEvents
Set folder = fso.GetFolder(sPath)
If Dir(sPath & [Ô]*.ldf[Ô]) <> [Ô][Ô] Then
List1.AddItem (Dir(sPath & [Ô]*.ldf[Ô]))
Me.List2.AddItem sPath
End If
On Local Error Resume Next
If folder.SubFolders.Count > 0 Then
For Each subfolder In folder.SubFolders
FSO_sqlserver sPath & subfolder.Name, bshowdialog
Next
End If
[txt-size=2]será que com um ciclo while resolvo este problema?[/txt-size]
Qual é o resultado atual do código que postou?
Não seria melhor usar o próprio mecanismo de backup do SQL Server ?
este codigo pesquisa as base de dados sql, mas so aparece na list uma de cada extençao (*.mdf e *.ldf) por pasta.. a primeira que ele encontrar poe na list i passa para a proxima pasta.
e como é esse mecanismo de backup SQL server?
e como é esse mecanismo de backup SQL server?
e como posso fazer isso??
eu dei tantas voltas pela internet para chegar a este codigo :S
e penso que com um ciclo while funcionava, mas nao sei como o hei-de parar....
eu dei tantas voltas pela internet para chegar a este codigo :S
e penso que com um ciclo while funcionava, mas nao sei como o hei-de parar....
Eu só teria medo de fazer isso com o banco de dados rodando. Tem certeza que pode fazer isso ANA?
o vb tem de fechar a base de dados, e gravar para depois fazer o backup..
horario pode existir.. tipo, fazer uma tabela no vb, com os dias da semana e a hora.. depois podia escolher e ficava agendado
obrigado pela ajuda
horario pode existir.. tipo, fazer uma tabela no vb, com os dias da semana e a hora.. depois podia escolher e ficava agendado
obrigado pela ajuda
Tópico encerrado , respostas não são mais permitidas