Incluir, Altera, Excluir, com DBExpress alguem pode meAjuda?
Tenho uma Tabela chamada Bairro com um campo NOME_BAIRRO
Coloquei um Data Module com um componente SQLConection da palheta DBExpress.
Já configurei o SQLConection para o acesso ao Banco de dados ´Firebird´
Coloquei um formulário com 4 botões com o nome (Incluir, Alterar, Excluir e Sair), um DBComboBox e um DBGrid.
Eu quero com esse botões realizar a incluisão, alteração e exclusão de registros.
Alguem pode me ajudar, pois sou novato este componente.
Coloquei um Data Module com um componente SQLConection da palheta DBExpress.
Já configurei o SQLConection para o acesso ao Banco de dados ´Firebird´
Coloquei um formulário com 4 botões com o nome (Incluir, Alterar, Excluir e Sair), um DBComboBox e um DBGrid.
Eu quero com esse botões realizar a incluisão, alteração e exclusão de registros.
Alguem pode me ajudar, pois sou novato este componente.
Max2006
Curtidas 0
Respostas
Ruyoutor
12/01/2007
Vou te passar um exemplo para ver se você consegue
1 - Coleque na sua aplicação um conponente SQLDataSet da paleta DBExpress aponte ele para o sqlconnection
2 - fassa a sim quando for incluir
Explicação
Transacao - é uma variavel que tem que ser criada, o tipo é TTransactionDesc você inicia a transação no inicial através do StartTransaction do SqlConnection.
MSQL - é uma variavel string só para receber o codigo sql
Parâmetros - você vai ter que fazer essa inclusão por parâmetros usando a Função ParamByName para passar o valor do DBComboBox.text para o parâmetro.
Depois de passar os parametros vc executa o sqldataset e da um commit na transação.
para o DBGrid você vai ter que usar um simpledataset e um datasource ligados
vá na propriedade dataset do simpledataset e depois entre em commandText insira uma consulta sql para aparecer os capos no dbgrid
OBS: o unico componente que vc pode ligar a um dbgrid dessa paleta é o simpledataset porque é bidirecional observe que quando eu termino a inclusão eu dou um refresh nele para atualizar o dbgrid.
Alterar você usaria o updade ´Update bairro set (Nome_bairro = :bairro) where codigo do bairro = :cdbairro´ e passaria o bairro e o codigo do bairro por parâmetro.
Excluir você usaria o codigo do ´delete * from Bairro where codigo do bairro = :cdbairro´ e passaria o codigo do bairro por parâmetro.
cara testa pra ver se funciona se não funcionar não esta tão longe porque eu sempre utilizei os componentes do DBExpress assim.
1 - Coleque na sua aplicação um conponente SQLDataSet da paleta DBExpress aponte ele para o sqlconnection
2 - fassa a sim quando for incluir
try Transacao.TransactionID:= 1; Transacao.IsolationLevel:= xilREPEATABLEREAD; DM.SQLConnection1.StartTransaction(transacao); MSQL:= ´insert into Bairro (Nome_Bairro) values (:Bairro) SQLDataSet1.Close; SQLDataSet1.CommandType:= ctQuery; SQLDataSet1.CommandText:= MSQL; SQLDataSet1.ParamByName(´bairro´).AsString:= DBComboBox.text; SQLDML.ExecSQL; DM.SQLConnection1.Commit(transacao); SimpleDataSet.Refresh; except DM.SQLConnection1.Rollback(transacao);
Explicação
Transacao - é uma variavel que tem que ser criada, o tipo é TTransactionDesc você inicia a transação no inicial através do StartTransaction do SqlConnection.
MSQL - é uma variavel string só para receber o codigo sql
Parâmetros - você vai ter que fazer essa inclusão por parâmetros usando a Função ParamByName para passar o valor do DBComboBox.text para o parâmetro.
Depois de passar os parametros vc executa o sqldataset e da um commit na transação.
para o DBGrid você vai ter que usar um simpledataset e um datasource ligados
vá na propriedade dataset do simpledataset e depois entre em commandText insira uma consulta sql para aparecer os capos no dbgrid
OBS: o unico componente que vc pode ligar a um dbgrid dessa paleta é o simpledataset porque é bidirecional observe que quando eu termino a inclusão eu dou um refresh nele para atualizar o dbgrid.
Alterar você usaria o updade ´Update bairro set (Nome_bairro = :bairro) where codigo do bairro = :cdbairro´ e passaria o bairro e o codigo do bairro por parâmetro.
Excluir você usaria o codigo do ´delete * from Bairro where codigo do bairro = :cdbairro´ e passaria o codigo do bairro por parâmetro.
cara testa pra ver se funciona se não funcionar não esta tão longe porque eu sempre utilizei os componentes do DBExpress assim.
GOSTEI 0
Max2006
12/01/2007
Coloquei um Table e na propriedade SQLConnection coloquei o componente SQLConection e na Table Name coloquei bairro.
No Botão Incluir cliquei e digitei Table.Append;
Então apareceu a mensagem.
Cannot modify a read-only dataset
Não pode modificar uma série de dados de leitura apenas.
Está informando que os dados está como leitura e agora como eu coloco de forma que eu possa Incluir dados?
No Botão Incluir cliquei e digitei Table.Append;
Então apareceu a mensagem.
Cannot modify a read-only dataset
Não pode modificar uma série de dados de leitura apenas.
Está informando que os dados está como leitura e agora como eu coloco de forma que eu possa Incluir dados?
GOSTEI 0
Max2006
12/01/2007
Eu vou tenvar......
GOSTEI 0
Max2006
12/01/2007
Quando eu cliquei no Botão incluir apareceu a seguinte mensagem X marcando o xilREPEATABLEREAD em vermelho.
procedure T_BAIRRO.BitBtn1Click(Sender: TObject);
begin
//_DM.SQLTable1.Append;
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
Udeclared idenfitier xilREPEATABLEREAD
procedure T_BAIRRO.BitBtn1Click(Sender: TObject);
begin
//_DM.SQLTable1.Append;
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
Udeclared idenfitier xilREPEATABLEREAD
GOSTEI 0
Ruyoutor
12/01/2007
Entre na parte dos codigos do seu DataModule e em uses lá em cima copie todas as units que tem lá e cole ná clausula uses do Form que vc tá colocando o código de inserção
e veja se funciona
e veja se funciona
GOSTEI 0
Ruyoutor
12/01/2007
Outra coisa amigo eu sempre trabalhei com esse componentes da DBExpress usando Edit´s e combo´s numca usei dbcombo e dbedit usando DBcombo eu não garanto que vai funcionar
GOSTEI 0
Max2006
12/01/2007
OBS: Passou para á próxima linha mas não deixou eu inserir a Unit Classes...
Agorá está na última linha dizendo que a string é indeterminada mas eu já declarei como mostra oque pode ser...?
var
_BAIRRO: T_BAIRRO;
MSQL:String;
implementation
uses INTERCAMBIO;
{$R *.dfm}
procedure T_BAIRRO.BitBtn1Click(Sender: TObject);
begin
//_DM.SQLTable1.Append;
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
MSQL:= ´insert into Bairro (Nome_Bairro) values (:Bairro)
Interminate String a última linha está em vermelho..
Agorá está na última linha dizendo que a string é indeterminada mas eu já declarei como mostra oque pode ser...?
var
_BAIRRO: T_BAIRRO;
MSQL:String;
implementation
uses INTERCAMBIO;
{$R *.dfm}
procedure T_BAIRRO.BitBtn1Click(Sender: TObject);
begin
//_DM.SQLTable1.Append;
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
MSQL:= ´insert into Bairro (Nome_Bairro) values (:Bairro)
Interminate String a última linha está em vermelho..
GOSTEI 0
Max2006
12/01/2007
Passei para mais um pará metro
Oque é isso ´SQLDML.ExecSQL;´ está informando undeclared identifier SQLDML.
Oque é isso ´SQLDML.ExecSQL;´ está informando undeclared identifier SQLDML.
GOSTEI 0
Max2006
12/01/2007
Consegui fazer roda com esse código.
procedure T_BAIRRO.BitBtn1Click(Sender: TObject);
begin
//_DM.SQLTable1.Append;
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
MSQL:= ´insert into Bairro (Nome_Bairro) values (:Bairro)´;
_DM.SQLDataSet1.Close;
_DM.SQLDataSet1.CommandType:= ctQuery;
_DM.SQLDataSet1.CommandText:= MSQL;
_Dm.SQLDataSet1.ParamByName(´bairro´).AsString:= DBComboBox1.text;
_Dm.SQLDataSet1.ExecSQL;
//SQLDML.ExecSQL;
_DM.SQLConnection1.Commit(transacao);
_DM.SimpleDataSet1.Refresh;
except
_DM.SQLConnection1.Rollback(transacao);
End;
end;
Agora vou ver como e que se faz para ligar o DBComboBox como vc me explicou....
procedure T_BAIRRO.BitBtn1Click(Sender: TObject);
begin
//_DM.SQLTable1.Append;
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
MSQL:= ´insert into Bairro (Nome_Bairro) values (:Bairro)´;
_DM.SQLDataSet1.Close;
_DM.SQLDataSet1.CommandType:= ctQuery;
_DM.SQLDataSet1.CommandText:= MSQL;
_Dm.SQLDataSet1.ParamByName(´bairro´).AsString:= DBComboBox1.text;
_Dm.SQLDataSet1.ExecSQL;
//SQLDML.ExecSQL;
_DM.SQLConnection1.Commit(transacao);
_DM.SimpleDataSet1.Refresh;
except
_DM.SQLConnection1.Rollback(transacao);
End;
end;
Agora vou ver como e que se faz para ligar o DBComboBox como vc me explicou....
GOSTEI 0
Max2006
12/01/2007
Coloquei um componente SimpleDataSet
Na propriedade Connection coloquei o SQLConnection.
Cliquei com o botão direito sobre o componente e cliquei em Edit Internal DataSet
Na propriedade CommandTex coloquei (select NOME_BAIRRO from BAIRRO;
Na propriedade ShemaName coloquei como SYSDBA
Cliquei denovo no componente e coloquei a propriedade Active do componente como True.
Executei o programa coloque um combobox em vez de um DBCombobox digitei no combobox cliquei no
botão incluir e funcionou agora vou ver como que se deleta.
Na propriedade Connection coloquei o SQLConnection.
Cliquei com o botão direito sobre o componente e cliquei em Edit Internal DataSet
Na propriedade CommandTex coloquei (select NOME_BAIRRO from BAIRRO;
Na propriedade ShemaName coloquei como SYSDBA
Cliquei denovo no componente e coloquei a propriedade Active do componente como True.
Executei o programa coloque um combobox em vez de um DBCombobox digitei no combobox cliquei no
botão incluir e funcionou agora vou ver como que se deleta.
GOSTEI 0
Max2006
12/01/2007
Este é o código...
De atualização.
Mas deu erro e me parece que é na linha SQL oque fzer...?
tOKEN UNKNOWN - LINE1, CHAR19
procedure T_BAIRRO.BitBtn2Click(Sender: TObject);
begin
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
MSQL:= ´Update bairro set (Nome_bairro = :bairro)´;
_DM.SQLDataSet1.Close;
_DM.SQLDataSet1.CommandType:= ctQuery;
_DM.SQLDataSet1.CommandText:= MSQL;
_Dm.SQLDataSet1.ParamByName(´BAIRRO´).AsString:= DBComboBox1.text;
_Dm.SQLDataSet1.ExecSQL;
//SQLDML.ExecSQL;
_DM.SQLConnection1.Commit(transacao);
_DM.SimpleDataSet1.Refresh;
except
_DM.SQLConnection1.Rollback(transacao);
end;
end;
De atualização.
Mas deu erro e me parece que é na linha SQL oque fzer...?
tOKEN UNKNOWN - LINE1, CHAR19
procedure T_BAIRRO.BitBtn2Click(Sender: TObject);
begin
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
MSQL:= ´Update bairro set (Nome_bairro = :bairro)´;
_DM.SQLDataSet1.Close;
_DM.SQLDataSet1.CommandType:= ctQuery;
_DM.SQLDataSet1.CommandText:= MSQL;
_Dm.SQLDataSet1.ParamByName(´BAIRRO´).AsString:= DBComboBox1.text;
_Dm.SQLDataSet1.ExecSQL;
//SQLDML.ExecSQL;
_DM.SQLConnection1.Commit(transacao);
_DM.SimpleDataSet1.Refresh;
except
_DM.SQLConnection1.Rollback(transacao);
end;
end;
GOSTEI 0
Max2006
12/01/2007
O nome está BDComboBox mas é um combobox....
GOSTEI 0
Ruyoutor
12/01/2007
O seu codigo de update está errado
Seria assim
´Update set Bairro (Nome_bairro = :bairro) where Codido do bairro = :cdBairro)
Passe o cdbairro como parâmetro
Seria assim
´Update set Bairro (Nome_bairro = :bairro) where Codido do bairro = :cdBairro)
Passe o cdbairro como parâmetro
GOSTEI 0
Max2006
12/01/2007
O seu codigo de update está errado
Seria assim
´Update set Bairro (Nome_bairro = :bairro) where Codido do bairro = :cdBairro)
Passe o cdbairro como parâmetro
Mas eu não tenho o campo código eu só tenho o campo ´nome_bairro´, e quando eu uso este comando SQL
MSQL:= ´Update set Bairro (Nome_bairro = :bairro) where Codido do bairro = :cdBairro)´;
Da o seguinte érro.
Esta dando erro: - Line1, char8
GOSTEI 0
Ruyoutor
12/01/2007
de dois cliques em cima do simpledataset que vc adiconou na janela que vai abrir você clica com o direito do mouse e selecione add all fields
na consulta vc vai colocar assim
update set bairro (nome_bairro = :bairro) where nome_bairro = :oldNome
SQLDataSet1.Parambyname(´bairro´).asstring := valor do novo bairro
SQLDataSet1.parambyname(´oldbairro).asstring := SimpleDataSetNome_Bairro.value;
eu botei simpledataset e sqldataset porque eu não sei o nome dos seus componentes mas é só mudar você vai passar por parâmetro o valor novo do nome do bairro pelo combo ou edit e o nome do bairro antigo que é o que esta atualmente na tabela por isso você vai usar o Simpledatasetnome_bairro.value.
Acho que agora vai! Tenta ai
na consulta vc vai colocar assim
update set bairro (nome_bairro = :bairro) where nome_bairro = :oldNome
SQLDataSet1.Parambyname(´bairro´).asstring := valor do novo bairro
SQLDataSet1.parambyname(´oldbairro).asstring := SimpleDataSetNome_Bairro.value;
eu botei simpledataset e sqldataset porque eu não sei o nome dos seus componentes mas é só mudar você vai passar por parâmetro o valor novo do nome do bairro pelo combo ou edit e o nome do bairro antigo que é o que esta atualmente na tabela por isso você vai usar o Simpledatasetnome_bairro.value.
Acho que agora vai! Tenta ai
GOSTEI 0
Brunolspp
12/01/2007
Então
no meu link de downloads tem uma apostila de desenvolvimento client/server q mostra em detalhes e bem didatico passo a passo a construção deste tipo de cadastro
link:
http://cc.codegear.com/Author/795118
no meu link de downloads tem uma apostila de desenvolvimento client/server q mostra em detalhes e bem didatico passo a passo a construção deste tipo de cadastro
link:
http://cc.codegear.com/Author/795118
GOSTEI 0
Max2006
12/01/2007
try
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
// MSQL:= ´update set bairro (nome_bairro = :bairro) where nome_bairro = :oldNome´;
MSQL:= ´update set bairro (nome_bairro = :bairro) where nome_bairro = :oldNome´;
//MSQL:= ´update bairro set nome_bairro = ´Max´´;
_DM.SQLDataSet1.Close;
_DM.SQLDataSet1.CommandType:= ctQuery;
_DM.SQLDataSet1.CommandText:= MSQL;
_Dm.SQLDataSet1.ParamByName(´bairro´).AsString:= ComboBox1.text;
_Dm.SQLDataSet1.ExecSQL;
_DM.SQLConnection1.Commit(transacao);
_DM.SimpleDataSet1.Refresh;
except
_DM.SQLConnection1.Rollback(transacao);
End;
Eu so tenho um campo chamado Nome_Bairro.
Eu consigo inserir é só mudar o SLQ para
MSQL:= ´insert into Bairro (Nome_Bairro) values (:bairro)´;
Mas quando tento alterar os dados está dando a informação de erro no SQL -
>>>>> Token unkwn - line, char 8
Transacao.TransactionID:= 1;
Transacao.IsolationLevel:= xilREPEATABLEREAD;
_DM.SQLConnection1.StartTransaction(transacao);
// MSQL:= ´update set bairro (nome_bairro = :bairro) where nome_bairro = :oldNome´;
MSQL:= ´update set bairro (nome_bairro = :bairro) where nome_bairro = :oldNome´;
//MSQL:= ´update bairro set nome_bairro = ´Max´´;
_DM.SQLDataSet1.Close;
_DM.SQLDataSet1.CommandType:= ctQuery;
_DM.SQLDataSet1.CommandText:= MSQL;
_Dm.SQLDataSet1.ParamByName(´bairro´).AsString:= ComboBox1.text;
_Dm.SQLDataSet1.ExecSQL;
_DM.SQLConnection1.Commit(transacao);
_DM.SimpleDataSet1.Refresh;
except
_DM.SQLConnection1.Rollback(transacao);
End;
Eu so tenho um campo chamado Nome_Bairro.
Eu consigo inserir é só mudar o SLQ para
MSQL:= ´insert into Bairro (Nome_Bairro) values (:bairro)´;
Mas quando tento alterar os dados está dando a informação de erro no SQL -
>>>>> Token unkwn - line, char 8
GOSTEI 0
Ruyoutor
12/01/2007
Cara vc precisa passar o valor do parâmetro :oldnome.
Faz da forma que eu te falei que vai dar certo, de dois cliques em cima do simpledataset click com direito do mouse e click em add all fields na hora de passar os parâmetros vc passa:
SqlDataset.parambyname(´oldbairro´).asstring := SimpleDatasetNome_Bairro.value;
Nesse simpledataetNomeBairro.value esta o valor que vc está querendo alterar no banco ou seja o valor antigo que vai ser substituido, através de clausula where é que vc está dizendo para ele qual o registro que vc quer alterar se vc não passar o parâmetro ele não tem como saber.
Faz da forma que eu te falei que vai dar certo, de dois cliques em cima do simpledataset click com direito do mouse e click em add all fields na hora de passar os parâmetros vc passa:
SqlDataset.parambyname(´oldbairro´).asstring := SimpleDatasetNome_Bairro.value;
Nesse simpledataetNomeBairro.value esta o valor que vc está querendo alterar no banco ou seja o valor antigo que vai ser substituido, através de clausula where é que vc está dizendo para ele qual o registro que vc quer alterar se vc não passar o parâmetro ele não tem como saber.
GOSTEI 0
Brasidata
12/01/2007
Bom dia max2006.
Te peço mil desculpas se for uma falha de compreensão minha, mas se o que vc quer fazer é simplesmente usar os componentes do DBExpress para interagir com sua base de dados Firebird eu substituiria toda essa ´ginástica´ acima por uma combinação mais simplificada de componentes. Explicando melhor:
Você já tem um TSQLConnection ligado ao seu banco Firebird.
Pois bem: Agora adicione ao seu DataModule (Que vou chamar de DM) um TSQLDataSet (palheta DBExpress), um TDataSetProvider, um TClientDataSet e um TDataSource (palheta DATA ACCESS).
Ligue o SQLDataSet ao SQLConnection através da propriedade SQLConnection, Ligue o DataSetProvider ao SQLDataSet atraves da propriedade DataSet, Ligue o ClientDataSet ao DataSetProvider através da propriedade PROVIDER NAME e por fim ligue o DataSource ao ClientDataSet através da propriedade DataSet.
Coloque na propriedade CommandText do SQLDataSet ´select NOME_BAIRRO from BAIRRO´ a acrescente o campo NOME_BAIRRO no SQLDataSet e depois no ClientDataSet usando o FieldEditor (duplo clique nos componentes).
Pronto: Agora é só direcionar o seu DBGRID e o seu DBCombobox para o DataSource.
Abra o ClientDataSet1 no OnCreate do seu Form (e feche-o no OnClose, é claro):
DM.ClientDataSet1.Open;
Nos botões use os códigos:
INCLUIR:
DM.ClientDataset1.Append;
ALTERAR (Se a propriedade AutoEdit do DataSource estiver TRUE não é necessário este botão)
DM.ClientDataSet1.Edit;
EXCLUIR
DM.ClientDataSet1.Delete;
GRAVAR ( Aplicar Alterações )
If DM.ClientDataSet1.ApplyUpDates(0) = 0 then
ShowMessage(´Registro gravado´)
else
begin
ShowMessage(´Falha ao Gravar Registro´);
DM.ClientDataSet1.Cancel;
end;
(Onde DM é seu DataModule e ClientDataSet1 é o seu TClientDataSet)
Isso é uma forma rápida e bem simplificada do uso do DBExpress. Se você explorar mais o site da DevMedia encontrará muitas dicas, artigos e até vídeo-aulas sobre o assunto, com códigos bem mais elaborados.
Essa combinação (SqlConnection, SqlDataSet, DataSetProvider e ClientDataSet) é fantástica, tem excelente performance e trabalha com os dados em cache diminuindo muito o tráfego de informações entre seu aplicativo e o banco de dados.
Um outro macete legal é setar a propriedade KEEP CONNECTION do SQLConnection para FALSE e tem muitas outras dicas que dariam um livro sobre o assunto.
Abraços e bom trabalho...
Te peço mil desculpas se for uma falha de compreensão minha, mas se o que vc quer fazer é simplesmente usar os componentes do DBExpress para interagir com sua base de dados Firebird eu substituiria toda essa ´ginástica´ acima por uma combinação mais simplificada de componentes. Explicando melhor:
Você já tem um TSQLConnection ligado ao seu banco Firebird.
Pois bem: Agora adicione ao seu DataModule (Que vou chamar de DM) um TSQLDataSet (palheta DBExpress), um TDataSetProvider, um TClientDataSet e um TDataSource (palheta DATA ACCESS).
Ligue o SQLDataSet ao SQLConnection através da propriedade SQLConnection, Ligue o DataSetProvider ao SQLDataSet atraves da propriedade DataSet, Ligue o ClientDataSet ao DataSetProvider através da propriedade PROVIDER NAME e por fim ligue o DataSource ao ClientDataSet através da propriedade DataSet.
Coloque na propriedade CommandText do SQLDataSet ´select NOME_BAIRRO from BAIRRO´ a acrescente o campo NOME_BAIRRO no SQLDataSet e depois no ClientDataSet usando o FieldEditor (duplo clique nos componentes).
Pronto: Agora é só direcionar o seu DBGRID e o seu DBCombobox para o DataSource.
Abra o ClientDataSet1 no OnCreate do seu Form (e feche-o no OnClose, é claro):
DM.ClientDataSet1.Open;
Nos botões use os códigos:
INCLUIR:
DM.ClientDataset1.Append;
ALTERAR (Se a propriedade AutoEdit do DataSource estiver TRUE não é necessário este botão)
DM.ClientDataSet1.Edit;
EXCLUIR
DM.ClientDataSet1.Delete;
GRAVAR ( Aplicar Alterações )
If DM.ClientDataSet1.ApplyUpDates(0) = 0 then
ShowMessage(´Registro gravado´)
else
begin
ShowMessage(´Falha ao Gravar Registro´);
DM.ClientDataSet1.Cancel;
end;
(Onde DM é seu DataModule e ClientDataSet1 é o seu TClientDataSet)
Isso é uma forma rápida e bem simplificada do uso do DBExpress. Se você explorar mais o site da DevMedia encontrará muitas dicas, artigos e até vídeo-aulas sobre o assunto, com códigos bem mais elaborados.
Essa combinação (SqlConnection, SqlDataSet, DataSetProvider e ClientDataSet) é fantástica, tem excelente performance e trabalha com os dados em cache diminuindo muito o tráfego de informações entre seu aplicativo e o banco de dados.
Um outro macete legal é setar a propriedade KEEP CONNECTION do SQLConnection para FALSE e tem muitas outras dicas que dariam um livro sobre o assunto.
Abraços e bom trabalho...
GOSTEI 0
Ruyoutor
12/01/2007
Pronto tá resolvido o problema!
Realmente muito mais fácil, até eu aprendi, pois não conhecia essa forma de trabalhar.
Mandou muito bem!
Realmente muito mais fácil, até eu aprendi, pois não conhecia essa forma de trabalhar.
Mandou muito bem!
GOSTEI 0