Ricardo Amancio Postado Junho 10, 2006 Denunciar Share Postado Junho 10, 2006 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_STRINGMM_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 Recordset1Dim Recordset1_numRowsSet Recordset1 = Server.CreateObject("ADODB.Recordset")Recordset1.ActiveConnection = MM_conecta_STRINGRecordset1.Source = "SELECT * FROM portifolio"Recordset1.CursorType = 0Recordset1.CursorLocation = 2Recordset1.LockType = 1Recordset1.Open()Recordset1_numRows = 0%><%Dim Repeat1__numRowsDim Repeat1__indexRepeat1__numRows = -1Repeat1__index = 0Recordset1_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, idARRcodAltera = trim(request("delete")) '-- pega todos IDs selecionadosSet objFS = Server.CreateObject("Scripting.FileSystemObject")if len(ARRcodAltera) > 0 then '-- se há conteudo na variavelid = split(ARRcodAltera,",") '-- pega a listagem de IDs separados por virgula e cria matrizcall abreconexaofor i = 0 to ubound(id) '-- para cada item da matriz'-- selecionar titulo do arquivoset rs = conexaodb.Execute("select imagem from portifolio where cod="&id(i))titulo = rs(0)arquivo = "C:\inetpub\wwwroot\foxgraf\"&tituloIf objFS.FileExists(arquivo) Then '-- se o arquivo existe apaga o arquivo da pasta e o registro no BDobjFS.DeleteFile(arquivo)conexaodb.Execute("DELETE * FROM portifolio WHERE cod=" & id(i))msg = msg & "<br>- " & titulo & " excluido (" & arquivo & ")"elsemsg = msg & "<br>- " & titulo & " não encontrado (" & arquivo & ")"end ifnextelsemsg = "Nenhum arquivo selecionado."end ifSet objFS = Nothing %>_______________________________________________________________________________ Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Junho 10, 2006 Denunciar Share Postado Junho 10, 2006 mas você está chamando uma função que num existe esse nome... comenta essa linha e vê se funciona Link para o comentário Compartilhar em outros sites More sharing options...
0 Ricardo Amancio Postado Junho 10, 2006 Autor Denunciar Share Postado Junho 10, 2006 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, idARRcodAltera = trim(request("delete")) '-- pega todos IDs selecionadosSet 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 ifnextelseresponse.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 ifSet 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 More sharing options...
Pergunta
Ricardo Amancio
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