Fórum dbExpress - sqlQuery - Com parâmetros não vai!!! #204304
05/01/2004
0
Jpaulorio
Curtir tópico
+ 0Posts
05/01/2004
Lucas Silva
Se a query tem parâmetros, quando voçê for abrir ela sempre tem que dar uma valor para estes parâmetros, se não ela não te retorna nenhum resultado.
Lucas!
Gostei + 0
06/01/2004
Jpaulorio
Gostei + 0
08/01/2004
Jpaulorio
sds, João Paulo.
Gostei + 0
08/01/2004
Lucas Silva
[b:07dc2561e4]Nas propriedades da query -> Params...[/b:07dc2561e4]
Lucas!
Gostei + 0
08/01/2004
Marcelo.almeida
O FetchParams busca os parametros da query e vc passa a direcionar o codigo para ClientDataSet.
Tipo
ClientDataSet.Params.ParamByName(´Codigo´).AsInteger := Int_Codigo;
Até mais
Marcelo
Gostei + 0
10/01/2004
Jpaulorio
Parâmetros do tipo datetime não são aceitos... se tentar abrir uma query com esse tipo de parâmetro aparecerá o erro ´invalid field type´
Parâmetros dentro de sub-select também não vai... o erro deixa isso bem claro...
Parâmetros dentro de funções, case... nem pensar...
Para aqueles que defendem o dbExpress vai um recado... só vou usar no dia em que eu pegar o meu select que está numa query BDE e puder abrí-lo sem ter que fazer gambiarras e coisas do tipo... abraço, João Paulo
Gostei + 0
28/02/2004
Roberson
Porem eu descobri que soh dah o erro de invalid data type quando eu coloco asinteger ou as datetime.
Acredito que tenho uma explicacao para isto: como o acesso eh direto ao banco, o proprio nao tem estes tipos integer e datetime. No meu caso em que desenvolvo com Oracle o mesmo utiliza number para identificar um tipo integer.
Agora teria que achar uma propriedade no componente para que ele entenda estes tipos, ou mesmo faça algum tipo de alteração.
Espero ter ajudado de alguma forma.
Gostei + 0
28/02/2004
Everton
Gostei + 0
01/04/2004
Jpaulorio
não sei se tem a ver com eu usar o mssql 2000, mas não consigo usar parâmetros do tipo date ou datetime... não posso usar parametros dentro de sub-selects.... será q ele só funciona com o interbase?? e ainda tem gente que critica o BDE...
Gostei + 0
03/04/2004
Jurandi
COM DB ORACLE E PARAMETROS DO TIPO DATE E DATETIME PASSEM PARAMETROS DO TIPO SQLTIMESTAMP.
VEJAM AS POSSIVEIS FUNCOES DE CONVERSAO NO HELP.
SqlWork.ParamByName(´Data_Inicial´).asSqlTimeStamp := DateTimeToSqlTimeStamp(WData_Inicial);
Gostei + 0
07/05/2004
Jpaulorio
SELECT CLIE_ID FROM TBCLIE WHERE CLIE_ID = :CLIE_ID
vamos lá... a tabela em questão (TBCLIE) se encontra num banco de dados MSSQL 2000. O campo CLIE_ID é do tipo SMALLINT.
Nem preciso dizer que esse select abre numa query do BDE sem problemas, mas com o DBEXPRESS....
Coloquei esse select na propriedade command text de um TSQLDATASET
e ele automaticamente setou o tipo do parâmetro :CLIE_ID para smallint.
Logo pensei... dessa vez vai... mas...
Agora tenta ativar o dataset.... nem com reza braba... o erro:
INVALID PARAMETER
Então eu pergunto... é a minha DLL q não funciona direito? Esqueci alguma coisa? Ou o quê?
Abraço, João Paulo.
Gostei + 0
07/05/2004
Fer_nanda
O Lucas tem razão, vc precisa passar algum valor para o parametro, provavelmente vc está tentando ativá-lo em tempo de projeto não é? então faça o seguinte teste: na propriedade value do parametro CLIE_ID coloque 1, depois tente ativar.
Gostei + 0
07/05/2004
Emerson Nascimento
Gostei + 0
07/05/2004
Jpaulorio
O Lucas tem razão, vc precisa passar algum valor para o parametro, provavelmente vc está tentando ativá-lo em tempo de projeto não é? então faça o seguinte teste: na propriedade value do parametro CLIE_ID coloque 1, depois tente ativar.[/quote:c104b0ba02]
Se eu trocar o campo ex: SELECT FANT FROM TBCLIE WHERE FANT = :FANT (fant é do tipo varchar)
daí funciona mesmo sem passar valor pro parâmetro em tempo de projeto :)
Acredito que o problema esteja no tipo int e smallint, alguma coisa no driver do dbExpress... a mesma coisa q acontece com o tipo datetime.
Gostei + 0
07/05/2004
Kotho
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)