Parâmetro Data em ADOQuery.
Não estou conseguindo definir 1 parâmetro de uma ADOquery pra ftDate, toda vez q marco ftDate, ele muda pra ftDateTime, alguém sabe o q pode estar acontecendo?
D4rk Schn31d3r
Curtidas 0
Respostas
Edineidaniel
06/05/2004
Dark,
tenho outra forma de passar parâmetros para um Query ou IBQuery:
//Consultar períodos reservados, para este objeto, nesta data;
With DmManCR01.IBQryRes Do
Begin
Close;
SQL.Clear;
Sql.Add(´ Select t02.vrcNomUsu, t03.vrcDesPer, t04.vrcDesDst, t01.vrcStaRes ´);
Sql.Add(´ From TbResPer t01 ´);
Sql.Add(´ Where t01.intCodObj = :p01 and ´);
Sql.Add(´ t01.dteDtrRes = :p02 and ´);
Sql.Add(´ Order By t03.vrcDesPer ´);
Params[00].AsInteger := RxDBLkpCmbintCodObj.KeyValue;
Params[01].AsDate := DtEdtdteDtrRes.Date;
Open;
End;
Nunca tive problemas...
t+
Edinei
tenho outra forma de passar parâmetros para um Query ou IBQuery:
//Consultar períodos reservados, para este objeto, nesta data;
With DmManCR01.IBQryRes Do
Begin
Close;
SQL.Clear;
Sql.Add(´ Select t02.vrcNomUsu, t03.vrcDesPer, t04.vrcDesDst, t01.vrcStaRes ´);
Sql.Add(´ From TbResPer t01 ´);
Sql.Add(´ Where t01.intCodObj = :p01 and ´);
Sql.Add(´ t01.dteDtrRes = :p02 and ´);
Sql.Add(´ Order By t03.vrcDesPer ´);
Params[00].AsInteger := RxDBLkpCmbintCodObj.KeyValue;
Params[01].AsDate := DtEdtdteDtrRes.Date;
Open;
End;
Nunca tive problemas...
t+
Edinei
GOSTEI 0
D4rk Schn31d3r
06/05/2004
Hmmm, vc passa esse código em tempo de execução? Q trabalheira! Eu nunca tive problema de setar um parâmetro para qq q fosse, usando BDE/SQL Server, mas pelo fato de ter q desenvolver essa aplicação em Access 2000, tive q usar o ADOquery (uma vez q o BDE e Access não funcionam direito), e é a partir disso, estou tendo esse tipo de problema com o param. ftDate.
GOSTEI 0
Aroldo Zanela
06/05/2004
Colega,
Eu nunca precisei alterar os tipos de dados usandos os componentes ADO, apenas utilizo o FormateDateTime para passar os parâmetros, quando necessário.
Eu nunca precisei alterar os tipos de dados usandos os componentes ADO, apenas utilizo o FormateDateTime para passar os parâmetros, quando necessário.
GOSTEI 0
D4rk Schn31d3r
06/05/2004
Mas com o ftDateTime, vc está conseguindo fazer consulta com datas? Eu estou passando o parâmetro assim:
Na query do BDE, conseguia definir .AsDate ao invés de .Value, será q isso tem algo a ver?
frmDm.qryConsMov.Close; frmDm.qryConsMov.Parameters.ParamByName(´prmDatInic´).Value := StrToDate(edtDatInic.Text); frmDm.qryConsMov.Parameters.ParamByName(´prmDatFin´).Value := StrToDate(edtDatFin.Text); frmDm.qryConsMov.Open;
Na query do BDE, conseguia definir .AsDate ao invés de .Value, será q isso tem algo a ver?
GOSTEI 0
Comodelphi
06/05/2004
Na realidade vc não precisa definir o tipo de dado do parametro, o Default da propriedade é um variant. E o mecanismo do banco sempre avalisa expressão de qualquer jeito. Mas no caso do access eu passo parametro para a query e o converto com CvDate(:ArgData).
Nunca falha.
Nunca falha.
GOSTEI 0
D4rk Schn31d3r
06/05/2004
Nunca falha mesmo, hehehe. Valeu, tá certinho aqui agora. Com o BDE, não havia esse problema qd setava o parâmetro para ftDate, não sei realmente pq na ADOquery ele não deixa fazer isso. De qq modo, uma curiosidade, qd vc tem q setar um parâmetro para inteiro, vc usa uma outra função de conversão ou clica em ftInteger?
GOSTEI 0
Comodelphi
06/05/2004
ok....
Quando é string:
qryCliente.ParamByName(´Nome´).Value := QuotedStr(ValorStr);
Quando é inteiro:
qryCliente.ParamByName(´Nome´).Value := ValorInt;
e na query não precisa usar nenhuma função para converter e nem mudar o tipo do parametro
Quando é string:
qryCliente.ParamByName(´Nome´).Value := QuotedStr(ValorStr);
Quando é inteiro:
qryCliente.ParamByName(´Nome´).Value := ValorInt;
e na query não precisa usar nenhuma função para converter e nem mudar o tipo do parametro
GOSTEI 0