Fórum Consulta com Data #381750
19/07/2010
0
Paulo Andrade
Curtir tópico
+ 0Posts
19/07/2010
Emerson Nascimento
ds.atestado.sql.add('select atestado.idempresa, atestado.idatestado from atestado');
ds.atestado.sql.add('where atestado.idempresa = :empresa and atestado.data = :data')
atestado.params.parambyname(':empresa').asinteger := numerodaempresa;
atestado.params.parambyname(':data').asdate := datadesejada;
atestado.open;
Gostei + 0
29/07/2010
Paulo Andrade
Gostei + 0
30/07/2010
Emerson Nascimento
sqlAtestados.SQL.Add('select ATESTADO.IDEMPRESA, ATESTADO.IDATESTADO, ATESTADO.DATAEXAME');
sqlAtestados.SQL.Add('from ATESTADO');
sqlAtestados.SQL.Add('where ATESTADO.DATAEXAME = :dataexame');
sqlAtestados.SQL.Add('and ATESTADO.IDEMPRESA = :idempresa');
sqlAtestados.Open; <---- abrindo ANTES de preencher os parâmetros. errado!
sqlAtestados.ParamByName(':idempresa').AsInteger := StrToInt(DBEditIdEmpresa.Text); sqlAtestados.ParamByName(':dataexame').AsDate := DTPicInicial.Date;
'sqlAtestados: Parameter ':idempresa' not found' Diz q n existe os parâmentros, não encontrado!
vamos prestar atenção nos exemplos passados... você está abrindo a query ANTES de preencher os parâmetros. no exemplo passado a query deve ser aberta DEPOIS de preencher os parâmetros.
sqlAtestados.Close;
sqlAtestados.SQL.Clear;
sqlAtestados.SQL.Add('select ATESTADO.IDEMPRESA, ATESTADO.IDATESTADO, ATESTADO.DATAEXAME');
sqlAtestados.SQL.Add('from ATESTADO');
sqlAtestados.SQL.Add('where ATESTADO.DATAEXAME = :dataexame');
sqlAtestados.SQL.Add('and ATESTADO.IDEMPRESA = :idempresa');
sqlAtestados.ParamByName('idempresa').AsInteger := StrToInt(DBEditIdEmpresa.Text); sqlAtestados.ParamByName('dataexame').AsDate := DTPicInicial.Date;
sqlAtestados.Open; <--- abrindo após preencher os parâmetros. correto.
uma outra coisa: ao criar o parâmetro você usa os dois pontos (:), mas no momento de usar o parâmetro ele não deve ser colocado.
Gostei + 0
15/08/2010
Carlos Mazzi
Gostei + 0
17/08/2010
Edinei Colli
ds.atestado.sql.add('where atestado.idempresa =' + Edit1.text)
ds.atestado.sql.add('where atestado.idempresa =' + QuotedStr(Edit1.text))
Gostei + 0
18/08/2010
Emerson Nascimento
ds.atestado.sql.add('where atestado.idempresa =' + Edit1.text)
ds.atestado.sql.add('where atestado.idempresa =' + QuotedStr(Edit1.text))
DESCULPE, mas está tudo errado. um ID é geralmente um inteiro e, nesse caso, não se deve usar o QuotedStr().
quanto a data:
imagine que eu informei no edit: 08/01/2010
quando eu passar pro banco de dados esse valor '08/01/2010', o banco vai entender o que? oito de janeiro de 2010 ou primeiro de agosto de 2010?
por isso não se deve passar uma data concatenada ao comando, e sim por parâmetro, porque o mecanismo de acesso ao banco de dados faz a conversão da informação do parâmetro para formato correto.
Gostei + 0
19/08/2010
Edinei Colli
ds.atestado.sql.add('where atestado.idempresa =' + Edit1.text)
ds.atestado.sql.add('where atestado.idempresa =' + QuotedStr(Edit1.text))
DESCULPE, mas está tudo errado. um ID é geralmente um inteiro e, nesse caso, não se deve usar o QuotedStr().
quanto a data:
imagine que eu informei no edit: 08/01/2010
quando eu passar pro banco de dados esse valor '08/01/2010', o banco vai entender o que? oito de janeiro de 2010 ou primeiro de agosto de 2010?
por isso não se deve passar uma data concatenada ao comando, e sim por parâmetro, porque o mecanismo de acesso ao banco de dados faz a conversão da informação do parâmetro para formato correto.
Gostei + 0
21/08/2010
Paulo Andrade
sqlAtestados.SQL.Clear;
sqlAtestados.SQL.Add('select ATESTADO.IDATESTADO, ATESTADO.IDEMPRESA, ATESTADO.IDPASCIENTE, ATESTADO.DATAEXAME, ATESTADO.STATUS, ATESTADO.CIDADE ');
sqlAtestados.SQL.Add('from ATESTADO');
sqlAtestados.SQL.Add('where ATESTADO.DATAEXAME =' + QuotedStr(Edit1.Text));
sqlAtestados.SQL.Add('and ATESTADO.IDEMPRESA =' + QuotedStr(DBEditIdEmpresa.Text));
sqlAtestados.Open; »»» Fim ««« Pessoal, seguindo as dicas acima, conseguí chegar a este código. Se eu digitar a data 05/26/2010 (formato: mm/dd/yyy), funciona. Se eu digitar 26/05/2010 (formato: dd/mm/yyyy) aparece o seguinte erro: conversion error from string "26/05/2010". Obrigado pela colaboração...
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)