Select Simples com Problemas
Tenho uma Tabela com esses dados:
MDT_TurNumero Mod_Turma
1 4
3 1
3 2
3 3
Faço uma consulta para pequisar quais os módulos de uma turma passando como parâmetro o número da turma.
//Passagem do Parâmetro - A passagem vem do resultado de uma outra consulta!!
data.IBQModTur.Close;
data.IBQModTur.ParamByName(´turma´).value:=data.IBQTurDTTUR_NUMERO.Value;
data.IBQModTur.Open;
//A consulta no IBQModTur
select * from MODTURMA where MDT_TURNUMERO=:turma
O que está acontecendo: Quando o parâmetro passado é a turma número 3 ele só seleciona a primeira linha, visto que na tabela tem 3 ocorrências com essa turma.
Alguém sabe porque isso?
Valeu a força!!
JR.
MDT_TurNumero Mod_Turma
1 4
3 1
3 2
3 3
Faço uma consulta para pequisar quais os módulos de uma turma passando como parâmetro o número da turma.
//Passagem do Parâmetro - A passagem vem do resultado de uma outra consulta!!
data.IBQModTur.Close;
data.IBQModTur.ParamByName(´turma´).value:=data.IBQTurDTTUR_NUMERO.Value;
data.IBQModTur.Open;
//A consulta no IBQModTur
select * from MODTURMA where MDT_TURNUMERO=:turma
O que está acontecendo: Quando o parâmetro passado é a turma número 3 ele só seleciona a primeira linha, visto que na tabela tem 3 ocorrências com essa turma.
Alguém sabe porque isso?
Valeu a força!!
JR.
Jrjoliv2003
Curtidas 0
Respostas
Josemars
22/07/2004
Não entendi muito bem o dado que está sendo mostrado. è três e um ou trinta e um ????
GOSTEI 0
Jrjoliv2003
22/07/2004
É que a mensagem desaorganizou um pouco as informações. É assim:
São 2 colunas. Vou colocar na horizontal.
Turma(1,3,3,3)
Modul (4,1,2,3)
Se consulto com o número da turma 3, a consulta só me retorna o módulo 1 e deveria me retornar os módulos 1,2,3.
Valeu!!
JR.
São 2 colunas. Vou colocar na horizontal.
Turma(1,3,3,3)
Modul (4,1,2,3)
Se consulto com o número da turma 3, a consulta só me retorna o módulo 1 e deveria me retornar os módulos 1,2,3.
Valeu!!
JR.
GOSTEI 0
Emerson Nascimento
22/07/2004
´Quando o parâmetro passado é a turma número 3 ele só seleciona a primeira linha, visto que na tabela tem 3 ocorrências com essa turma´
onde essas informações estão sendo exibidas? numa grade? num componente data-ware? há filtros na sua query?
acho que a instrução está correta.
onde essas informações estão sendo exibidas? numa grade? num componente data-ware? há filtros na sua query?
acho que a instrução está correta.
GOSTEI 0
Jrjoliv2003
22/07/2004
Primeiro eu coloquei data.IBQModTur.RecordCount para ver a quatidade de linhas. Converti e exibia com showmessage().
Depois eu vinculei com uma DBGrid.
A mesma coisa!!!
JR.
Depois eu vinculei com uma DBGrid.
A mesma coisa!!!
JR.
GOSTEI 0
Paulo_amorim
22/07/2004
Olá
na passagem de parâmetros, vc tentou colocar ´3´ o invés do campo?
Se com uma constante ele funcionar, o problema não eh na query, e sim no componente dataaware aí...
Até+
na passagem de parâmetros, vc tentou colocar ´3´ o invés do campo?
Se com uma constante ele funcionar, o problema não eh na query, e sim no componente dataaware aí...
Até+
GOSTEI 0
Jrjoliv2003
22/07/2004
Vou testar!
Mais tarde te retorno!
Muito Obrigado.
José Roberto.
Mais tarde te retorno!
Muito Obrigado.
José Roberto.
GOSTEI 0
Jrjoliv2003
22/07/2004
Galera!!! Nada
Já fiz um monte de trocas:
data.IBQTurDTTUR_NUMERO.Value para data.IBQTurDTTUR_NUMERO.AsInteger
Já tirei o DataSource (de repente!!!)
Já usei data.IBQModTur.Params.ParamByName(´turma´).value:=data.IBQTurDTTUR_NUMERO.Value;
Já coloquei número (no caso 3).
Nada não sei mais o q faço!!
E preciso disso para pode terminar a tela.
JR.
:arrow: [color=red:5838d4d532]Mensagem alterada pelo Moderador oTTo. Evite o uso de palavrões.[/color:5838d4d532]
Já fiz um monte de trocas:
data.IBQTurDTTUR_NUMERO.Value para data.IBQTurDTTUR_NUMERO.AsInteger
Já tirei o DataSource (de repente!!!)
Já usei data.IBQModTur.Params.ParamByName(´turma´).value:=data.IBQTurDTTUR_NUMERO.Value;
Já coloquei número (no caso 3).
Nada não sei mais o q faço!!
E preciso disso para pode terminar a tela.
JR.
:arrow: [color=red:5838d4d532]Mensagem alterada pelo Moderador oTTo. Evite o uso de palavrões.[/color:5838d4d532]
GOSTEI 0
Otto
22/07/2004
tenta isso:
esse campo MDT_TURNUMERO é string ou inteiro?? :?
se for inteiro faça:
se for string faça:
ver se pega... :wink:
esse campo MDT_TURNUMERO é string ou inteiro?? :?
se for inteiro faça:
with query do begin if active then close; sql.text := ´select * from MODTURMA where MDT_TURNUMERO=´+Edit1.text; Open; end;//with
se for string faça:
with query do begin if active then close; sql.text := ´select * from MODTURMA where MDT_TURNUMERO= ´+QuotedStr(edit1.text); Open; end;//with
ver se pega... :wink:
GOSTEI 0
Jrjoliv2003
22/07/2004
É inteiro.
eu fiz, para testar, uma query só com esse código:
select * from ModTurma
quando faço ModTurma.RecordCount e exibo, me retorna apenas 1.
Coloquei no grid e só aparece a 1º linha da tabela consultada.
OBS: Isso q estou fazendo é parte integrante do meu Porjeto Final de curso. Tô na última tela das 23. Tava tudo dando certo. Tô desde Segunda-Feira nessa luta!!! C+&¬$#@
Tá falendo muito a ajuda.
JR.
eu fiz, para testar, uma query só com esse código:
select * from ModTurma
quando faço ModTurma.RecordCount e exibo, me retorna apenas 1.
Coloquei no grid e só aparece a 1º linha da tabela consultada.
OBS: Isso q estou fazendo é parte integrante do meu Porjeto Final de curso. Tô na última tela das 23. Tava tudo dando certo. Tô desde Segunda-Feira nessa luta!!! C+&¬$#@
Tá falendo muito a ajuda.
JR.
GOSTEI 0
Persist
22/07/2004
Ué :shock:
Então a tabela só tem um registro.
eu fiz, para testar, uma query só com esse código: select * from ModTurma quando faço ModTurma.RecordCount e exibo, me retorna apenas 1. Coloquei no grid e só aparece a 1º linha da tabela consultada.
Então a tabela só tem um registro.
GOSTEI 0
Jrjoliv2003
22/07/2004
Não!
Tem 4 registros: 1 para uma turma 2 e 3 para turma 4. Quando consulto só aparece a primeira linha.
JR.
Tem 4 registros: 1 para uma turma 2 e 3 para turma 4. Quando consulto só aparece a primeira linha.
JR.
GOSTEI 0