Ir para conteúdo
Fórum Script Brasil
  • 0

Excluir Vários Arquivos Do Servidor


Ricardo Amancio

Pergunta

Boa tarde para todos..

Eu peguei uma dica que mostra como apagar vários arquivos e seus respectivos registros em um MDB. Mas não estou conseguindo por par funcionar.

Para que todos possam ver o que fiz até agora vou listar os códigos.

_______________________________________________________________________________

ESTE É O ERRO QUE ESTÁ DANDO (A LINHA 15 ESTÁ EM DESTAQUE (NEGRITO/VERMELHO) NO CÓDIGO)

Tipo de erro:

Erro de tempo de execução do Microsoft VBScript (0x800A000D)

Tipos incompatíveis: 'abreconexao'

/foxgraf/exclui2.asp, line 15

_______________________________________________________________________________

CONECTA.ASP '(AQUI ESTÁ A STRING DE CONECÇÃO COM O MDB)

<%

Dim MM_conecta_STRING

MM_conecta_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\foxgraf\bd\banco.mdb"

%>

_______________________________________________________________________________

EXCLUIR_REGISTRO.ASP '(AQUI ESTÁ O FORM PARA SELEÇÃO DOS REGISTROS))

<%@LANGUAGE="VBSCRIPT"%>

<!-- #include file = "Connections/conecta.asp" -->

<%

Dim Recordset1

Dim Recordset1_numRows

Set Recordset1 = Server.CreateObject("ADODB.Recordset")

Recordset1.ActiveConnection = MM_conecta_STRING

Recordset1.Source = "SELECT * FROM portifolio"

Recordset1.CursorType = 0

Recordset1.CursorLocation = 2

Recordset1.LockType = 1

Recordset1.Open()

Recordset1_numRows = 0

%>

<%

Dim Repeat1__numRows

Dim Repeat1__index

Repeat1__numRows = -1

Repeat1__index = 0

Recordset1_numRows = Recordset1_numRows + Repeat1__numRows

%>

<script language="JavaScript" type="text/JavaScript">

function selecionartodos(){

for (i=0;i<form1.length;i++){

if (form1.elements.checked==false){

form1.elements.checked=true;

}

else {

form1.elements.checked=false;

}

}

}

</script>

<form name="form1" action="exclui2.asp" method="post">

<table width="758" border="0" align="center" bordercolor="#000000">

<tr>

<td width="45"><div align="center"><a href="java script: selecionartodos();">

Todos</a> </div></td>

<td width="112"><div align="center">Código</div></td>

<td width="118"><div align="center">Peça</div></td>

<td width="147"><div align="center">Descrição</div></td>

<td width="242"><div align="center">Imagem</div></td>

<td width="68"><div align="center">

<input type="submit" name="Submit" value="Apagar">

</div></td>

</tr>

<% While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) %>

<tr>

<td><div align="center">

<input name="delete" type="checkbox" id="delete2" value="<%=(Recordset1.Fields.Item("cod").Value)%>">

</div></td>

<td><%=(Recordset1.Fields.Item("cod").Value)%></td>

<td><%=(Recordset1.Fields.Item("peca").Value)%></td>

<td><%=(Recordset1.Fields.Item("descricao").Value)%></td>

<td><%=(Recordset1.Fields.Item("imagem").Value)%></td>

<td><div align="center"></div></td>

</tr>

<%

Repeat1__index=Repeat1__index+1

Repeat1__numRows=Repeat1__numRows-1

Recordset1.MoveNext()

Wend

%>

</table>

</form>

_______________________________________________________________________________

EXCLUI2.ASP '(AQUI ESTÁ O CÓDIGO QUE DEVERIA RECUPERAR O CHECKBOX E EXCLUIR OS ARQUIVOS NO SERVIDOR E OS REGISTROS DO MDB)

<%@ Language=VBScript%>

<!--#include file="Connections/conecta.asp" -->

<%

DIM conexaodb, rs, str, id

ARRcodAltera = trim(request("delete")) '-- pega todos IDs selecionados

Set objFS = Server.CreateObject("Scripting.FileSystemObject")

if len(ARRcodAltera) > 0 then '-- se há conteudo na variavel

id = split(ARRcodAltera,",") '-- pega a listagem de IDs separados por virgula e cria matriz

call abreconexao

for i = 0 to ubound(id) '-- para cada item da matriz

'-- selecionar titulo do arquivo

set rs = conexaodb.Execute("select imagem from portifolio where cod="&id(i))

titulo = rs(0)

arquivo = "C:\inetpub\wwwroot\foxgraf\"&titulo

If objFS.FileExists(arquivo) Then '-- se o arquivo existe apaga o arquivo da pasta e o registro no BD

objFS.DeleteFile(arquivo)

conexaodb.Execute("DELETE * FROM portifolio WHERE cod=" & id(i))

msg = msg & "<br>- " & titulo & " excluido (" & arquivo & ")"

else

msg = msg & "<br>- " & titulo & " não encontrado (" & arquivo & ")"

end if

next

else

msg = "Nenhum arquivo selecionado."

end if

Set objFS = Nothing %>

_______________________________________________________________________________

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Boa tarde meus amigos.

Continuei quebrando a cabeça e consegui resolver meu problema.

Vou colocar aqui código de exclusão para vocês, quem sabe pode ser útil para alguém.

_______________________________________________________________________________

EXCLUI2.ASP '(AQUI ESTÁ O CÓDIGO QUE EXCLUI OS ARQUIVOS

NO SERVIDOR E OS REGISTROS DO MDB - FUNCIONANDO)

<%

DIM conexao, rs, str, id

ARRcodAltera = trim(request("delete")) '-- pega todos IDs selecionados

Set objFS = Server.CreateObject("Scripting.FileSystemObject")

if len(ARRcodAltera) > 0 then '-- se há conteudo na variavel

id = split(ARRcodAltera,",") '-- pega a listagem de IDs separados por virgula e cria matriz

url_conexao = Server.MapPath("bd/banco.mdb")

set conexao = Server.CreateObject("ADODB.Connection")

conexao.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&url_conexao

for i = 0 to ubound(id) '-- para cada item da matriz

'-- selecionar titulo do arquivo

set rs = conexao.Execute("select imagem from portifolio where cod="&id(i))

titulo = rs(0)

arquivo = "C:\inetpub\wwwroot\foxgraf\"&titulo

If objFS.FileExists(arquivo) Then '-- se o arquivo existe apaga o arquivo da pasta e o registro no BD

objFS.DeleteFile(arquivo)

conexao.Execute("DELETE * FROM portifolio WHERE cod=" & id(i))

response.write "<br>Operação efetuada com Sucesso!<br><br>Você será redirecionado em 3 segundos."

response.write "<meta http-equiv='refresh' content='3; url=excluir_registro.asp'/>"

else

end if

next

else

response.write "<br>Nenhum registro está selecionado.<br><br>Selecione os registros que deseja excluir.<br><br>Você será redirecionado em 5 segundos."

response.write "<meta http-equiv='refresh' content='5; url=excluir_registro.asp'/>"

end if

Set objFS = Nothing

%>

_______________________________________________________________________________

Bom galera de qualquer forma valeu pelos que leram e estavam vendo como me ajudar.

Espero um dia também poder ser útil.

Valeu a dica andreia_sp.

realmente o "call " estava chamando uma função ou Sub qua não existia.

Então tirei e coloquei as linhas de conexão ali.

valeu.

Acho que agora tenho que pedir para fechar o tópico.

então galera que cuida do bom andamento do forum....

FECHA AI pra mim...

obrigado

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...