Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

satoshy

[Resolvido] Conexão com banco de dados

Recommended Posts

Bom dia a todos !

 

Estou com duvidas em relação ao data source...

 

As paginas (html e asp) estão salvas em uma pasta, e nessa mesma pasta esta o bd, essa pasta esta em um ftp da empresa. Por enquanto eu estou confirmando o login e senha.

 

Segue a mensagem q o IE mostra :

Microsoft VBScript compilation error '800a0401'

 

Expected end of statement

 

/pagina_asp/registros.asp, line 13

 

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="http://www.escritorioprado.com.br/pagina_asp/Database1.mdb";"

--------------------------------------------------------------------^

 

e abaixo o código asp :

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<%Dim c,r
Set c = Server.CreateObject("ADODB.Connection")
Set r = Server.CreateObject("ADODB.RecordSet")
c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="http://www.escritorioprado.com.br/pagina_asp/Database1.mdb";" 
c.Open 
r.Open "Select * from Tabela1 where Usuario=" & request.form("t1") & ";"

If r.EOF then
Response.Write "usuario ou senha invalidos"
else
If Request.Form ("p1") = r("Senha") then
Response.Write "Bem - vindo" + r("Nome") + "!"
else
Response.Write "usuario ou senha invalidos"
end if
end if
r.close
c.close
set c = nothing
set r = nothing
%> 
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @satoshy e seja bem vindo ao fórum!

 

Altere a linha:

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="http://www.escritorioprado.com.br/pagina_asp/Database1.mdb";" 

 

Para:

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=http://www.escritorioprado.com.br/pagina_asp/Database1.mdb;"

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Public2004

 

 

testei seu codigo e deu essa mensagem no IE :

Microsoft JET Database Engine error '80004005'

 

Not a valid file name.

 

/pagina_asp/registros.asp, line 14

 

e a line 14 é a (de acordo com o dreamweaver):

c.Open

 

Abraços;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, verifique junto ao seu host qual é o local (caminho) correto para colocar o banco de dados e se aceita arquivos ".mdb"; Geralmente não são colocados junto com os arquivos do site (html, asp, css, etc).

 

Após enviar o arquivo para o local correto, altere o caminho na sua string de conexão.

 

Obs: Para testar local ou on-line, altere o caminho do banco conforme situação.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Public obrigado por estar me auxiliando

 

O bd esta no ftp...

 

eu não entendo muito dessas coisas mas vou explicar do jeito q eu entendi ...

 

na hora q eu crio o bd, ele é salvo dentro dos meus documentos...

mas eu não consigo por exemplo fazer o data source para o bd dentro dos meus documentos

 

as paginas vão estar dentro da pasta webroot(onde vai estar o index do site) e dentro dela esta a pasta onde estou fazendo os testes(pagina_asp), se eu fizer :

data source = "C:\Documents and Settings\Informatica\Meus documentos\Database1.mdb"

vai da a msm mensagem :

Microsoft VBScript compilation error '800a0401'

 

Expected end of statement

 

/pagina_asp/registros.asp, line 13

 

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="C:\Documents and Settings\Informatica\Meus documentos\Database1.mdb";"

--------------------------------------------------------------------^

 

 

não sei se é isso que você quis dizer, desculpe o pouco conhecimento q possuo...

 

complementando um pouco ...

o host q você esta falando, seria o provedor ?

existe um lugar especifico para por o bd ?

 

 

abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aonde você está testando seu script ?

Se for na maquina local, o caminho pode estar certo, mas é bom confirmar.

Se for num provedor, é melhor usar o metodo Mappath:

<%
response.write(Server.MapPath("teste.asp") & "<br />")
response.write(Server.MapPath("script/teste.asp") & "<br />")
response.write(Server.MapPath("/script/teste.asp") & "<br />")
response.write(Server.MapPath("\script") & "<br />")
response.write(Server.MapPath("/") & "<br />")
response.write(Server.MapPath("\") & "<br />")
%>

 

Os resultados seriam:

 

c:\inetpub\wwwroot\script\test.asp
c:\inetpub\wwwroot\script\script\test.asp
c:\inetpub\wwwroot\script\test.asp
c:\inetpub\wwwroot\script
c:\inetpub\wwwroot
c:\inetpub\wwwroot 

 

Com isso basta dizer o nome do mdb ou em qual pasta ele está que o script faz o resto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então amigo, FTP é o protocolo utilizado para enviar arquivos ao servidor. Como disse, verifique junto ao seu host o local correto para enviar o banco de dados que geralmente é diferente de onde se envia os arquivos do site (html, asp, etc.).

Após isso, verifique o caminho correto para inserir na sua string de conexão da forma que sugeri no meu primeiro post (isso para testar on-line).

 

Para testes locais, você deve ter o IIS instalado e configurado corretamente em sua máquina para rodar as páginas "asp" que fazem acesso ao banco, as pastas onde ficam armazenados esses arquivos por padrão é "c:\inetpub\wwwroot\", então prefira criar uma subpasta neste caminho e colocar todos os arquivos (banco de dados e páginas) neste mesmo local e, utilize o caminho do mesmo na sua string de conexão para testes locais.

 

Ou seja, para testar local seria:

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\nova_subpasta\Database1.mdb;"

 

E on-line, algo como:

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\seu_dominio\dados\Database1.mdb;"

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Vinicius e Public

 

eu fiz o q o Vinicius me disse, e apareceu :

 

D:\Webs\login\pagina_asp\Database1.mdb

D:\Webs\login\pagina_asp\pagina_asp\Database1.mdb

D:\Webs\login\pagina_asp\Database1.mdb

D:\Webs\login\pagina_asp

D:\Webs\login

D:\Webs\login

 

ja coloquei no data source o caminho, mas aparece isso agora :

O site não pode exibir a página

HTTP 500

Causas prováveis:

•O site está em manutenção.

•O site tem um erro de programação.

 

eu coloquei um codigo parecido com esse, e deu a msm coisa, pensei q os codigos estavam incorretos e deixei isso de lado...

 

seria algum erro em outra parte do código ?

 

 

Agradeço desde já !

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca a linha:

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\nova_subpasta\Database1.mdb;"

 

por

 

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Database1.mdb")&";"

 

E desabilta as mensagens amigaveis no seu navegador, assim o erro será exibido mostrando em qual linha acontece o erro ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

troquei a linha conforme você havia me pedido

 

e apareceu essa mensagem :

 

Microsoft JET Database Engine error '80004005'

 

Unrecognized database format 'D:\Webs\login\pagina_asp\Database1.mdb'.

 

/pagina_asp/registros.asp, line 14

 

 

linha 14 :

c.Open

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vinicius, desculpa a persistencia mas...

 

continua o mesmo erro :

 

Microsoft JET Database Engine error '80004005'

 

Unrecognized database format 'D:\Webs\login\pagina_asp\Database1.mdb'.

 

/pagina_asp/registros.asp, line 14

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Vinicius

 

desculpe a demora para responder ...

 

tirei a linha 14 = c.Open

 

(não sei se você pediu pra tirar a linha 14, ou a linha do c.ConnectionString, então tirei a linha 14)

 

e apareceu isso :

 

ADODB.Recordset error '800a0e7d'

 

The connection cannot be used to perform this operation. It is either closed or invalid in this context.

 

/pagina_asp/registros.asp, line 15

 

linha 15 = r.Open "Select * from Tabela1 where Usuario=" & request.form("t1") & ";"

Compartilhar este post


Link para o post
Compartilhar em outros sites

vinicius,

 

tirei o c.Open, e troquei o r.Open por r.Execute

 

e o IE mostrou essa msg :

 

Microsoft VBScript runtime error '800a01b6'

 

Object doesn't support this property or method: 'execute'

 

/pagina_asp/registros.asp, line 15

Compartilhar este post


Link para o post
Compartilhar em outros sites
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>

<body>
<%Dim c,r
Set c = Server.CreateObject("ADODB.Connection")
Set r = Server.CreateObject("ADODB.RecordSet")
c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Database1.mdb")&";"
c.Open 
r.execute "Select * from Tabela1 where Usuario=" & request.form("t1") & ";"

If r.EOF then
Response.Write "usuario ou senha invalidos"
else
If Request.Form ("p1") = r("Senha") then
Response.Write "Bem - vindo" + r("Nome") + "!"
else
Response.Write "usuario ou senha invalidos"
end if
end if
r.close
c.close
set c = nothing
set r = nothing
%> 
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

vinicius,

 

desculpa ai, n era pra tirar o c.Open XD

 

mas enfim, troquei o r.Open pelo Execute (conforme o código q me passou)

 

o IE mostrou essa msg :

 

Microsoft JET Database Engine error '80004005'

 

Unrecognized database format 'D:\Webs\login\pagina_asp\Database1.mdb'.

 

/pagina_asp/registros.asp, line 14

 

tentei com aspas simples

 

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='"&Server.Mappath("Database1.mdb")&"';" 

 

e sem aspas simples

 

c.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("Database1.mdb")&";" 

 

mas ambas deram na msm !

 

uma pergunta (não sei se vai ter mt haver, ou é só minha imaginação)

tem o ftp com o site e a pasta de teste, é possivel q o ftp não receba tds os tipos de bd ?

 

por exemplo, eu tenho o bd Database1.mdb, é possivel q ele não reconheça a extensão .mdb ? (acabei de verificar na Hospedagem Microsoft Access, mas pode responder essa pergunta, se tem algo haver com versões ?)

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se as permissões estao corretas e se tem a ultima versão do MDAC esta instalado, e dá uma olhada neste guiade erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

verifique se as permissões estao corretas e se tem a ultima versão do MDAC esta instalado, e dá uma olhada neste guiade erro

 

Bom dia a todos.

 

xaburzum obrigado por responder o topico !

 

eu verifiquei a versão do MDAC (através do link: http://support.microsoft.com/kb/306345/PT-BR/)

 

e fui aonde não precisava instalar, na parte do FullInstallVer esta como 2.81.1132.0, e no Version esta como 2.0.0

 

eu tbm vi a parte dos erros, não sei se a descrição do erro precisa ser igual ao erro q esta acontecendo aqui...

 

eu creio q seja esse :

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager]Nome da fonte de dados não encontrado e nenhum driver padrão especificado

 

a msg q aparece aqui seria (q eu acho q seja algo q não esta reconhecendo o banco de dados) :

Microsoft JET Database Engine error '80004005'

 

Unrecognized database format 'D:\Webs\login\pagina_asp\Database1.mdb'.

 

/pagina_asp/registros.asp, line 14

 

 

 

 

eu dei uma pesquisada no google, mas não acho erros similares aos meus ...

 

 

Agradeço desde já !

 

 

bom... pra n duplicar o post vou postar aqui msm...

 

eu dei uma pesquisada em outros foruns, e sites, muitos falaram pra refazer o bd do zero ...

 

eu fiz isso, n mudei a extensão dele, deixei como .accdb (para quem tem access 2007-2010)

 

fiz a conexão, no inicio n deu problema, deu erro no r.Execute, mudei para r.Open e apareceu outro erro :

ADODB.Recordset error '800a0e7d'

 

The connection cannot be used to perform this operation. It is either closed or invalid in this context.

 

/pagina_asp/registros.asp, line 15

 

linha 15 = r.Open "Select * from Tabela1 where Usuario=" & request.form("t1") & ";"

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.