Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
16 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 16 Visitantes :: 2 Motores de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 2

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 2

Visite meu canal no Youtube

20/1/2017, 00:45 por ImRicoh

VFP Unlimited


Comentários: 0

Bloquear edição do ListBox

17/6/2010, 15:13 por Julio

Pessoal

Boa Tarde!

Tnho uma listbox apenas para exibir o resultado.
Preciso bloquear a listbox …

Comentários: 17

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 0

Estatísticas
Temos 6991 usuários registrados
O último usuário registrado atende pelo nome de cpmacedo

Os nossos membros postaram um total de 8 mensagens em 3 assuntos

consulta sqlexec

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Resolvido consulta sqlexec

Mensagem por Campolinainfo em 14/12/2011, 10:02

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




Campolinainfo
Começando a Participar
Começando a Participar


Voltar ao Topo Ir em baixo

Resolvido Re: consulta sqlexec

Mensagem por alceu11 em 14/12/2011, 10:32

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

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: consulta sqlexec

Mensagem por Campolinainfo em 14/12/2011, 11:24

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.

Campolinainfo
Começando a Participar
Começando a Participar


Voltar ao Topo Ir em baixo

Resolvido Re: consulta sqlexec

Mensagem por alceu11 em 14/12/2011, 11:56

Aki a condicao where esta errado.

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
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: consulta sqlexec

Mensagem por Campolinainfo em 14/12/2011, 12:08

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.

Campolinainfo
Começando a Participar
Começando a Participar


Voltar ao Topo Ir em baixo

Resolvido Re: consulta sqlexec

Mensagem por alceu11 em 14/12/2011, 12:14

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={}

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Resolvido Re: consulta sqlexec

Mensagem por Campolinainfo em 14/12/2011, 15:11

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.

Campolinainfo
Começando a Participar
Começando a Participar


Voltar ao Topo Ir em baixo

Resolvido RESOLVIDO kibom

Mensagem por alceu11 em 14/12/2011, 15:25

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
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
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum