Curso de dbExpress e DataSnap - Parte XVIII
Veja neste artigo de Guinther Pauli, mais um capítulo do curso de dbExpress e DataSnap. Acesso exclusivo para Assinantes.
Curso de dbExpress e DataSnap
Parte XVIII – CommandText
Neste artigo, veremos como usar a propriedade CommandText do ClientDataSet. Ela permite que você repasse comandos SQL a partir de uma camada cliente em um cenário multicamadas, dando maior flexibilidade a sua solução. Ideal para reaproveitamento de código e componentes, pois podemos usar um único par “DataSetProvider / ClientDataSet” para executar uma série de consultas no BD.
Configure uma conexão dbExpress para o banco EMPLOYEE do Interbase. Coloque um SQLConnection apontando para essa conexão. Coloque também um SQLQuery, um DataSetProvider, um ClientDataSet, um DataSource, um DBGrid, um Button e um Memo. Configure os componentes conforme o código a seguir:
object DBGrid1: TDBGrid
DataSource = DataSource1
end
object DataSource1: TDataSource
DataSet = ClientDataSet1
end
object ClientDataSet1: TClientDataSet
ProviderName = 'DataSetProvider1'
end
object DataSetProvider1: TDataSetProvider
DataSet = SQLQuery1
end
object SQLQuery1: TSQLQuery
SQLConnection = SQLConnection1
end
object SQLConnection1: TSQLConnection
ConnectionName = 'EMPLOYEE'
LoginPrompt = False
Connected = False
KeepConnection = False
Params.Strings = (
'DriverName=Interbase'
'Database=C:\Borland\InterBase\examples\database\employee.gdb'
'User_Name=sysdba'
'Password=masterkey'
'ServerCharSet=WIN1252'
'SQLDialect=3')
end
Seu formulário deve estar semelhante ao mostrado a seguir:

Figura 1.
O código do botão Executar é mostrado a seguir:
procedure TFrmMain.BitBtn1Click(Sender: TObject);
begin
ClientDataSet1.Close;
ClientDataSet1.CommandText := Memo1.Lines.Text;
ClientDataSet1.Open;
end;
Observe que aqui repassamos a instrução SQL digitada no memo para a propriedade CommandText do ClientDataSet, e não para o SQLQuery. O CDS se encarregará de enviar isso ao DataSetProvider, que vai repassa-la ao cursor dbExpress associado e executar o comando no BD. Você pode, até mesmo, passar parâmetros (Params) no ClientDataSet.
No evento OnCreate do form, configuramos a propriedade Options do DataSetProvider para incluir o AllowCommandText, que deve estar True. Isso indica ao DSP que o mesmo pode receber comandos SQL a partir do CDS:
procedure TFrmMain.FormCreate(Sender: TObject);
begin
DataSetProvider1.Options := [poAllowCommandText];
end;
Essa configuração também pode ser feita diretamente no Object Inspector:

Figura 2.
Executando a aplicação, temos o resultado mostrado a seguir:

Figura 3.
Download
Você pode fazer download de todos os exemplos deste curso a partir do endereço http://cc.borland.com/Author.aspx?ID=222668. É preciso fazer o cadastro na BDN, que é gratuito e pode ser feito a partir do endereço http://bdn.borland.com
dbExpress, DataSnap e ClientDataSet: Técnicas Avançadas
Para mais informações sobre acesso a dados no Delphi e técnicas avançadas, sugiro a leitura do meu livro, “Delphi: Programação para Banco de Dados e Web”, como apoio para o aprendizado das tecnologias. Na obra mostro várias técnicas introdutórios e avançadas de desenvolvimento com ClientDataSet, dbExpress e DataSnap (multicamadas, incluindo SOAP e COM+). Para mais informações, consulte o link http://www.clubedelphi.net/guinther

Curso(s):
Formações:
Space do autor



1
0
