EXPRESSAO SQL NAO RETORNA DADOS

USUARIO.EXCLUIDOS 24/08/2006 01:45:09
#166951
Ola pessoal.. Não consigo percerber o q ta errado na expressão q eu uso pra alimentar um msflexgrid...
to usando assim:

Sub Mostra_Detalhes(mCodigo as string)
Dim mSQL as string
Dim Detalhes as Recordset
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = " & mCodigo
SET Detalhes = BancoDados.Openrecordset(mSQL, dbOpendynaset)
(...)
Essa consulta ta retornando apenas 1 registro mesmo qdo varios registros da tabela pedidos_detalhes atendem ao parametro "mCodigo"

Detalhe, todas as consultas do meu sistema q usam essa estrutura estão dando o mesmo erro..
Já testei varias possibilidades para resolver o problema, porem sem sucesso..
Será q alguem tem uma ideia?



HUGOSSOUZA 24/08/2006 07:00:34
#166954
tenta colocar isso...

[c]Sub Mostra_Detalhes(mCodigo as string)
Dim mSQL as string
Dim Detalhes as Recordset
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = " & mCodigo
SET Detalhes = BancoDados.Openrecordset(mSQL, dbOpendynaset)
if detalhes.recordcount > 0 then
detalhes.movelast
detalhes.movefirst
else
msgbox "Nenhum registro encontrado"
exit sub
endif

[/c]
RODRIGO.CAJU 24/08/2006 07:13:20
#166955
Percebi que o mCodigo é uma String (mCodigo as string), então tenta assim
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = '" & mCodigo & "'"

ou declara ele como integer dependendo de como está na base de dados...

Falow...
USUARIO.EXCLUIDOS 24/08/2006 07:18:59
#166956
ja havia tentado esse possibilidade... o estranho e q tava funfando normalmente e de repente começou a dar esse erro. Ja tentei, para efeito de teste, abrir a tabela inteira...
Set Detalhes = BancoDados.openrecordset("pedidos_detalhes, dbopendynaset)
e ainda assim continua retornando apenas um registro, so volta a mostrar todos os registros qdo mudo a opção pra "dbopentable"...
muito esquisito...
HUGOSSOUZA 24/08/2006 08:31:24
#166963
vc tentou o que eu coloquei?
depois que vc abriu o rs, da um rs.movelast e depois um rs.movefirst..
eu tenho esse mesmo problema e consigo resolver com esses comandos.
USUARIO.EXCLUIDOS 24/08/2006 09:03:03
#166971
HUGOSSOUZA, cara.. valeu pela atenção, mas como mencionei, ja tentei varias possibilidades, inclusive essa, o estranho e q essa mesma rotina tava funfando normalmente, retornado os dados direitiho, e de repente começou a dar esse erro.. o tipo do campo "codigo_pedido" e inteiro longo e ja tentei assim:
mSQL = "SELECT * FROM pedidos_detalhes WHERE codigo_pedido = " & clng(mCodigo)e, claro, sem sucesso...tbm ja criei um indice exclusivo, chave primaria, exclui o relacionamento da tabela e nd deu certo... ta dificil..
USUARIO.EXCLUIDOS 24/08/2006 10:15:16
#166985
criei um novo projeto pra testar e usei a mesma expressão, e retornou os dados direitinho... o problema ta no meu formulario... so q nao consigo encontrar..
USUARIO.EXCLUIDOS 24/08/2006 11:18:44
#167010
Verifique se em algum outro lugar do seu form vc utiliza o recordset Detalhes...


isso pode influenciar!
SERGIO.CARDOSO 24/08/2006 11:34:35
#167021
Voce pode continuar com esta ideia que voce comecou. Continue com este formulario que voce criou colocando os controles do formulario que nao esta funcionando. Ate voce colocar o controle ou o codigo que esta dando erro. Da um trabalhao mas comigo as vezes funciona.
USUARIO.EXCLUIDOS 24/08/2006 18:49:34
#167134
vou verificar a hipotese q o MARCELOHF levantou... tbm penso q pode ser por ai o problema...
Tópico encerrado , respostas não são mais permitidas