AGENDAMENTO COM VB6
Boas Malta, neste momento encontro-me em estágio profissional e faltam apenas alguns dias para o terminar,
Preciso mesmo da vossa ajuda.
Neste momento estou a fazer a fase de agendamento dos backups automáticos,
só que não sei fazer isto por vectores, tipo tenho um timer com um código que faz o seguinte:
lê o dia actual e procura na base de dados se existe algum agendamento para esse dia.
Se existir, arranca um outro timer que o que faz e verificar a hora desse agendamento, só que não estou a conseguir fazê-lo, sem que tenho que fazer isto por vectores, mas não estou mesmo a conseguir.
Pf ajudem-me, para eu não acabar os estágio com isto por terminar.
Ficar aqui o meu email: anamoreira08@gmail.com
Muito obrigado, bjinhos ;)
Preciso mesmo da vossa ajuda.
Neste momento estou a fazer a fase de agendamento dos backups automáticos,
só que não sei fazer isto por vectores, tipo tenho um timer com um código que faz o seguinte:
lê o dia actual e procura na base de dados se existe algum agendamento para esse dia.
Se existir, arranca um outro timer que o que faz e verificar a hora desse agendamento, só que não estou a conseguir fazê-lo, sem que tenho que fazer isto por vectores, mas não estou mesmo a conseguir.
Pf ajudem-me, para eu não acabar os estágio com isto por terminar.
Ficar aqui o meu email: anamoreira08@gmail.com
Muito obrigado, bjinhos ;)
colega posta o código do seu timer, acredito que dois timers não serão necessários
Private Sub Timer1_Timer()
If Form1.Calendar1.Value = label1.Caption Then
Timer2.Interval = 1
Else
End If
End Sub
-------------------------------------------------//-------------------------------------------
Private Sub Timer2_Timer()
Data1.Refresh
Data1.Recordset.MoveFirst
[ô]ciclo while para verificar as horas, para efetuar o backup
Do While Data1.Recordset.EOF = False
Data1.Recordset.MoveNext
If Label4.Caption = Form1.Label9 Then
[ô]aqui falta a linha de ler o ID do agendamento
Shell ([Ô]C:\Backup\ps.cmd[Ô]) [ô]isto é para parar os serviços de SQL
[ô]aqui o cod de copiar
lblestado.Caption = [Ô]Vamos executar o Backup agendado.....[Ô]
[ô]FileCopy origem, Destino
Origem = Form1.txtFields(3).Text
Destino = Form1.txtFields(4).Text
FileCopy Origem, Destino
lblestado.Caption = [Ô]Fim de Backup.....[Ô]
End If
Shell ([Ô]C:\Backup\as.cmd[Ô]) [ô]isto é para arrancar os serviços de SQL
Else
End If
Timer2.Interval = 0
End Sub
If Form1.Calendar1.Value = label1.Caption Then
Timer2.Interval = 1
Else
End If
End Sub
-------------------------------------------------//-------------------------------------------
Private Sub Timer2_Timer()
Data1.Refresh
Data1.Recordset.MoveFirst
[ô]ciclo while para verificar as horas, para efetuar o backup
Do While Data1.Recordset.EOF = False
Data1.Recordset.MoveNext
If Label4.Caption = Form1.Label9 Then
[ô]aqui falta a linha de ler o ID do agendamento
Shell ([Ô]C:\Backup\ps.cmd[Ô]) [ô]isto é para parar os serviços de SQL
[ô]aqui o cod de copiar
lblestado.Caption = [Ô]Vamos executar o Backup agendado.....[Ô]
[ô]FileCopy origem, Destino
Origem = Form1.txtFields(3).Text
Destino = Form1.txtFields(4).Text
FileCopy Origem, Destino
lblestado.Caption = [Ô]Fim de Backup.....[Ô]
End If
Shell ([Ô]C:\Backup\as.cmd[Ô]) [ô]isto é para arrancar os serviços de SQL
Else
End If
Timer2.Interval = 0
End Sub
Anamoreira, acho que so basta vc por um select que resolve seu problema:
Bom trabalho.
If Label4.Caption = Form1.Label9 Then
[ô]aqui falta a linha de ler o ID do agendamento
[Ô]SELECT * FROM sua tabela WHERE seu campo id = [Ô] & campo texto do form = resolveria seu problema acredito nao testei.
Shell ([Ô]C:\Backup\ps.cmd[Ô]) [ô]isto é para parar os serviços de SQL
[ô]aqui o cod de copiar
lblestado.Caption = [Ô]Vamos executar o Backup agendado.....[Ô]
[ô]FileCopy origem, Destino
Origem = Form1.txtFields(3).Text
Destino = Form1.txtFields(4).Text
FileCopy Origem, Destino
lblestado.Caption = [Ô]Fim de Backup.....[Ô]
End If Shell ([Ô]C:\Backup\as.cmd[Ô]) [ô]isto é para arrancar os serviços de SQL
Else
End If
Timer2.Interval = 0
End Sub
Bom trabalho.
com esse codigo só vai funcionar se for base de dados SQL, certo?
Bom vejo uma certa dificuldade de entendimento do que deseja fazer.
primeiro, você usa o componente datacontrol, que a maioria ja descartou, porém isto não é um impedimento para executar o que deseja.
Também não há a necessidade de se usar dois timers um será o suficiente.
ao iniciar o sistema faça um loop na tabela e preencha um array dinamico com as horas de backup.
veja como ficaria
primeiro declare no general do form
no load coloque o código para preencher a array dinamica (horadebackup)
agora coloque um timer com interval = 1
[ô]no timer coloque o seguinte código
repare que o que destaqueoi em vermelho são os campos e nome da tabela que só vc sabe, altere conforme sua tabela
e veja se funciona
primeiro, você usa o componente datacontrol, que a maioria ja descartou, porém isto não é um impedimento para executar o que deseja.
Também não há a necessidade de se usar dois timers um será o suficiente.
ao iniciar o sistema faça um loop na tabela e preencha um array dinamico com as horas de backup.
veja como ficaria
primeiro declare no general do form
Dim HoraDeBackUp() As Date
no load coloque o código para preencher a array dinamica (horadebackup)
Dim C As Integer
Data1.Refresh
Data1.RecordSource = [Ô]select * from [txt-color=#e80000]suatabela [/txt-color]where [txt-color=#e80000]campodata [/txt-color]= #[Ô] & Format(Date,[Ô]mm/dd/yyyy[Ô]) & [Ô]#[Ô]
[ô] acima faço um select para verificar quais registros com a data de hoje
[ô] para depois (abaixo) preencher um array coma as horas do backup
Do While Not Data1.Recordset.EOF
Redim Preserve HoraDeBackUp(C) As Date
HoraDeBackUp(C) = Data1.Recordset.Fields([Ô][txt-color=#e80000]horadobackup[/txt-color][Ô])
C = C + 1
Data1.Recordset.MoveNext
Loop
agora coloque um timer com interval = 1
[ô]no timer coloque o seguinte código
For F = 0 To UBound(HoraDeBackUp)
If HoraDeBackUp(F) = Time Then
[ô] ...aqui vc executa o que for preciso
End If
Next F
repare que o que destaqueoi em vermelho são os campos e nome da tabela que só vc sabe, altere conforme sua tabela
e veja se funciona
se a minha bd estiver em access, vai funcionar?
o código acima é para access mesmo
ok
coloquei o codigo como indicado acima... mas esta dando um erro nesta linha
HoraDeBackUp(C) = Data1.Recordset.Fields & (label4.caption)
o erro diz: [Ô]item not found in this collection[Ô]
coloquei o codigo como indicado acima... mas esta dando um erro nesta linha
HoraDeBackUp(C) = Data1.Recordset.Fields & (label4.caption)
o erro diz: [Ô]item not found in this collection[Ô]
sabe ana acho que seus captions estão associados ao data1, e acredito que isto estegerando o erro
aqui deveria ser como postei acima
Data1.Recordset.Fields([Ô]nome_do_campo_hora[Ô])
poste a estrutura de sua tabela
aqui deveria ser como postei acima
Data1.Recordset.Fields([Ô]nome_do_campo_hora[Ô])
poste a estrutura de sua tabela
a minha tabela tem 5 campos..
ID
Data
Hora
Caminho
Destino
ID
Data
Hora
Caminho
Destino
Tópico encerrado , respostas não são mais permitidas