Login
Buscar
Quem está conectado
Há 26 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 25 Visitantes :: 2 Motores de buscaalceu11
[ Ver toda a lista ]
O recorde de usuários online foi de 337 em 27/12/2010, 08:00
Brasília
| |
Estamos no Twitter

Nossa Comunidade

Nosso Grupo

Últimos assuntos
Top dos mais postadores
| Marcos Guedes | ||||
| hugo | ||||
| alceu11 | ||||
| Julio | ||||
| m@r<3|o | ||||
| mfelis | ||||
| Tales Ruan | ||||
| Nelson Arcas | ||||
| _batmanvfp_ | ||||
| marcio |
Estatísticas
Temos 3637 usuários registradosO último usuário registrado atende pelo nome de reginaldolimas
Os nossos membros postaram um total de 13978 mensagens em 1958 assuntos
consulta sqlexec
Página 1 de 1 • Compartilhe •
consulta sqlexec
Olá
Estou com problemas na minha consulta, não consigo fazer um filtro por data.
no exemplo abaixo o thisform.inicio.value é um campo no formato date. o llrecibo só retorna -1. Acredito que falta algum comando pois, no debug a data está vindo como tipo caracter. No bd o campo é Date.
LOCAL llRecibo
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas.emolumentos.periodo = " + ALLTRIM(thisform.inicio.Value),"Arqemol")
IF llrecibo > 0
SELECT Arqemol
BROWSE
ENDIF
Estou com problemas na minha consulta, não consigo fazer um filtro por data.
no exemplo abaixo o thisform.inicio.value é um campo no formato date. o llrecibo só retorna -1. Acredito que falta algum comando pois, no debug a data está vindo como tipo caracter. No bd o campo é Date.
LOCAL llRecibo
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas.emolumentos.periodo = " + ALLTRIM(thisform.inicio.Value),"Arqemol")
IF llrecibo > 0
SELECT Arqemol
BROWSE
ENDIF
Campolinainfo- Participa Pouco

Re: consulta sqlexec
Vc disse ke esta vindo como caractere , a funcao dtoc transforma um campo data
em caracter
**
**Codigo
set date briti
set century on
SET NULLDISPLAY TO ""
local mdata
***aqui o comando, so ke vira com as barras 14/12/2011
mdata=Dtoc(thisform.inicio.Value)
sera ke nao e isto nao ?
Where dtoc(Taxa_Emolumentos.periodo)=thisform.incio.value
****
ou
Funcao ctod(nome do campo) ou ctod(nomevariavel)
para pegar o campo que esta em caracter em formatar data
Codigo
local mdata
mdata=ctod(thisform.inicio.Value)
Duvida
o que é isto = taxas.emolumentos.periodo ? ,,parece ke tem algo a mais aki!!!
Nao seria Where Taxa_Emolumentos.periodo=Ctod(thisform.incio.value)
veja no help
set date
***
Antes de rodar poderia fazer assim
select taxa_emolumentos
if taxa_emolumentos.periodo=date()
wait window 'verdadeiro'
else
wait windo 'falso'
endif
em caracter
**
**Codigo
set date briti
set century on
SET NULLDISPLAY TO ""
local mdata
***aqui o comando, so ke vira com as barras 14/12/2011
mdata=Dtoc(thisform.inicio.Value)
sera ke nao e isto nao ?
Where dtoc(Taxa_Emolumentos.periodo)=thisform.incio.value
****
ou
Funcao ctod(nome do campo) ou ctod(nomevariavel)
para pegar o campo que esta em caracter em formatar data
Codigo
local mdata
mdata=ctod(thisform.inicio.Value)
Duvida
o que é isto = taxas.emolumentos.periodo ? ,,parece ke tem algo a mais aki!!!
Nao seria Where Taxa_Emolumentos.periodo=Ctod(thisform.incio.value)
veja no help
set date
***
Antes de rodar poderia fazer assim
select taxa_emolumentos
if taxa_emolumentos.periodo=date()
wait window 'verdadeiro'
else
wait windo 'falso'
endif

alceu11- Usuário 5 Estrelas

Re: consulta sqlexec
olá alceu
eu fiz assim mas não deu
LOCAL llRecibo, lcval01
lcval01=CTOD(thisform.inicio.value)
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas.emolumentos.periodo = lcval01","Arqemol")
IF llrecibo > 0
SELECT Arqemol
BROWSE
ENDIF
o llrecibo está retornando -1
o teste que vc me passou deu falso.
eu fiz assim mas não deu
LOCAL llRecibo, lcval01
lcval01=CTOD(thisform.inicio.value)
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas.emolumentos.periodo = lcval01","Arqemol")
IF llrecibo > 0
SELECT Arqemol
BROWSE
ENDIF
o llrecibo está retornando -1
o teste que vc me passou deu falso.
Campolinainfo- Participa Pouco

Re: consulta sqlexec
Aki a condicao where esta errado.
******** estava . e é taxas_emolumentos.periodo
"where taxas_emolumentos.periodo = lcval01","Arqemol")
*Se deu falso, Vc nao entendeu pq deu Falso,,,pq a data hoje nao igual a data tabela
Select taxa_emolumentos
go top
Browse last normal && veja a data do primeiro registro && ser for 11/11/2011
***Ficaria assim e tera ke da verdadeiro
if taxa_emolumentos.periodo=ctod('11/11/2011') &&PEgue data 1o.registro.
wait window 'verdadeiro'
else
wait windo 'falso'
endif
***
AGORA A SOLUCAO.
Tudo pode ser formatado em propriedades o thisform.inicio.value
vai no objeto, click nele "inicio" ke e um txt, E em proprieades aba data veja a figura
format =E
Value= {}
veja a figura de como formatar
em format [Você precisa estar registrado e conectado para ver esta imagem.]
Se formatar como esta na figura.
o codigo irar funcionar, sem te ke transformar nada
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas.emolumentos.periodo = lcval01","Arqemol")
******** estava . e é taxas_emolumentos.periodo
"where taxas_emolumentos.periodo = lcval01","Arqemol")
*Se deu falso, Vc nao entendeu pq deu Falso,,,pq a data hoje nao igual a data tabela
Select taxa_emolumentos
go top
Browse last normal && veja a data do primeiro registro && ser for 11/11/2011
***Ficaria assim e tera ke da verdadeiro
if taxa_emolumentos.periodo=ctod('11/11/2011') &&PEgue data 1o.registro.
wait window 'verdadeiro'
else
wait windo 'falso'
endif
***
AGORA A SOLUCAO.
Tudo pode ser formatado em propriedades o thisform.inicio.value
vai no objeto, click nele "inicio" ke e um txt, E em proprieades aba data veja a figura
format =E
Value= {}
veja a figura de como formatar
em format [Você precisa estar registrado e conectado para ver esta imagem.]
Se formatar como esta na figura.
o codigo irar funcionar, sem te ke transformar nada
- Código:
LOCAL llRecibo
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas_emolumentos.periodo = " + ALLTRIM(thisform.inicio.Value),"Arqemol")
IF llrecibo > 0
SELECT Arqemol
BROWSE
ENDIF
Última edição por alceu11 em 14/12/2011, 12:10, editado 1 vez(es)

alceu11- Usuário 5 Estrelas

Re: consulta sqlexec
realmente eu tina visto esse erro na condição where, mas ainda não é isso.
o Teste agora deu verdadeiro mas eu não entendi para que serveria esse teste?
e pq o formato é E?
desculpa se as perguntas mas é pq sou iniciante.
o Teste agora deu verdadeiro mas eu não entendi para que serveria esse teste?
e pq o formato é E?
desculpa se as perguntas mas é pq sou iniciante.
Campolinainfo- Participa Pouco

Re: consulta sqlexec
1-)pergurnta
Set date briti && vc colocou
O teste e ke vc compara e verifica o campo e data, entao se eu pego algo caracter e com ctod transform em data.
E se vc informar a data ke esta no primeiro registro. tera, ke trazer pelo menos um registro..
A logica se eu sei ke te um resultado verdadeiro!!
Na minha consulta com Where me vira...o resultado com certeza. E vai da Certo,Sacou!!!
2*)pergunta resposta
Conforme imagem da resposta anterior a esta...
inicio é Objeto txtbox ke precisara ser formatado. para qdo for para where. ja Va certo
Format= E && dizer ke e data olha no help... format. proprieade
***Edits Date values as British dates
Value={}
Set date briti && vc colocou
O teste e ke vc compara e verifica o campo e data, entao se eu pego algo caracter e com ctod transform em data.
E se vc informar a data ke esta no primeiro registro. tera, ke trazer pelo menos um registro..
A logica se eu sei ke te um resultado verdadeiro!!
Na minha consulta com Where me vira...o resultado com certeza. E vai da Certo,Sacou!!!
2*)pergunta resposta
Conforme imagem da resposta anterior a esta...
inicio é Objeto txtbox ke precisara ser formatado. para qdo for para where. ja Va certo
Format= E && dizer ke e data olha no help... format. proprieade
***Edits Date values as British dates
Value={}

alceu11- Usuário 5 Estrelas

Re: consulta sqlexec
mesmo mudando as propriedades a consulta não deu certo. Retornou o erro de "function argument value, type, or count is invalid".
mas eu consegui de outra forma. Joguei o valor do Thisform.inicio.value em uma variavel acrescentando aspas simples:
lcVal01 = [']+;
ALLTRIM(thisform.inicio.value)+;
[' ]
em seguida executeo o comando com a variavel da seguinte forma
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas_emolumentos.periodo > " + lcval01,"Arqemol")
e nas propriedades eu só alterei o format do thisfom.inicio para D.
acho que o problema era a falta das aspas, pois fiz uma consulta por dentro do bd no postgre pelo Pgadmin e ela deu certo quando coloque a data entre aspas simples.
Muito Obrigado pela ajuda novamente.
mas eu consegui de outra forma. Joguei o valor do Thisform.inicio.value em uma variavel acrescentando aspas simples:
lcVal01 = [']+;
ALLTRIM(thisform.inicio.value)+;
[' ]
em seguida executeo o comando com a variavel da seguinte forma
llRecibo = SQLEXEC(pnConexao,"select emolumentos, recompe, tfj, descricao, cod_ato, valor_total, periodo, cod_empresa, periodo_fim from taxas_emolumentos "+;
"where taxas_emolumentos.periodo > " + lcval01,"Arqemol")
e nas propriedades eu só alterei o format do thisfom.inicio para D.
acho que o problema era a falta das aspas, pois fiz uma consulta por dentro do bd no postgre pelo Pgadmin e ela deu certo quando coloque a data entre aspas simples.
Muito Obrigado pela ajuda novamente.
Campolinainfo- Participa Pouco

RESOLVIDO kibom
Bom agora ke conseguiu , o postgree com instrucoes SQL ,sempre tem estas aspas. e colchotes nas instrucoes ; e fazendo pelo Admi. direto ja se tem os parametros da instrucao, a se passada
Por isto te passe o link dakele cursor demo com 6 videos, tem um form de pesquisa
de cidades ibge muito bom la........... fazendo um form de pesquisa igual aquele é uma mao na roda.... para este teste ke vc faz.
Num codigo simples so para constar, em vfp. Fica aki um exemplo de filtro de datas
Por isto te passe o link dakele cursor demo com 6 videos, tem um form de pesquisa
de cidades ibge muito bom la........... fazendo um form de pesquisa igual aquele é uma mao na roda.... para este teste ke vc faz.
Num codigo simples so para constar, em vfp. Fica aki um exemplo de filtro de datas
- Código:
* codigo filtrando uma data, e depois o periodo
CLOSE DATABASES ALL
SET DEFAULT TO FULLPATH(CURDIR())
Set Safety Off
SET DATE BRITISH
SET CENTURY on
SET DELETED off
Wait Windows "Gero a Tabela Teste1 65 registros " NOWAIT noclear
Create table teste1( codigo c(2) , cliente c(40), endereco c(30),datai d(8) )
Select teste1
wdata=DATE()
For i = 1 To 65
Insert Into teste1 (codigo,cliente,endereco,datai) Values ( Alltrim(Str(i,7)), 'cliente '+LTRIM(Str(i)),'endereco'+ STR(i),wdata)
wdata=wdata+1
NEXT
wdt=CTOD('14/12/2011')
SELECT * FROM teste1 WHERE datai=wdt INTO CURSOR lixo
WAIT WINDOW 'somente a data 14/12/2011' TIMEOUT 1
SELECT lixo
IF _tally>0
BROWSE LAST normal
IF USED('lixo')
USE IN lixo
endif
ELSE
WAIT WINDOW 'nao existe registros para o periodo ' TIMEOUT 2
ENDIF
wdt=CTOD('14/12/2011')
WAIT WINDOW 'gerando data maior ke 14/12' TIMEOUT 1
SELECT * FROM teste1 WHERE datai > wdt AND datai < CTOD('24/12/2011') INTO CURSOR lixo
SELECT lixo
BROWSE LAST normal
CLOSE ALL
WAIT clear

alceu11- Usuário 5 Estrelas

Página 1 de 1
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
Início
» Criar Variáveis em sequencia
» No final a Impressora não Ejecta cem corta o papel
» Ajuda com Imagens no MySQL
» Instalando MySQL no linux
» Como Criar arquivos de Log`s para certos usuarios
» MySQL X VFP @MEMO
» Dirf
» EXE Instalador Não Executa
» SQL Server Setup
» localizar registro no postgreslq (alterar/incluir)
» Saber se existe uma tabela??
» Empacotar arquivos em um único executável
» VAGAS ANALISTA DE SISTEMAS - VISUAL FOX
» Escrever a DATA por extenso
» ActionScript - Introdução
» Selecionar campo com mais de 9 caracteres
» CEP do BRASIL e dos UFs do brasil com codigo do IBGE para nf - <<<
» Tutorial HTML
» PHP + CSS