Ir para conteúdo

Arquivado

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

aluizs

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

Recommended Posts

Olá, estou trabalhando em um código asp com banco de dados mysql mas estou enfrentando alguns problemas com o código abaixo, um deles é a mensagem Microsoft OLE DB Provider for ODBC Drivers error '80040e21' que aparece quando tento abrir o segundo recordset.

 

Em um banco de dados tenho as tabelas jogos, jogos adulto, colocm e colocf. onde em jogos e jogosadulto são colocados os jogos e colocm e colocf a classificação masculina e feminina respectivamente.

 

desta forma fiz um select para buscar os jogos de uma determinada categoria e a cada registro, uso as equipes e categoria para buscar a classificação.

 

acontece que ao tentar abrir o recordset da classificação dá o erro acima. com faço para resolver isto.

segue abaixo o código que utilizo.

 

as vezes ele acusa a falta de um LOOP na linha destacada em azul quando eu modifico o rstempcol.open sqlcol, conntempcol1, 3, 3 para rstempcol.open sqlcol, conntempcol, 3, 3

 

 

<%
strConexao = "Driver={MySQL ODBC 3.51 Driver};SERVER=xxxxxxx; DATABASE=tabela; " &_
" Uid=xxxxxx;Pwd=xxxxxx"
strConexao1 = "Driver={MySQL ODBC 3.51 Driver};SERVER=xxxxxxx; DATABASE=tabela; " &_
" Uid=xxxxxx;Pwd=xxxxxx"
set conntempcol = server.CreateObject("ADODB.Connection")
set conntempcol1 = server.CreateObject("ADODB.Connection")
conntempcol.open strConexao
conntempcol1.open strConexao1
TIPO = REQUEST.QUERYSTRING("var")
if request.querystring("ponto") = 1 then
strQuery = ("(SELECT * FROM jogos WHERE categoria LIKE '" & TIPO & "') UNION (SELECT * FROM jogosadulto WHERE categoria LIKE '" & TIPO & "') order by turno, data, hora")
strQuery1 = "SELECT count(data) as total1 FROM jogos WHERE categoria LIKE '" & TIPO & "' "
elseif request.querystring("ponto") = 2 then
strQuery = ("(SELECT * FROM jogos WHERE equipe1 LIKE '" & TIPO & "' OR equipe2 LIKE '" & TIPO & "') UNION (select * from jogosadulto where equipe1 LIKE '" & TIPO & "' OR equipe2 LIKE '" & TIPO & "') order by turno, data, hora")
strQuery1 = "SELECT count(data) as total1 FROM jogos WHERE equipe1 LIKE '" & TIPO & "' OR equipe2 LIKE '" & TIPO & "' "
elseif request.querystring("ponto") = 3 then
if request.querystring("t1") <> empty then
d1 = mid(request.querystring("t1"),1,2)
m1 = mid(request.querystring("t1"),4,2)
y1 = mid(request.querystring("t1"),7,4)
datai = y1 & "-" & m1 & "-" & d1
'dataf = request.querystring("t2")
d1 = MID(request.querystring("T2"),1,2)
m1 = MID(request.querystring("T2"),4,2)
y1 = MID(request.querystring("T2"),7,4)
dataf = y1 & "-" & m1 & "-" & d1
if isdate(datai) = true then
strQuery = "select * from jogos where data between '" & datai & "' and '" & dataf & "' union select * from jogosadulto where data between '" & datai & "' and '" & dataf & "' order by turno, data, hora"
strQuery1 = "select count(data) as total1 from jogos where data between '" & datai & "' and '" & dataf & "'"
end if
end if
end if
%>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
<tr>
<td width="6%" align="center" bgcolor="#FFFFFF">
<font face="Verdana" style="font-size: 11pt" color="#FF6600">
<b>Data</b></font></td>
<td width="7%" align="center" bgcolor="#FFFFFF">
<font face="Verdana" style="font-size: 11pt" color="#FF6600">
<b>Hora</b></font></td>
<td width="11%" align="center" bgcolor="#FFFFFF" valign="top">
<font face="Verdana" style="font-size: 11pt" color="#FF6600">
<b>Local</b></font></td>
<td colspan="5" align="center" bgcolor="#FFFFFF">
<center>
<font face="Verdana" style="font-size: 11pt" color="#FF6600">
<b>JOGO</b></font></CENTER>
</td>
<td width="13%" align="center" bgcolor="#FFFFFF">
<font face="Verdana" style="font-size: 11pt" color="#FF6600">
<b>CATEGORIA</b></font></td>
</tr>
<%
set tabela1 = Server.CreateObject("ADODB.RecordSet")
tabela1.Open strQuery1, strConexao1, 3, 3 '
totalgeral = cint(tabela1.fields("total1"))
response.write(strQuery1 & " - " & totalgeral)
'response.end
set tabela = Server.CreateObject("ADODB.RecordSet")
tabela.Open strQuery, strConexao, 3, 3
if totalgeral > 0 THEN
njogo1 = totalgeral
do while not TABELA.EOF
if tabela.fields("turno") = 2 and passou = 0 then
passou = 1
flag = 0
response.write("<tr>")
response.write("<td align='center' bgcolor='#FFFFFF' colspan='9' height='27'>")
response.write("<b>")
response.write("<font style='font-size: 11pt' color='#FF6600' face='Verdana'>2º TURNO</font></b></td>")
response.write("</tr>")
end if
if flag=0 then
flag=1
color="#E0E0E0"
else
flag=0
color="#FFC891"
end if
if lcase(tabela.fields("sexo")) = "masculino" and spm = false then
sqlcol = "select * from colocm where categoria like " & tabela.fields("categoria") & " order by index"
elseif lcase(tabela.fields("sexo")) = "feminino" and spm = false then
sqlcol = "select * from colocf where categoria like " & tabela.fields("categoria") & " order by index"
end if
response.write(sqlcol & " classifica")
set rstempcol = Server.CreateObject("ADODB.RecordSet")
response.write(sqlcol & " classifica")
rstempcol.open sqlcol, conntempcol1, 3, 3 'XXXX o erro está dando aqui XXXXX
response.write(sqlcol & " classifica")
col1 = empty
col2 = empty
do while not rstempcol.eof
if rstempcol.fields("equipe") = tabela.fields("equipe1") then
col1 = rstempcol("position")
end if
if rstempcol.fields("equipe") = tabela.fields("equipe2") then
col2 = rstempcol.fields("position")
end if
rstempcol.movenext
loop
set rstempcol = nothing
%>
<tr>
<td width="6%" align="center" valign="middle" nowrap="nowrap" bgcolor="">
<b>
<font color="#FF6600" face="Verdana">
<span style="font-size: 10pt"><%=tabela.fields("data")%></span></font></b><font color="#FF6600" face="Verdana"><span style="font-size: 11pt"> </span></font></td>
<td width="7%" align="center" valign="middle" nowrap="nowrap" bgcolor="">
<b>
<font color="#FF6600" face="Verdana">
<span style="font-size: 10pt"><%=tabela.fields("hora")%></span></font></b><font color="#FF6600" face="Verdana"><span style="font-size: 11pt"> </span></font></td>
<td width="11%" valign="middle" nowrap="nowrap" bgcolor="">
<div align="left"><b>
<font color="#FF6600" face="Verdana">
<span style="font-size: 10pt"><%=tabela.fields("local")%></span></font></b><font color="#FF6600" face="Verdana"><span style="font-size: 11pt"> </span></font></div>
</td>
<td width="19%" valign="middle" nowrap="nowrap" bgcolor="">
<div align="left"><b>
<font color="#FFFFFF" face="Verdana">
<a title="<%=col1%>º" href="javascript:montatab('<%=tabela.fields("equipe1")%>',2)">
<font color="#FF6600" style="font-size: 11pt"><%=tabela.fields("equipe1")%></font></a></font></b></div>
</td>
<td width="7%" align="center" valign="middle" nowrap="nowrap" bgcolor="">
<font color="#FF6600" face="Verdana" style="font-size: 10pt">
<b><%=tabela.fields("pequipe1")%></b> </font></td>
<td width="3%" align="center" valign="middle" nowrap="nowrap" bgcolor="" class="style2">
<div align="center">
<strong>
<font color="#FF6600" face="Verdana" style="font-size: 11pt">X</font></strong></div>
</td>
<td width="7%" align="center" valign="middle" nowrap="nowrap" bgcolor="">
<font color="#FF6600" face="Verdana" style="font-size: 10pt">
<b><%=tabela.fields("pequipe2")%></b> </font></td>
<td width="19%" valign="middle" nowrap="nowrap" bgcolor="">
<right><b>
<font color="#FFFFFF" face="Verdana">
<a title="<%=col2%>º" href="javascript:montatab('<%=tabela.fields("equipe2")%>',2)">
<font color="#FF6600" style="font-size: 11pt"><%=tabela.fields("equipe2")%></font></a></font></b></right></td>
<td width="13%" align="center" valign="middle" nowrap="nowrap" bgcolor="">
<center><b>
<font color="#FFFFFF" face="Verdana">
<a href="javascript:montatab('<%=tabela.fields("categoria")%>',1)">
<font color="#FF6600" size="1"><%=tabela.fields("categoria")%></font></a></font></b></CENTER>
</td>
</tr>
<%
tabela.movenext
loop
end if
conntempcol.close
set conntempcol = nothing
set tabela = nothing
'set rstempcol = nothing
passou = 0
%>
Obrigado,
André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso pode acontecer se você usar um objeto ADODB.Recordset adOpenStatic para abrir o Excel, ou usar um conjunto de registros adOpenKeyset para realizar a paginação,

Basicamente, certifique-se os métodos / propriedades que você está usando são suportadas pelo driver/provider, e você está usando para acessar seus dados.

Se você está executando um stored procedure, certifique-se de fazê-lo através do método() connection.execute , ao invés de um objeto de comando, e adicione as seguintes linhas de código para o início do seu processo:

SET ANSI_NULLS OFF
SET NOCOUNT ON

veja se você estiver usando ADODB.Recordset, e a metodologia AddNew / Update, Se você tiver certeza que estão corretas, certifique-se que você tem a versão mais recente do MDAC

 

tente colocar, rstempcol.open sqlcol, conntempcol1, 1, 3

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.