Ir para conteúdo

POWERED BY:

Arquivado

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

eduardojipa

SELECT em 2 TABELAS

Recommended Posts

Vou tentar especificar pra ficar melhor, segue o código de uma página de news minha de exemplo:

 

ASP

[*]

 

[*]<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>

 

[*]<!--#include file="Connections/noticias.asp" -->

 

[*]<%

 

[*]Dim Recordset1

 

[*]Dim Recordset1_numRows

 

[*]

 

[*]Set RecordsetServer.CreateObject("ADODB.Recordset")

 

[*]Recordset1.ActiveConnection = MM_noticias_STRING

 

[*]Recordset1.Source "SELECT * FROM noticias ORDER BY id DESC"

 

[*]Recordset1.CursorType = 0

 

[*]Recordset1.CursorLocation = 2

 

[*]Recordset1.LockType = 1

 

[*]Recordset1.Open()

 

[*]

 

[*]Recordset1_numRows = 0

 

[*]%>

 

[*]<%

 

[*]Dim Repeat1__numRows

 

[*]Dim Repeat1__index

 

[*]

 

[*]Repeat1__numRows = 3

 

[*]Repeat1__index = 0

 

[*]Recordset1_numRows = Recordset1_numRows + Repeat1__numRows

 

[*]%>

 

[*]<html>

 

[*]<head>

 

[*]</head>

 

[*]<body>

 

[*]<table width="600" border="0" cellspacing="0" cellpadding="4">

 

[*] <% 

 

[*]While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 

 

[*]%>

 

[*] <tr>

 

[*] <td><p><%=(Recordset1.Fields.Item("Data").Value)%></p></td>

 

[*] <td><pRecordset1.Fields.Item("titulo_noticia").Value)%></p></td>

 

[*] </tr>

 

[*] <% 

 

[*] Repeat1__index=Repeat1__index+1

 

[*] Repeat1__numRows=Repeat1__numRows-1

 

[*] Recordset1.MoveNext()

 

[*]Wend

 

[*]%>

 

[*]</table>

 

[*]</body>

 

[*]</html>

 

[*]<%

 

[*]Recordset1.Close()

 

[*]Set Recordset= Nothing

 

[*]%>

 

[*]

 

Eu não manjo de programação no braço, por isso estou usando o Dreamweaver, sei que o código fica mais sujo e tals, mas é o que eu posso fazer no momento, esse script ai eu fiz e tá fungando (LINK), o que eu quero é colocar mais uma tabela (agenda) exibindo os ultimos 5 registros, a tabela agenda tem os campos: agid, agdata, aglocal, e devem ser ordenados pela data de forma decrescente.... quando eu gravo mais 1 record set no DW dá erro, na linha :

 

Recordset1.ActiveConnection = MM_noticias_STRING

 

Dizendo que já está em uso... o que eu devo fazer???

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que voce deve usar outro recordset pra fazer isso de forma mais simples

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas como, dá um exemplo com 2 recordsets

voce disse que funciona com um né???

 

então deixa ele quieto e cria outro pra lista a outra parte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa um RecordSet pra cada select.Outra opção seria fazer: Set RecordSet1 = Nothing pra poder usar o mesmo RecordSet, mas não tem pq você fazer isso.Outro detalhe é fechar TODOS os RecordSets que você abrir.No final do arquivo você coloca: Set RecordSet1 = Nothing Set RecordSet2 = NothingSet RecordSet3 = Nothing e por aí vai, até o total de RecordSets abertos.Outro detalhe importante é fechar a conexão (também no final do arquivo):MM_Noticias_String.closeSet MM_Noticias_String = NothingAbraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa um RecordSet pra cada select.

 

Outra opção seria fazer: Set RecordSet1 = Nothing pra poder usar o mesmo RecordSet, mas não tem pq você fazer isso.

 

Outro detalhe é fechar TODOS os RecordSets que você abrir.

No final do arquivo você coloca:

 

Set RecordSet1 = Nothing

Set RecordSet2 = Nothing

Set RecordSet3 = Nothing

 

e por aí vai, até o total de RecordSets abertos.

 

Outro detalhe importante é fechar a conexão (também no final do arquivo):

 

MM_Noticias_String.close

Set MM_Noticias_String = Nothing

 

Abraços!

<{POST_SNAPBACK}>

Já tentei usar 2 recordset, fecho certo no final.. mas naum funfa...

Se alguem puder me ajudar alterando o código que eu mandei no inicio do post..

adicionando por exemplo esse SELECT:

 

SELECT * FROM agenda ORDER BY agid DESC

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai ai isso me dá medo mas posta ai o codigo do DW com os dois RS pra tentar ver o motivo de não funcionar e se tiver mensagem de erro posta tambem

Compartilhar este post


Link para o post
Compartilhar em outros sites

use o Execute....var tab1 = conexao.Execute("Select * from tabela1");var tab2 = conexao.Execute("Select * from tabela2");Depois os dados irão retornar como:tab1("id");tab2("campo");

Compartilhar este post


Link para o post
Compartilhar em outros sites

use o Execute....

 

 

var tab1 = conexao.Execute("Select * from tabela1");

var tab2 = conexao.Execute("Select * from tabela2");

 

Depois os dados irão retornar como:

 

tab1("id");

 

tab2("campo");

<{POST_SNAPBACK}>

Mas como encaixo isso no código acima?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas como encaixo isso no código acima?

quando voce postar seu codigo eu tentarei te mostrar (isso se eu conseguir ver)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou postar a noite bem detalhado...

no aguardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera.... resolvi fazer um teste online..

 

http://www.eumais.com.br/noticias/default2.asp

 

funfou beleza com 2 recordset, porem...

 

na minha máquina ainda apresenta erro...

 

Imagem Postada

 

A linha 22 é a mesma do primeiro código deste post:

 

ASP

[*]Recordset2.ActiveConnection = MM_Conexao_STRING

 

porém na RecordSet2, os códigos de abertura ficaram assim:

 

ASP

[*]<%

 

[*]Dim Recordset1

 

[*]Dim Recordset1_numRows

 

[*]

 

[*]Set RecordsetServer.CreateObject("ADODB.Recordset")

 

[*]Recordset1.ActiveConnection = MM_Conexao_STRING

 

[*]Recordset1.Source "SELECT * FROM noticias ORDER BY id DESC"

 

[*]Recordset1.CursorType = 0

 

[*]Recordset1.CursorLocation = 2

 

[*]Recordset1.LockType = 1

 

[*]Recordset1.Open()

 

[*]

 

[*]Recordset1_numRows = 0

 

[*]%>

 

[*]<%

 

[*]Dim Recordset2

 

[*]Dim Recordset2_numRows

 

[*]

 

[*]Set RecordsetServer.CreateObject("ADODB.Recordset")

 

[*]Recordset2.ActiveConnection = MM_Conexao_STRING

 

[*]Recordset2.Source "SELECT * FROM agenda ORDER BY agdata DESC"

 

[*]Recordset2.CursorType = 0

 

[*]Recordset2.CursorLocation = 2

 

[*]Recordset2.LockType = 1

 

[*]Recordset2.Open()

 

[*]

 

[*]Recordset2_numRows = 0

 

[*]%>

 

E de fechamento assim:

 

ASP

[*]<%

 

[*]Recordset1.Close()

 

[*]Set Recordset= Nothing

 

[*]%>

 

[*]<%

 

[*]Recordset2.Close()

 

[*]Set Recordset= Nothing

 

[*]%>

 

Porque o erro no meu servidor e não na internet???

Compartilhar este post


Link para o post
Compartilhar em outros sites

não vejo erro

 

principalmente porque este é o tipo de conexao padrao do nosso amigo DW, passei uns 2 anos só conectando dessa forma eheheh.

 

então podemos testar outra forma

 

tipo troque

 

ASP

    [*]Set RecordsetServer.CreateObject("ADODB.Recordset")

     

    [*]Recordset1.ActiveConnection = MM_Conexao_STRING

     

    [*]Recordset1.Source "SELECT * FROM noticias ORDER BY id DESC"

     

    [*]Recordset1.CursorType = 0

     

    [*]Recordset1.CursorLocation = 2

     

    [*]Recordset1.LockType = 1

     

    [*]Recordset1.Open()

 

por

 

ASP

    [*]SET Conn Server.CreateObject("ADODB.Connection")

     

    [*]Conn.Open(MM_Conexao_STRING)

     

    [*]

     

    [*]STRSQL "SELECT * FROM noticias ORDER BY id DESC"

     

    [*]SET RS Conn.Execute(STRSQL)

 

faça isso pros dois recordsets e veja se rola

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu pela dica, vou tentar mais tarde e posto se funfou...

ok então garoto B)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha ai, na net roda legal, mas no meu localhost aparece erro na linha 22, que faz parte do recordset2

 

ASP

[*]Conn.Open(MM_Conexao_STRING)

 

Dizendo que o arquivo já está em uso...

Acho que o problema é pq essa linha se repete nos 2 recordset, mandando abrir a Conexao...

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.