Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Moreira

[Resolvido] Como aplicar cursor 3 neste código

Recommended Posts

Olá pessoal estou dando este select dentro de outro mas como o banco é MYSQL preciso do cursor 3 no 1º ja esta mas neste nao estou conseguindo

 

OBS: o 1º é com paginação por isso não copiei do mesmo.

 

<%
Call abre_conexao1(ConnString,Conn)

categ = RS("categoria")  

sql = "SELECT * FROM categoria where id="&categ&""
Set RScateg = Conn.Execute(sql)

do until RScateg.eof

%>

<%= RScateg("categoria")%>

<% 
RScateg.movenext
loop

RScateg.Close 
Set RScateg = Nothing



Call fecha_conexao1()
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo você criou uma função abre_conexao1

mais não colocou o codigo dela ae e nem da sua Conn

Compartilhar este post


Link para o post
Compartilhar em outros sites

function abre_conexao1(ConnString,Conn)

 

ConnString="Driver=MySQL ODBC 3.51 Driver;DATABASE=banco;SERVER=localhost;UID=root;PASSWORD=root;"

 

Set Conn=server.createobject("ADODB.Connection")

Conn.open ConnString

end function

 

Sub fecha_conexao1()

Conn.close

Set Conn = Nothing

end sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim cara:

 

function abre_conexao1(ConnString,Conn)

 

ConnString="Driver=MySQL ODBC 3.51 Driver;DATABASE=banco;SERVER=localhost;UID=root;PASSWORD=root;"

 

Set Conn=server.createobject("ADODB.Connection")

Conn.cursorlocation = 3

Conn.open ConnString

end function

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada ainda pessoal aqui vai todo meu código

 

 

 

function abre_conexao1(ConnString,Conn)

ConnString="Driver=MySQL ODBC 3.51 Driver;DATABASE=banco;SERVER=localhost;UID=root;PASSWORD=root;"

Set Conn=server.createobject("ADODB.Connection") 
Conn.open ConnString 
end function 

Sub fecha_conexao1() 
Conn.close 
Set Conn = Nothing 
end sub





<%
'Definição de Variáveis 
Dim Conn 
Dim RS 
Dim sql 
Dim Pag 
'----------------------------------------------------------- 
'Controles de Paginação 
pag = Request.QueryString("pag") 

If pag = "" Then 
pag = 1 
End if 

Call abre_conexao1(ConnString,Conn)

Conn.CursorLocation = 3 '<- Cursor de conexão 
'----------------------------------------------------------- 
'Criação de RecordSet 
Set RS = Server.CreateObject("ADODB.RecordSet") 
'----------------------------------------------------------- 
'Conexão Ativa 
Set RS.ActiveConnection = Conn 
'----------------------------------------------------------- 
'Select na tabela do banco 
sql = "SELECT * FROM Cliente order by nome" 
'----------------------------------------------------------- 
RS.CursorType = 3 'Tipo do cursor do RecordSet 
RS.PageSize = 10 'Qtde de registros a serem exibidos 
RS.Open sql '<- Executa o Select 
TotalPages = RS.Pagecount
'----------------------------------------------------------- 
'Se nao existir dados cadastrados 
%>
<%
If RS.Eof Then 
%>
Nenhum cadastro no momento
<%Else%>
<%
RS.AbsolutePage = pag 
'Tazemos todos os dados da tabela 
While Not RS.Eof and i < RS.PageSize 
i = i + 1 
%>
<%=RS("nome")%>
<%
'categ = RS("id") '<<<<<<<<<<<< Ele le o nº certinho mas nao funciona com ele
categ = "8" '<<<<<<<<<<<< perceba que se coloco direto o nº ai funciona
sqlq = "SELECT * FROM site where cliente="&categ&""
Set RScateg = Conn.Execute(sqlq)
'do until RScateg.eof
DO WHILE NOT RScateg.EOF

valor = valor + clng(replace(RScateg("valor"),",","."))
i = i+1
Count = Count + 1 
RScateg.MoveNext
LOOP
%>
<%=FormatCurrency(valor, 2)%>
<%
RScateg.Close 
Set RScateg = Nothing
%>
<%
RS.MoveNext 
Wend 
%><%
pagina = Request.ServerVariables("Script_Name")


' cria os links de pagians...
IF CInt(pag) > 1 THEN
%> <%
Response.Write "<a href='"&pagina&"?p=1'>Primeira</a> | "
%> <%
Else
Response.Write "<font color=""#ADADAD"">Primeira</font> | "
END IF
%> <%
if CInt(pag) > 1 then
Response.Write "<a href='"&pagina&"?pag=" & pag - 1 &"'><b>Anterior</b></a> | "
Else
Response.Write "<font color='#ADADAD'><b>Anterior</b></font> | "
END IF
%> <%
IF (CInt(pag) < TotalPages) THEN
IF CInt(PF) <> TotalPages THEN
Response.Write "<a href='"&pagina&"?pag=" & pag+1 & "'><b>Próxima</b></a> | "
END IF
Else
Response.Write "<font color=""#ADADAD""><b>Próxima</b></font> | "
END IF
%> <%
IF (CInt(pag) < TotalPages) THEN 
IF CInt(PF) <> TotalPages THEN
Response.Write "<a href='"&pagina&"?pag=" & TotalPages & "'>Última</a> "
END IF
Else
Response.Write "<font color=""#ADADAD"">Última</font>"
END IF
%> <%
max_n_mostrados = 9

intervalo = Int(max_n_mostrados /2)
inicio = pag - intervalo
final = pag + intervalo

If CInt(inicio) <1 Then 
inicio = 1
final = 10
END IF
If CInt(final) > CInt(TotalPages) Then final = TotalPages

For i = inicio To final
If CInt(i)=CInt(pag) Then
Response.Write "<font color=""#000000"">[<B>" & i & "</B>]<font color=""#000000""></font> "
END IF
If CInt(i) < CInt(pag) Then
Response.Write "<a href='"&pagina&"?pag=" & i & "'>" & i & "</a> "
END IF
If CInt(i) > CInt(pag) Then
Response.Write "<a href='"&pagina&"?pag=" & i & "'>" & i & "</a> "
END IF
Next
%><%
RS.Close 
Set RS = Nothing 
Call fecha_conexao1() 
End IF
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ví que está tentando somar dados de um campo. Explique melhor o que quer fazer, assim poderemos lhe dar uma opção melhor para fazer o que quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado na realidade a soma é somente um exemplo mas vamos esquece-la por enquanto segue abaixo o codigo correto.

 

<%
function abre_conexao1(ConnString,Conn)

ConnString="Driver=MySQL ODBC 3.51 Driver;DATABASE=banco;SERVER=localhost;UID=root;PASSWORD=root;"

Set Conn=server.createobject("ADODB.Connection") 
Conn.open ConnString 
end function 

Sub fecha_conexao1() 
Conn.close 
Set Conn = Nothing 
end sub


'Definição de Variáveis 
Dim Conn 
Dim RS 
Dim sql 
Dim Pag 
'----------------------------------------------------------- 
'Controles de Paginação 
pag = Request.QueryString("pag") 

If pag = "" Then 
pag = 1 
End if 

Call abre_conexao1(ConnString,Conn)

Conn.CursorLocation = 3 '<- Cursor de conexão 
'----------------------------------------------------------- 
'Criação de RecordSet 
Set RS = Server.CreateObject("ADODB.RecordSet") 
'----------------------------------------------------------- 
'Conexão Ativa 
Set RS.ActiveConnection = Conn 
'----------------------------------------------------------- 
'Select na tabela do banco 
sql = "SELECT * FROM Cliente order by nome" 
'----------------------------------------------------------- 
RS.CursorType = 3 'Tipo do cursor do RecordSet 
RS.PageSize = 10 'Qtde de registros a serem exibidos 
RS.Open sql '<- Executa o Select 
TotalPages = RS.Pagecount
'----------------------------------------------------------- 
'Se nao existir dados cadastrados 
%>

<%
If RS.Eof Then 
%>

Nenhum cadastro no momento

<%Else%>


<%
RS.AbsolutePage = pag 
'Tazemos todos os dados da tabela 
While Not RS.Eof and i < RS.PageSize 
i = i + 1 
%>

<%=RS("nome")%>

<%
categ = RS("categoria")

sqlq = "SELECT * FROM categoria where id = "&categ&""
Set RScateg = Conn.Execute(sqlq)
'do until RScateg.eof
DO WHILE NOT RScateg.EOF
%>

<%=RScateg("categoria")%>

<%
RScateg.MoveNext
LOOP
%>


<%
RScateg.Close 
Set RScateg = Nothing
%>


<%
RS.MoveNext 
Wend 
%>


<%
pagina = Request.ServerVariables("Script_Name")


' cria os links de pagians...
IF CInt(pag) > 1 THEN
%> <%
Response.Write "<a href='"&pagina&"?p=1'>Primeira</a> | "
%> <%
Else
Response.Write "<font color=""#ADADAD"">Primeira</font> | "
END IF
%> <%
if CInt(pag) > 1 then
Response.Write "<a href='"&pagina&"?pag=" & pag - 1 &"'><b>Anterior</b></a> | "
Else
Response.Write "<font color='#ADADAD'><b>Anterior</b></font> | "
END IF
%> <%
IF (CInt(pag) < TotalPages) THEN
IF CInt(PF) <> TotalPages THEN
Response.Write "<a href='"&pagina&"?pag=" & pag+1 & "'><b>Próxima</b></a> | "
END IF
Else
Response.Write "<font color=""#ADADAD""><b>Próxima</b></font> | "
END IF
%> <%
IF (CInt(pag) < TotalPages) THEN 
IF CInt(PF) <> TotalPages THEN
Response.Write "<a href='"&pagina&"?pag=" & TotalPages & "'>Última</a> "
END IF
Else
Response.Write "<font color=""#ADADAD"">Última</font>"
END IF
%> <%
max_n_mostrados = 9

intervalo = Int(max_n_mostrados /2)
inicio = pag - intervalo
final = pag + intervalo

If CInt(inicio) <1 Then 
inicio = 1
final = 10
END IF
If CInt(final) > CInt(TotalPages) Then final = TotalPages

For i = inicio To final
If CInt(i)=CInt(pag) Then
Response.Write "<font color=""#000000"">[<B>" & i & "</B>]<font color=""#000000""></font> "
END IF
If CInt(i) < CInt(pag) Then
Response.Write "<a href='"&pagina&"?pag=" & i & "'>" & i & "</a> "
END IF
If CInt(i) > CInt(pag) Then
Response.Write "<a href='"&pagina&"?pag=" & i & "'>" & i & "</a> "
END IF
Next
%>

<%
RS.Close 
Set RS = Nothing 
Call fecha_conexao1() 
End IF
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Visualmente correto, aparece algum erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entao Salgado aconteceo o seguinte na linha que faço o select das categorias

ele fala que o Vb não da suporte para o mesmo

e ja tentei com aspas simples e aspas duplas e nada.

 

Falam acima que preciso do cursor 3 cujo o qual esta somente no primeiro select o que faço

Compartilhar este post


Link para o post
Compartilhar em outros sites

O trecho da paginação, sozinha, está funcionando perfeitamente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, troca o trecho original por esse:

While Not RS.Eof and i < RS.PageSize
i = i + 1
%>

<%=RS("nome")%>

<%
categ = RS("categoria")

sqlq = "SELECT categoria FROM categoria where id = "& categ &";"
Response.Write("sqlq= "& sqlq &"<br>")
'	Set RScateg = Conn.Execute(sqlq)
'	WHILE NOT RScateg.EOF
%>

<%'=RScateg("categoria")%>

<%
'		RScateg.MoveNext
'	WEND
%>


<%
'	RScateg.Close
'	Set RScateg = Nothing
%>


<%
RS.MoveNext
Wend
%>

E poste o resultado, veja se o tipo de dado condiz com o tipo do campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salgado

 

a linha que esta em negrito abaixo da o seguinte erro:

 

A variável usa um tipo de automação sem suporte no VBScript

 

usei assim:

 

 

<%

categ = RS("categoria")

 

sqlq = "SELECT categoria FROM categoria where id = "& categ &";"

Response.Write("sqlq= "& sqlq &"<br>")

Set RScateg = Conn.Execute(sqlq)

WHILE NOT RScateg.EOF

%>

 

<%=RScateg("categoria")%>

 

<%

RScateg.MoveNext

WEND

%>

 

 

<%

RScateg.Close

Set RScateg = Nothing

%>

 

 

OBS: lembrando que o banco é MYSQL e requer cursor 3 e estou dentro de uma paginação MYSQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Informa um valor para categ.

 

categ = 1 ao invés de categ = RS("categoria")

 

E faça o teste se vai dar o mesmo erro.

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.