Ir para conteúdo

Arquivado

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

mateus2

Relacionamento + asp classico

Recommended Posts

Galera

 

Alguem tem algum link ou exemplo que mostra como lidar com tabela feita em .mdb e que tenha rotinas de adicionar, alterar, excluir, pesquisar registros com duas tabelas relacionadas?

 

Preciso de um exemplo apenas, atraves dele será mais facil eu (leigo) poder entender e estudar como é...

 

Pesquisei muitoooooooooooooooo e não consegui achar algo didático para que nao sabe muito de asp,

se alguem puder dar uma força para mim.... me ajudarão muito... q dificil para achar isto..

 

Obrigadaoooo

 

alguem tem algum exemplo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

o relacionamento entre tabelas você faz um INNER JOIN,você precisa ter uma relacionamento entre as tabelas, na verdade, a impôrtancia de uma modelagem de dados bem definida até os mínimos detalhes, como os campos de relacionamentos, um velho ditado diz, que um relacionamento bem definido é a alma do aplicativo, pois daí saem todas as consultas e operações com o banco, influenciando diretamente na otimização e performance do aplicativo

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, obrigado... já li muito teoria, mas a frustracao e ajuda que gostaria, se possivel de alguem é apenas um "exemplo" para eu ter um luz, porque nao sei como fazer... o q você falou do inner join achei de monte na net, mas como aplico isto num "mero, simples, mortal" exemplo que nao acho... nao tenho o know how da programacao...

 

entao um exemplo iria ajudar muito

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá:

Tabela pedido com: id, idcliente, total, dataent

tabela peddet com: id, idproduto, idpedido, quantidade, precoun, subtotal

 

sql="select Sum(subtotal) AS preco, Sum(quantidade) as qtd, prodid from peddet inner join pedido on peddet.idpedido = pedido.id where Month(pedido.dataent)='"&mes&"' group by peddet.prodid order by preco DESC"

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tah, vou por a paradinha q estou tentando fazer :( ... simples mas para leigos um "desafiouuuu"

 

 

Tabela = Professores

id_professor = autoincrement

nome_profe = text = 50

 

Tabela = alunos

id_aluno = autoincrement

id_relaciona_profe = numerico

nome_aluno = text 50

 

entao, arrastei o id_pressor até id_relaciona_profe la na telinha de relacionamentos do access versao 2003

 

cadastrei alguns registros la mesmo no acess para acompanhar como ficaria a paradinha...

 

ai, pesquisei...pesquisei e cheguei nesta linha.... ma naun sei se tá ok....

 

 

SQL="SELECT aluno.id_aluno, alunos.nome_aluno, professor.id_professor, professores.nome_profe FROM alunos INNER JOIN professores ON alunos.id_aluno = professores.id_professor ORDER BY aluno.id_aluno, alunos.nome_aluno"

 

acredite, até chegar aqui foi uma suaderrraa... horas de pesquisa...ei, ser newbie nao é fácil ermao!!

 

so que nao ta listando nadica... o q ta pegando de errado?

 

valeuz

Compartilhar este post


Link para o post
Compartilhar em outros sites

dá uma verificada no post #2 aquele exemplo de código é comentado, de fácil assimiliação da lógica, o INNER JOIN, imagine duas tabelas categoria e produto, um relacionamento de um-para-muitos, pois uma categoria pode ter varios produtos, você ter um relacionamento, e terá que ter uma chave estrangeira na tabela categoria, tipo id_cat e este campo também na tabela produtos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei porque não consegui postar isso a tarde, mas segue abaixo o que ia comentar:

 

quando você faz o select:

SQL="SELECT ... professor.id_professor, professores.nome_profe FROM alunos ..."

você nao diz que também tem que selecionar da tabela de professeres no from

no inner join:

"...INNER JOIN professores ON alunos.id_aluno = professores.id_professor ..."

a relação entre aluno e professor não é pelo id_aluno e sim pelo id_relaciona_profe, conforme você disse, por isso não exibe nada.

O order by faria diferente:

"... ORDER BY aluno.id_aluno, alunos.nome_aluno..." você manda ordernar pelo id e pelo nome do aluno, o melhor é ordenar pelo nome em ordem ascendente.

Note que você tem a tabela alunos e a tabela professores, e na declaração do sql tem chamada para a tabela aluno e para a tabela professor (no singular) por isso que também não é exibido nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT INNER JOIN - Utilizamos o inner join em casos que é preciso montar um recordset lendo dados de mais de uma tabela. É uma forma de unir tabelas, e para isso é preciso que haja uma relação entre as mesmas, ou seja, um campo de ligação. É válido dizer que estes campos não precisam conter o mesmo nome, porém devem ser do mesmo tipo.

 

O objetivo desta página é exibir dados de duas tabelas, sendo a de categorias e a de produtos. Imagine você criando um e-commerce onde é preciso mostrar aos internautas quais produtos existem por categorias para que eles possam ter uma visão melhor dos dados contidos no banco de dados. É exatamente nesse caso que utilizamos o inner join.

 

A sintaxe do inner join não é difícil de entender, basta ter os relacionamentos das tabelas para saber como ligá-las e quais ligações são possíveis. De um modo geral, toda vez que citar um campo, especifique qual tabela ele pertence. Veja a sintaxe abaixo:

 

strSQL = "SELECT Categoria.Categoria, Produtos.Produto, Produtos.VRL_Unitario "

Seleciona o campo Categoria da tabela Categoria, os campos Produto e VRL_Unitario da tabela Produtos

 

strSQL = strSQL & "FROM Categoria "

A origem é a tabela Categoria. Isso significa que a tabela Categoria é o lado UM de um relacionamento, e com isso, o recordset é montado mais rapidamente; não que esteja errado colocar a tabela Produtos, mas procure adotar esta regra de boas maneiras de programação em banco de dados.

 

strSQL = strSQL & "INNER JOIN Produtos "

A tabela Categoria citada acima será ligada a tabela Produtos.

 

strSQL = strSQL & "ON Categoria.COD_Categoria = Produtos.COD_Categoria "

Aqui é declarado quais os campos de ligação, sendo o campo COD_Categoria da tabela Categoria e o campo COD_Categoria da tabela Produtos.

 

strSQL = strSQL & "ORDER BY Categoria.Categoria, Produtos.Produto"

É determinado a ordem em que o recordset será exibido, sendo primeiro por categoria e em seguida pelo produto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado, thank you, danke, merci, grazie, arigato, muchas gracias..... vou ler isso algumas vezes e tentar ver o que consiguirei... c nao tiver sucesso nos testes postarei novamente.

 

Muito obrigado pela atencao

Compartilhar este post


Link para o post
Compartilhar em outros sites

impôrtancia de uma modelagem de dados bem definida faz a diferença...

Compartilhar este post


Link para o post
Compartilhar em outros sites

xanburzum

 

- obrigado pelo exemplo disponibilizado.

 

- nao quero ser ingrato ou pretencioso, mas vou comentar:

 

- estou "tentando aprender" algo que "nao sei direito" como é feito...

sou "tatu, fuçador" e vou tentando aprender atravez de exemplos... assim que consigo..

 

- fiz todos os "18" arquivos do seu exemplo, veja as dificuldades do newbie aqui..rs

 

. baixei um tal de dreamweaver q dizem ser um bom editor para isto, beleza..

. copie e colei e fui salvando um a um dos arquivos.

. TODAS as aspas duplas no seu arquivo ( codigo ) ficam "inclinadas" para o

lado esquerdo, ou seja, erro ao tentar rodar o código, então tive que abrir os

18 arquivos e dar um find e replace em todas as aspas erradas e trocá-las

nos 18 aquivos .... imagina qtas aspas dusplas tive que trocar? kkk

. aspas simples tambem estavam invertidas, mesma coisas, find e replace, sem

mecionar que nas linhas do SQL tinha as aspas simples tambem.... imagina o rolo ...

. ahh em alguns lugares tinha o caracter de ? no lugar da aspa dupla, mas qdo

voce passa parametro la tem que ficar a interrogacao e nao pode trocar pelas aspas

duplas.... muito cabrero para iniciantes rs , desculpe...

. modelagem de dados: já li sobre isto, mas nao sei direito porque nao sou programa

dor... sorry, nao sei como você fez as tabelas :-( os relacionamentos etc..

. tentei entender seu exemplo, mas onde tem os relacionamentos? se nao tenho as

tabelas e nem sei como fazer direito kkk, desculpe tenho que rir porque to perdido

mano!!!

 

Entao eu, como muitos outros... penso... que aprendemos de exemplos.... se voce colocasse

um link com o exemplo pronto para baixar e tentar aprender no exemplo pronto ( sem ter que saber onde tem ou nao aspas rs ) será que nao seria mais facil para mim, claro seu

exemplo pode certamente ajudar outras pessoas.

 

Imagino que a sua ajuda ou da galera ali é voluntaria e nao quero ser "ingrato"

pela "bondade" do tempo e "conhecimento" etc.... mas... putz, qdo se esta iniciando e

a "luz" nao brilha...rsrs é muito dificil... e nao dá para sacar...

mas tenho fé q você ou alguem poderão por um exemplo caprichadiho "de relacionamento"... faloww....

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

hummmm

quer um conselho ? Se é para aprender, não use dreamweaver, pessoalmente acho muito ruim ele, incha o codigo, vem com um monte de coisa pronta e voce não aprende nada assim.

Quer um editor bom e pratico ? Uso o Html-kit, não sofre atualizações há anos, mas não achei nada que me agradasse como ele, talvez o notepad ++ lhe agrade.

 

Vamos imaginar que você precisa criar um sistema....

Um sistema para uma videolocadora pode ser ?

Quais tabelas esse sistema precisa ? Como voce vai resgatar essas informações ? Se pedirem um relatório como vai fazer ?

Começemos pela tabela de clientes: Todo cliente tem um nome, endereço, documento de identificação, etc...

Depois teremos uma tabela para cadastrar os filmes: Nome do filme, sinopse, elenco, duração do filme, ano de produção, categoria, etc...

tabela de locação: nome do cliente, nome do filme,dia da locação, etc...

e por ai vai, imagine que voce precisa criar um sistema real, para uma empresa real, seguir exemplos, é muistas vezes muito abstrato, pois temos o exemplo, mas não temos o objetivo, ai fica vago e de dificil compreensão.

 

Se fosse comprar um sistema para uma videolocadora, o que esse sistema precisaria ter para você? E como fazer isso?

Cadastro/alteração/deleção/consulta de clientes, filmes, diarias, etc, etc....

E os relatórios? Quais você quer ter ? Clientes mais assiduos ? Clientes mais assiduos por categoria de filme ? Filmes mais locados ? Diarias em aberto ? etc....

Vai querer um relatório só na tela ou vai ser impresso também ? Vai usar pdf para isso ? E as imagens ? Fará upload via sistema ?

 

Pense em montar um sistema para uma empresa qualquer e a primeira coisa que terá de pensar é em como organizar as informações no banco de dados, e depois o resto flui naturalmente.

Note que os relacionamentos entre tabelas, não precisam estar explicito como o access mostra com a tabela A linkada na tabela B por um "campo em comum".

Por vezes o relacionamento é feito na linha de programação mesmo, porque foi definido durante o projeto, pois imagine ter de usar um banco de dados que não seja o access e que não exibe o relacionamento entre as tabelas atraves de uma tela só para isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você também pode usar o VisualStudio, muito bom também , o dreamweaver eu gosto dele, mas se usar alguns componentes ele coloca algumas tags a mais, pouca coisa, as aspas simples e duplas, provavelmente você copiou e colou mas talvez tenha colado no modo de design, mas estranho isso tamb~em pode ser configuração do DW.

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado... estou tentando ainda....

 

queria apenas fazer um exemplo com um mero cadastro de alunos e com cidades realacionadas, vou ver o que consigo qq coisa vou postar e pedindo, mas sem exemplos para quem nao entende muito é dificil.

 

relacionamento eu consegui ( ufa - 1 passo ) ... mas nao sei como faço a insercao de dados, edicao e pesquisa com o relacionamento

Compartilhar este post


Link para o post
Compartilhar em outros sites

pega aquele link que te mandei ,pega o código e vai estudando ele, tipo um teste de mesa...

para aprender a lógica

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado.... mas acho seu exemplo um pouco complexo para quem nao conhece muito...

 

como vou adivinhar os campos relacionados?

 

mas vou tentar....

Compartilhar este post


Link para o post
Compartilhar em outros sites

recuperando um topico abandonado rsrsr, chegoua minha vez de aprender inner join. atualmente tenho um "listar" de uma tabela faço dessa maneira usando o do while

<%
vSql = "SELECT * FROM TAB_ATUALIZAR_BRASFELS ORDER BY CODIGO DESC"
Set myRst = Server.CreateObject("ADODB.Recordset")
myRst.Open vSql, conn, 3, 3
%>
<%
do while not myRst.EOF
var_codigo = myRst.fields("codigo")
var_CPU = myRst.fields("CPU")
var_MONITOR = myrst.fields("MONITOR")
var_ACAO = myrst.fields("ACAO")
var_USUARIO = myrst.fields("USUARIO")
var_MATRICULA = myrst.fields("MATRICULA")
var_DEPARTAMENTO = myrst.fields("DEPARTAMENTO")
var_DATA = myrst.fields("DATA")
var_obs = myrst.fields("OBS")
%>
<% myRst.MoveNext
loop
%>
Ae vem a luta preciso buscar da outra tabela "tab_quadro_brasfels" a coluna descricao oque é informado ao campo cpu(este campo tem nas duas tabelas)
como usar o inner join???

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.