Página 1 de 2
MySQL: mod()
Enviado: 11 Mar 2024 01:24
por cjp
Pessoal, por favor, uma ajuda:
Este código está dando o seguinte erro:
Os argumentos sÒo incorretos, estÒo fora do intervalo aceitßvel ou estÒo em conflito. (0x800A0BB9): ADODB.Recordset?
Em todas as pesquisas que fiz, a sintaxe da mod() estaria correta. Inclusive, quando uso a mod() num select normal (ex: SELECT * FROM tarextras WHERE MOD(id,2)=0), funciona sem problema.
Então, estou pressupondo que o problema seja no filtro da oRs. Mas não estou enxergando o erro.
Só gostaria de pegar os registros com id par.
Se esta não for a forma correta de fazer o filtro, alguém poderia me indicar como seria?
Grato
MySQL: mod()
Enviado: 11 Mar 2024 08:41
por JoséQuintas
Isso confunde mesmo.
Esse filter não é do MySQL, é local, do ADO.
Vai ter que pesquisar quais expressões são válidas.
MySQL: mod()
Enviado: 11 Mar 2024 11:39
por cjp
Então, eu pesquisei e não achei nada.
Se mod() não é possível no recordset, teria outra forma de filtar só os ids pares ou só os ímpares?
MySQL: mod()
Enviado: 11 Mar 2024 17:05
por alxsts
Olá!
Você esta usando Mod(), que é uma função do MySQL.
ADO utiliza sintaxe Visual Basic. Experimente assim usando o operador Mod do Visual Basic:
cjp escreveu:Se mod() não é possível no recordset, teria outra forma de filtar só os ids pares ou só os ímpares?
Sim, use a cabeça.
cjp escreveu:SELECT * FROM tarextras WHERE MOD(id,2)=0), funciona sem problema
Se você testou isto e funcionou, incorpore mais uma coluna ao teu select que gera o record set:
Código: Selecionar todos
SELECT col1, col2, coln, Mod(id,2) Parimpar
FROM tarextras
WHERE <condição >
Depois, na hora de filtrar, use:
Código: Selecionar todos
oRs:Filter = "Parimpar = 0" // pares
//Ou
oRs:Filter = "Parimpar > 0" // ímpares
MySQL: mod()
Enviado: 11 Mar 2024 22:19
por cjp
oRs:Filter="id mod 2 = 0"
Assim também não funcionou.
oRs:Filter = "Parimpar = 0" // pares
//Ou
oRs:Filter = "Parimpar > 0" // ímpares
De fato, não tinha pensado nisso.
Agora deu certo. Muito obrigado.
MySQL: mod()
Enviado: 23 Mar 2024 10:24
por BigElf98
Parece que o problema está na forma como você está aplicando o filtro usando o mod() no objeto Recordset. O erro sugere que os argumentos estão incorretos ou fora do intervalo aceitável. Em vez de usar mod(id,2)=0 diretamente no filtro, tente usar uma abordagem diferente para filtrar os registros com id par. Uma maneira alternativa seria iterar pelos registros e verificar manualmente se o id é par, adicionando-os a um novo conjunto de dados. Outra opção seria usar uma consulta SQL com um WHERE para filtrar os registros antes de carregá-los no Recordset.
MySQL: mod()
Enviado: 23 Mar 2024 22:23
por JoséQuintas
Só lembrar do básico.
No Advantage Database Server também tem dessas coisas.
Não tem uma, vai outra.
e por aí vai.
MySQL: mod()
Enviado: 23 Mar 2024 23:03
por alxsts
Olá!
Tenho notado em posts recentes, a julgar pelos nomes de usuário, todos recém inscritos no fórum, e pelo estilo de texto que publicam, que são textos de inteligência artificial, tipo ChatGPT. Alguns até fazem sentido, como no caso presente, apesar de sugerir uma solução já proposta anteriormente.
Alguém tem a mesma impressão? A que se deve isto? Alguma vulnerabilidade? Ou existiria outra explicação?
MySQL: mod()
Enviado: 24 Mar 2024 01:21
por cjp
Também estranhei a mensagem do "BigElf98", neste e em outro tópico, em ambos os quais eu já tinha obtido a solução.
Mas pra que uma IA iria se cadastrar no fórum e responder dúvidas?
MySQL: mod()
Enviado: 24 Mar 2024 11:56
por BigElf98
Uma possível solução seria usar a função de janela SUM() em vez de uma variável de usuário (@SOMA) para calcular o saldo cumulativo. Isso deve garantir que o cálculo siga a ordem correta definida no ORDER BY. Aqui está um exemplo de como você pode ajustar seu código:
Código: Selecionar todos
SELECT
BADATBAN,
BADATEMI,
BARESUMO,
BAHIST,
IF( BAVALOR > 0, BAVALOR, 0 ) AS ENTRADA,
IF( BAVALOR < 0, BAVALOR, 0 ) AS SAIDA,
SUM(BAVALOR) OVER (ORDER BY BADATBAN, BADATEMI, IDBANCARIO) AS SALDO
FROM
JPBANCARIO
WHERE
BAVALOR <> 0
ORDER BY
BADATBAN, BADATEMI, IDBANCARIO
Espero que esse código que meu amigo com
king slots me ajudou a escrever ajude a resolver seu problema e que tudo funcione como deveria. Boa sorte!
MySQL: mod()
Enviado: 24 Mar 2024 11:59
por JoséQuintas
Mesma impressão.
Com a mensagem recente (que deve ser excluída), virou coisa conhecida no fórum: misturar assunto de outro tópico e colocar algo indesejado no meio de mensagem aparentemente útil. Deixa na dúvida sobre como moderar isso.
MySQL: mod()
Enviado: 24 Mar 2024 12:36
por alxsts
Olá!
Deveria haver uma verificação no cadastramento de novos membros. Tipo Captcha.
Infelizmente não temos quem faça manutenção por falta de acesso.
MySQL: mod()
Enviado: 25 Mar 2024 02:11
por cjp
Se eu puder ajudar o fórum de alguma maneira, dentro das minhas limitações, estou à disposição.
MySQL: mod()
Enviado: 25 Mar 2024 11:45
por alxsts
Olá!
cjp escreveu:Se eu puder ajudar o fórum de alguma maneira, dentro das minhas limitações, estou à disposição
Seria interessante alguém com conhecimentos em PHP.
O problema é que, ao que me consta, o Toledo não deixou senhas de acesso a fontes, banco de dados...
MySQL: mod()
Enviado: 25 Mar 2024 12:46
por cjp
Não sei se o meu conhecimento é suficiente, mas, se eu puder ajudar, estou à disposição.
Aconteceu alguma coisa com o Toledo?