ParamByName em DbExpress
03/04/2006
0
Pessoal, estou usando os seguintes componentes em meu projeto:
* 1 SQlConnection;
* 1 DataSetProvider;
* 1 SQLQuery;
* 1 ClientDataSet;
* 1 DataSource;
* 1 DBGrid;
* 1 BitBtn;
Altera minhas instruções SQL diretamente no SQLQuery como já vi sugestões aqui no fórum, quais os prós e contras disso na arquitetura DbExpress?
Altero as instruções no SQLQuery e meu DataSetProvider está ligado nele(SQLQuery), e por sua vez o ProviderName do meu ClientDataSet está ligado no DataSetProvider, tem algum erro nisso?
alguém aqui poderia me informar qual a diferença entre se usar.
e se usar assim:
Porque da segunda forma funciona normal, da primeira é como se ele não conseguisse ver o valor do parametro.
Obrigado pessoal!
* 1 SQlConnection;
* 1 DataSetProvider;
* 1 SQLQuery;
* 1 ClientDataSet;
* 1 DataSource;
* 1 DBGrid;
* 1 BitBtn;
Altera minhas instruções SQL diretamente no SQLQuery como já vi sugestões aqui no fórum, quais os prós e contras disso na arquitetura DbExpress?
Altero as instruções no SQLQuery e meu DataSetProvider está ligado nele(SQLQuery), e por sua vez o ProviderName do meu ClientDataSet está ligado no DataSetProvider, tem algum erro nisso?
alguém aqui poderia me informar qual a diferença entre se usar.
CDS_Geren.Close; SQLQForn.SQL.Clear; SQLQForn.SQL.Text := ´Select * from Country where COUNTRY Like :nome´; SQLQForn.ParamByName(´Nome´).Value := QuotedStr(´A´+´¬´); SQLQForn.Open; CDS_Geren.Open;
e se usar assim:
CDS_Geren.Close; SQLQForn.SQL.Clear; SQLQForn.SQL.Add(´Select * from Employee where job_country like ´ + QuotedStr(Edit1.Text+´¬´)); SQLQForn.Open; CDS_Geren.Open;
Porque da segunda forma funciona normal, da primeira é como se ele não conseguisse ver o valor do parametro.
Obrigado pessoal!
Andrew
Curtir tópico
+ 0
Responder
Posts
03/04/2006
Eniorm
eu faço assim, supondo que o SQLQuery tenha a propriedade SQL definida como:
pra fazer uma pesquisa eu faço:
note que o CLOSE/OPEN eu fiz direto no ClientDataSet, e o valor do parâmetro eu coloquei na query, onde está o sql.;.
SELECT * FROM CLIENTES WHERE NOME LIKE :NOME ORDER BY NOME
pra fazer uma pesquisa eu faço:
ClientDataSet1.Close; SQLQuery1.ParamByName(´NOME´).AsString := EditNome.Text + ´¬´; ClientDataSet1.Open;
note que o CLOSE/OPEN eu fiz direto no ClientDataSet, e o valor do parâmetro eu coloquei na query, onde está o sql.;.
Responder
Clique aqui para fazer login e interagir na Comunidade :)