| 
			
				|  | ActiveDelphi .: O site do programador Delphi! :.
 
 |  
 
	
		| Exibir mensagem anterior :: Exibir próxima mensagem |  
		| Autor | Mensagem |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 1:11 pm    Assunto: Missing data provider or datapacket? [RESOLVIDO] |   |  
				| 
 |  
				| Pessoal, pelo erro que recebo Missing data provider or datapacket
 
 Acho que deve ser falta de setar o datasetprovider no clientdataset, mais não estou entendendo o porque, vejam meu código.
 
 
  	  | Código: |  	  | unit U_PersonalizarCor; 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DB, DBClient, Provider;
 
 type
 Tfrm_personalizarcor_receber = class(TForm)
 gb_personalizar: TGroupBox;
 Panel1: TPanel;
 gbVencer: TGroupBox;
 cb_corvencer: TColorBox;
 chk_negritovencer: TCheckBox;
 chk_italicovencer: TCheckBox;
 chk_sublinhadovencer: TCheckBox;
 chk_tachadovencer: TCheckBox;
 chk_negritalicovencer: TCheckBox;
 gbVencidos: TGroupBox;
 cb_corvencido: TColorBox;
 chk_negritovencido: TCheckBox;
 chk_italicovencido: TCheckBox;
 chk_sublinhadovencido: TCheckBox;
 chk_tachadovencido: TCheckBox;
 chk_negritalicovencido: TCheckBox;
 gbCancelado: TGroupBox;
 cb_corcancelado: TColorBox;
 chk_negritocancelado: TCheckBox;
 chk_italicocancelado: TCheckBox;
 chk_sublinhadocancelado: TCheckBox;
 chk_tachadocancelado: TCheckBox;
 chk_negritalicocancelado: TCheckBox;
 btn_Salvar: TButton;
 cdsPersonalizarCor: TClientDataSet;
 procedure FormShow(Sender: TObject);
 procedure btn_SalvarClick(Sender: TObject);
 private
 { Private declarations }
 procedure GetDatabaseValue;
 procedure SaveToDatabase;
 function SelectDBase: Boolean;
 public
 { Public declarations }
 end;
 
 var
 frm_personalizarcor_receber: Tfrm_personalizarcor_receber;
 
 implementation
 
 uses uDM, StrUtils;
 
 {$R *.dfm}
 
 { Tfrm_personalizarcor_receber }
 
 {-------------------------------------------------------------------------------
 Vamos usar um clientdataset que serve para conexão com qualquer componente
 de banco de dados através de um datasetprovider.
 o dataset proveider deve ficar junto no dm setado ao componente de acesso
 ao banco e o clientdataset ficar no form e receber o dsp que esta do dm.
 -------------------------------------------------------------------------------}
 function ADIfThen(aValue: String): Boolean;
 begin
 if aValue = 'T' then
 Result := True
 else
 Result := False;
 end;
 
 function Tfrm_personalizarcor_receber.SelectDBase: Boolean;
 begin
 with cdsPersonalizarCor do
 begin
 //muda o datasetprovider para o cds executar comandos SQL
 dm.dspCor_Receber.Options := dm.dspCor_Receber.Options + [poAllowCommandText];
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 Close;
 CommandText := ' SELECT * FROM PERSONALIZARCOR_RECEBER ';
 Open;
 if not IsEmpty then
 Result := True
 else
 Result := False;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.GetDatabaseValue;
 begin
 if SelectDBase then
 begin
 with cdsPersonalizarCor do
 try
 cb_corvencer.Selected := StringToColor(FieldByName('CORVENCER').AsString);
 chk_negritovencer.Checked := ADIfThen(FieldByName('NEGRITOVENCER').AsString);
 chk_italicovencer.Checked := ADIfThen(FieldByName('ITALICOVENCER').AsString);
 chk_sublinhadovencer.Checked := ADIfThen(FieldByName('SUBLINHADOVENCER').AsString);
 chk_tachadovencer.Checked := ADIfThen(FieldByName('TACHADOVENCER').AsString);
 chk_negritalicovencer.Checked := ADIfThen(FieldByName('NEGRITALICOVENCER').AsString);
 
 cb_corvencido.Selected := StringToColor(FieldByName('CORVENCIDO').AsString);
 chk_negritovencido.Checked := ADIfThen(FieldByName('NEGRITOVENCIDO').AsString);
 chk_italicovencido.Checked := ADIfThen(FieldByName('ITALICOVENCIDO').AsString);
 chk_sublinhadovencido.Checked := ADIfThen(FieldByName('SUBLINHADOVENCIDO').AsString);
 chk_tachadovencido.Checked := ADIfThen(FieldByName('TACHADOVENCIDO').AsString);
 chk_negritalicovencido.Checked := ADIfThen(FieldByName('NEGRITALICOVENCIDO').AsString);
 
 cb_corcancelado.Selected := StringToColor(FieldByName('CORCANCELADO').AsString);
 chk_negritocancelado.Checked := ADIfThen(FieldByName('NEGRITOCANCELADO').AsString);
 chk_italicocancelado.Checked := ADIfThen(FieldByName('ITALICOCANCELADO').AsString);
 chk_sublinhadocancelado.Checked := ADIfThen(FieldByName('SUBLINHADOCANCELADO').AsString);
 chk_tachadocancelado.Checked := ADIfThen(FieldByName('TACHADOCANCELADO').AsString);
 chk_negritalicocancelado.Checked := ADIfThen(FieldByName('NEGRITALICOCANCELADO').AsString);
 finally
 Close;
 end;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.FormShow(Sender: TObject);
 begin
 //obtem os valores do banco
 GetDatabaseValue;
 end;
 
 procedure Tfrm_personalizarcor_receber.SaveToDatabase;
 begin
 if SelectDBase then
 //primeiro excluimos o que esta gravado no banco
 cdsPersonalizarCor.Delete;
 
 with cdsPersonalizarCor do
 begin
 if not Active then
 Open;
 
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 //depois abrimos um novo insert para receber os novos dados
 cdsPersonalizarCor.Append;
 FieldByName('CORVENCER').AsString := ColorToString(cb_corvencer.Selected);
 FieldByName('NEGRITOVENCER').AsString := IfThen(chk_negritovencer.Checked, 'T', 'F');
 FieldByName('ITALICOVENCER').AsString := IfThen(chk_italicovencer.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCER').AsString := IfThen(chk_sublinhadovencer.Checked, 'T', 'F');
 FieldByName('TACHADOVENCER').AsString := IfThen(chk_tachadovencer.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCER').AsString := IfThen(chk_negritalicovencer.Checked, 'T', 'F');
 
 FieldByName('CORVENCIDO').AsString := ColorToString(cb_corvencido.Selected);
 FieldByName('NEGRITOVENCIDO').AsString := IfThen(chk_negritovencido.Checked, 'T', 'F');
 FieldByName('ITALICOVENCIDO').AsString := IfThen(chk_italicovencido.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCIDO').AsString := IfThen(chk_sublinhadovencido.Checked, 'T', 'F');
 FieldByName('TACHADOVENCIDO').AsString := IfThen(chk_tachadovencido.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCIDO').AsString := IfThen(chk_negritalicovencido.Checked, 'T', 'F');
 
 FieldByName('CORCANCELADO').AsString := ColorToString(cb_corcancelado.Selected);
 FieldByName('NEGRITOCANCELADO').AsString := IfThen(chk_negritocancelado.Checked, 'T', 'F');
 FieldByName('ITALICOCANCELADO').AsString := IfThen(chk_italicocancelado.Checked, 'T', 'F');
 FieldByName('SUBLINHADOCANCELADO').AsString := IfThen(chk_sublinhadocancelado.Checked, 'T', 'F');
 FieldByName('TACHADOCANCELADO').AsString := IfThen(chk_tachadocancelado.Checked, 'T', 'F');
 FieldByName('NEGRITALICOCANCELADO').AsString := IfThen(chk_negritalicocancelado.Checked, 'T', 'F');
 
 //Grava os dados
 Post;
 //Aplica as atualizações no banco
 ApplyUpdates(0);
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.btn_SalvarClick(Sender: TObject);
 begin
 SaveToDatabase;
 end;
 
 end.
 | 
 
 Quando vou chamar a procedure SaveToDatabase procuro ver se existe dados no banco usando esta função
 
  	  | Código: |  	  | function Tfrm_personalizarcor_receber.SelectDBase: Boolean; begin
 with cdsPersonalizarCor do
 begin
 //muda o datasetprovider para o cds executar comandos SQL
 dm.dspCor_Receber.Options := dm.dspCor_Receber.Options + [poAllowCommandText];
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 Close;
 CommandText := ' SELECT * FROM PERSONALIZARCOR_RECEBER ';
 Open;
 if not IsEmpty then
 Result := True
 else
 Result := False;
 end;
 end;
 | 
 
 Mais ao entrar no Open desta função gera o erro, alguém sabe me dizer o que está faltando para funcionar isso?
 
 Obrigado.
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 
 Editado pela última vez por adriano_servitec em Qua Jan 18, 2012 2:41 pm, num total de 1 vez
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| marcosalles Moderador
 
  
 
 Registrado: Quarta-Feira, 26 de Março de 2008
 Mensagens: 1695
 Localização: Muriaé Mg
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 1:43 pm    Assunto: |   |  
				| 
 |  
				|  	  | adriano_servitec escreveu: |  	  | Acabei de ver que este erro é devido a eu ter feito um empty na tabela. 
 Ai percebi que a primeira vez que tento gravar da o erro, ja a segunda vez que tento gravar, ele grava normal.
 | 
 
 Mas a propriedade do DataSet do Provider esta cetada ????
 _________________
 http://marcosalles.wordpress.com
 
 Desenvolvo FreeLancer e presto Consultoria
 Orientação Online  DataSnap DbX ClientDataSet
 POO , Padrões de Projeto e dúvidas de Delphi em
 Geral
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 1:46 pm    Assunto: |   |  
				| 
 |  
				|  	  | marcosalles escreveu: |  	  |  	  | adriano_servitec escreveu: |  	  | Acabei de ver que este erro é devido a eu ter feito um empty na tabela. 
 Ai percebi que a primeira vez que tento gravar da o erro, ja a segunda vez que tento gravar, ele grava normal.
 | 
 
 Mas a propriedade do DataSet do Provider esta cetada ????
 | 
 
 Ta sim veja
 
  	  | Citação: |  	  | function Tfrm_personalizarcor_receber.SelectDBase: Boolean; begin
 with cdsPersonalizarCor do
 begin
 //muda o datasetprovider para o cds executar comandos SQL
 dm.dspCor_Receber.Options := dm.dspCor_Receber.Options + [poAllowCommandText];
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 Close;
 CommandText := ' SELECT * FROM PERSONALIZARCOR_RECEBER ';
 Open;
 if not IsEmpty then
 Result := True
 else
 Result := False;
 end;
 end;
 | 
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| marcosalles Moderador
 
  
 
 Registrado: Quarta-Feira, 26 de Março de 2008
 Mensagens: 1695
 Localização: Muriaé Mg
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 1:47 pm    Assunto: |   |  
				| 
 |  
				| eu me referia a propriedadede DataSet do Provider e não a propriedade Provider do TDataSet
 
 Esta eu vi que em seu código voce utilizou o SetProvider
 _________________
 http://marcosalles.wordpress.com
 
 Desenvolvo FreeLancer e presto Consultoria
 Orientação Online  DataSnap DbX ClientDataSet
 POO , Padrões de Projeto e dúvidas de Delphi em
 Geral
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| marcosalles Moderador
 
  
 
 Registrado: Quarta-Feira, 26 de Março de 2008
 Mensagens: 1695
 Localização: Muriaé Mg
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 1:57 pm    Assunto: |   |  
				| 
 |  
				| So para agente entender e mais pessoas opiniarem . 
 Como voce esta dando este empty ??
 _________________
 http://marcosalles.wordpress.com
 
 Desenvolvo FreeLancer e presto Consultoria
 Orientação Online  DataSnap DbX ClientDataSet
 POO , Padrões de Projeto e dúvidas de Delphi em
 Geral
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| marcosalles Moderador
 
  
 
 Registrado: Quarta-Feira, 26 de Março de 2008
 Mensagens: 1695
 Localização: Muriaé Mg
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 2:07 pm    Assunto: |   |  
				| 
 |  
				| Voce esta se referindo a Dados .. (todos fields null. ??) 
 Apos fazer esta limpesa voce tentou gravar .. Ai apresenta o erro
 
 Na segunda tentativa grava Normalmente
 
 é isso ???
 
 So uma curioisdade .. Quando voce fez este empty a conexão do Dbx
 estava ativa ????
 _________________
 http://marcosalles.wordpress.com
 
 Desenvolvo FreeLancer e presto Consultoria
 Orientação Online  DataSnap DbX ClientDataSet
 POO , Padrões de Projeto e dúvidas de Delphi em
 Geral
 
 Editado pela última vez por marcosalles em Qua Jan 18, 2012 2:10 pm, num total de 1 vez
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 2:07 pm    Assunto: |   |  
				| 
 |  
				| Vou deixar postado tudo aqui se quiser dar uma olhada 
 A tabela
 
  	  | Código: |  	  | CREATE TABLE PERSONALIZARCOR_RECEBER (
 CORVENCER             VARCHAR(60),
 NEGRITOVENCER         CHAR(1),
 ITALICOVENCER         CHAR(1),
 SUBLINHADOVENCER      CHAR(1),
 TACHADOVENCER         CHAR(1),
 NEGRITALICOVENCER     CHAR(1),
 CORVENCIDO            VARCHAR(60),
 NEGRITOVENCIDO        CHAR(1),
 ITALICOVENCIDO        CHAR(1),
 SUBLINHADOVENCIDO     CHAR(1),
 TACHADOVENCIDO        CHAR(1),
 NEGRITALICOVENCIDO    CHAR(1),
 CORCANCELADO          VARCHAR(60),
 NEGRITOCANCELADO      CHAR(1),
 ITALICOCANCELADO      CHAR(1),
 SUBLINHADOCANCELADO   CHAR(1),
 TACHADOCANCELADO      CHAR(1),
 NEGRITALICOCANCELADO  CHAR(1)
 );
 
 | 
 
 O pas
 
  	  | Código: |  	  | unit U_PersonalizarCor; 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DB, DBClient, Provider;
 
 type
 Tfrm_personalizarcor_receber = class(TForm)
 gb_personalizar: TGroupBox;
 Panel1: TPanel;
 gbVencer: TGroupBox;
 cb_corvencer: TColorBox;
 chk_negritovencer: TCheckBox;
 chk_italicovencer: TCheckBox;
 chk_sublinhadovencer: TCheckBox;
 chk_tachadovencer: TCheckBox;
 chk_negritalicovencer: TCheckBox;
 gbVencidos: TGroupBox;
 cb_corvencido: TColorBox;
 chk_negritovencido: TCheckBox;
 chk_italicovencido: TCheckBox;
 chk_sublinhadovencido: TCheckBox;
 chk_tachadovencido: TCheckBox;
 chk_negritalicovencido: TCheckBox;
 gbCancelado: TGroupBox;
 cb_corcancelado: TColorBox;
 chk_negritocancelado: TCheckBox;
 chk_italicocancelado: TCheckBox;
 chk_sublinhadocancelado: TCheckBox;
 chk_tachadocancelado: TCheckBox;
 chk_negritalicocancelado: TCheckBox;
 btn_Salvar: TButton;
 cdsPersonalizarCor: TClientDataSet;
 procedure FormShow(Sender: TObject);
 procedure btn_SalvarClick(Sender: TObject);
 private
 { Private declarations }
 procedure GetDatabaseValue;
 procedure SaveToDatabase;
 function SelectDBase: Boolean;
 public
 { Public declarations }
 end;
 
 var
 frm_personalizarcor_receber: Tfrm_personalizarcor_receber;
 
 implementation
 
 uses uDM, StrUtils;
 
 {$R *.dfm}
 
 { Tfrm_personalizarcor_receber }
 
 {-------------------------------------------------------------------------------
 Vamos usar um clientdataset que serve para conexão com qualquer componente
 de banco de dados através de um datasetprovider.
 o dataset proveider deve ficar junto no dm setado ao componente de acesso
 ao banco e o clientdataset ficar no form e receber o dsp que esta do dm.
 -------------------------------------------------------------------------------}
 function ADIfThen(aValue: String): Boolean;
 begin
 if aValue = 'T' then
 Result := True
 else
 Result := False;
 end;
 
 function Tfrm_personalizarcor_receber.SelectDBase: Boolean;
 begin
 with cdsPersonalizarCor do
 begin
 //muda o datasetprovider para o cds executar comandos SQL
 dm.dspCor_Receber.Options := dm.dspCor_Receber.Options + [poAllowCommandText];
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 Close;
 CommandText := ' SELECT * FROM PERSONALIZARCOR_RECEBER ';
 Open;
 if not IsEmpty then
 Result := True
 else
 Result := False;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.GetDatabaseValue;
 begin
 if SelectDBase then
 begin
 with cdsPersonalizarCor do
 try
 if Trim(FieldByName('CORVENCER').AsString) <> EmptyStr then
 cb_corvencer.Selected := StringToColor(FieldByName('CORVENCER').AsString);
 chk_negritovencer.Checked := ADIfThen(FieldByName('NEGRITOVENCER').AsString);
 chk_italicovencer.Checked := ADIfThen(FieldByName('ITALICOVENCER').AsString);
 chk_sublinhadovencer.Checked := ADIfThen(FieldByName('SUBLINHADOVENCER').AsString);
 chk_tachadovencer.Checked := ADIfThen(FieldByName('TACHADOVENCER').AsString);
 chk_negritalicovencer.Checked := ADIfThen(FieldByName('NEGRITALICOVENCER').AsString);
 
 if Trim(FieldByName('CORVENCIDO').AsString) <> EmptyStr then
 cb_corvencido.Selected := StringToColor(FieldByName('CORVENCIDO').AsString);
 chk_negritovencido.Checked := ADIfThen(FieldByName('NEGRITOVENCIDO').AsString);
 chk_italicovencido.Checked := ADIfThen(FieldByName('ITALICOVENCIDO').AsString);
 chk_sublinhadovencido.Checked := ADIfThen(FieldByName('SUBLINHADOVENCIDO').AsString);
 chk_tachadovencido.Checked := ADIfThen(FieldByName('TACHADOVENCIDO').AsString);
 chk_negritalicovencido.Checked := ADIfThen(FieldByName('NEGRITALICOVENCIDO').AsString);
 
 if Trim(FieldByName('CORCANCELADO').AsString) <> EmptyStr then
 cb_corcancelado.Selected := StringToColor(FieldByName('CORCANCELADO').AsString);
 chk_negritocancelado.Checked := ADIfThen(FieldByName('NEGRITOCANCELADO').AsString);
 chk_italicocancelado.Checked := ADIfThen(FieldByName('ITALICOCANCELADO').AsString);
 chk_sublinhadocancelado.Checked := ADIfThen(FieldByName('SUBLINHADOCANCELADO').AsString);
 chk_tachadocancelado.Checked := ADIfThen(FieldByName('TACHADOCANCELADO').AsString);
 chk_negritalicocancelado.Checked := ADIfThen(FieldByName('NEGRITALICOCANCELADO').AsString);
 finally
 Close;
 end;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.FormShow(Sender: TObject);
 begin
 //obtem os valores do banco
 GetDatabaseValue;
 end;
 
 procedure Tfrm_personalizarcor_receber.SaveToDatabase;
 begin
 try
 if SelectDBase then
 cdsPersonalizarCor.Delete;
 
 with cdsPersonalizarCor do
 begin
 if not Active then
 Open;
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 //depois abrimos um novo insert para receber os novos dados
 cdsPersonalizarCor.Append;
 FieldByName('CORVENCER').AsString := ColorToString(cb_corvencer.Selected);
 FieldByName('NEGRITOVENCER').AsString := IfThen(chk_negritovencer.Checked, 'T', 'F');
 FieldByName('ITALICOVENCER').AsString := IfThen(chk_italicovencer.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCER').AsString := IfThen(chk_sublinhadovencer.Checked, 'T', 'F');
 FieldByName('TACHADOVENCER').AsString := IfThen(chk_tachadovencer.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCER').AsString := IfThen(chk_negritalicovencer.Checked, 'T', 'F');
 
 FieldByName('CORVENCIDO').AsString := ColorToString(cb_corvencido.Selected);
 FieldByName('NEGRITOVENCIDO').AsString := IfThen(chk_negritovencido.Checked, 'T', 'F');
 FieldByName('ITALICOVENCIDO').AsString := IfThen(chk_italicovencido.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCIDO').AsString := IfThen(chk_sublinhadovencido.Checked, 'T', 'F');
 FieldByName('TACHADOVENCIDO').AsString := IfThen(chk_tachadovencido.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCIDO').AsString := IfThen(chk_negritalicovencido.Checked, 'T', 'F');
 
 FieldByName('CORCANCELADO').AsString := ColorToString(cb_corcancelado.Selected);
 FieldByName('NEGRITOCANCELADO').AsString := IfThen(chk_negritocancelado.Checked, 'T', 'F');
 FieldByName('ITALICOCANCELADO').AsString := IfThen(chk_italicocancelado.Checked, 'T', 'F');
 FieldByName('SUBLINHADOCANCELADO').AsString := IfThen(chk_sublinhadocancelado.Checked, 'T', 'F');
 FieldByName('TACHADOCANCELADO').AsString := IfThen(chk_tachadocancelado.Checked, 'T', 'F');
 FieldByName('NEGRITALICOCANCELADO').AsString := IfThen(chk_negritalicocancelado.Checked, 'T', 'F');
 //Grava os dados
 Post;
 //Aplica as atualizações no banco
 ApplyUpdates(0);
 end;
 except
 //
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.btn_SalvarClick(Sender: TObject);
 begin
 SaveToDatabase;
 end;
 
 end.
 | 
 
 o DFM
 
  	  | Código: |  	  | object gb_personalizar: TGroupBox Left = 0
 Top = 0
 Width = 482
 Height = 160
 Align = alClient
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = []
 ParentFont = False
 TabOrder = 0
 object gbVencer: TGroupBox
 Left = 2
 Top = 17
 Width = 159
 Height = 141
 Align = alLeft
 Caption = #192' Vencer'
 TabOrder = 0
 object cb_corvencer: TColorBox
 Left = 8
 Top = 22
 Width = 145
 Height = 22
 ItemHeight = 16
 TabOrder = 0
 end
 object chk_negritovencer: TCheckBox
 Left = 8
 Top = 48
 Width = 97
 Height = 17
 Caption = 'Negrito'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsBold]
 ParentFont = False
 TabOrder = 1
 end
 object chk_italicovencer: TCheckBox
 Left = 8
 Top = 64
 Width = 97
 Height = 17
 Caption = 'It'#225'lico'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsItalic]
 ParentFont = False
 TabOrder = 2
 end
 object chk_sublinhadovencer: TCheckBox
 Left = 8
 Top = 81
 Width = 97
 Height = 17
 Caption = 'Sublinhado'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsUnderline]
 ParentFont = False
 TabOrder = 3
 end
 object chk_tachadovencer: TCheckBox
 Left = 8
 Top = 98
 Width = 97
 Height = 17
 Caption = 'Tachado'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsStrikeOut]
 ParentFont = False
 TabOrder = 4
 end
 object chk_negritalicovencer: TCheckBox
 Left = 8
 Top = 115
 Width = 141
 Height = 17
 Caption = 'Negrito e It'#225'lico'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsBold, fsItalic]
 ParentFont = False
 TabOrder = 5
 end
 end
 object gbVencidos: TGroupBox
 Left = 161
 Top = 17
 Width = 159
 Height = 141
 Align = alLeft
 Caption = 'Vencidos'
 TabOrder = 1
 object cb_corvencido: TColorBox
 Left = 8
 Top = 22
 Width = 145
 Height = 22
 ItemHeight = 16
 TabOrder = 0
 end
 object chk_negritovencido: TCheckBox
 Left = 8
 Top = 48
 Width = 97
 Height = 17
 Caption = 'Negrito'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsBold]
 ParentFont = False
 TabOrder = 1
 end
 object chk_italicovencido: TCheckBox
 Left = 8
 Top = 64
 Width = 97
 Height = 17
 Caption = 'It'#225'lico'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsItalic]
 ParentFont = False
 TabOrder = 2
 end
 object chk_sublinhadovencido: TCheckBox
 Left = 8
 Top = 81
 Width = 97
 Height = 17
 Caption = 'Sublinhado'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsUnderline]
 ParentFont = False
 TabOrder = 3
 end
 object chk_tachadovencido: TCheckBox
 Left = 8
 Top = 98
 Width = 97
 Height = 17
 Caption = 'Tachado'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsStrikeOut]
 ParentFont = False
 TabOrder = 4
 end
 object chk_negritalicovencido: TCheckBox
 Left = 8
 Top = 115
 Width = 141
 Height = 17
 Caption = 'Negrito e It'#225'lico'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsBold, fsItalic]
 ParentFont = False
 TabOrder = 5
 end
 end
 object gbCancelado: TGroupBox
 Left = 320
 Top = 17
 Width = 159
 Height = 141
 Align = alLeft
 Caption = 'Cancelados'
 TabOrder = 2
 object cb_corcancelado: TColorBox
 Left = 8
 Top = 22
 Width = 145
 Height = 22
 ItemHeight = 16
 TabOrder = 0
 end
 object chk_negritocancelado: TCheckBox
 Left = 8
 Top = 48
 Width = 97
 Height = 17
 Caption = 'Negrito'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsBold]
 ParentFont = False
 TabOrder = 1
 end
 object chk_italicocancelado: TCheckBox
 Left = 8
 Top = 64
 Width = 97
 Height = 17
 Caption = 'It'#225'lico'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsItalic]
 ParentFont = False
 TabOrder = 2
 end
 object chk_sublinhadocancelado: TCheckBox
 Left = 8
 Top = 81
 Width = 97
 Height = 17
 Caption = 'Sublinhado'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsUnderline]
 ParentFont = False
 TabOrder = 3
 end
 object chk_tachadocancelado: TCheckBox
 Left = 8
 Top = 98
 Width = 97
 Height = 17
 Caption = 'Tachado'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsStrikeOut]
 ParentFont = False
 TabOrder = 4
 end
 object chk_negritalicocancelado: TCheckBox
 Left = 8
 Top = 115
 Width = 141
 Height = 17
 Caption = 'Negrito e It'#225'lico'
 Font.Charset = ANSI_CHARSET
 Font.Color = clWindowText
 Font.Height = -12
 Font.Name = 'Courier New'
 Font.Style = [fsBold, fsItalic]
 ParentFont = False
 TabOrder = 5
 end
 end
 end
 object Panel1: TPanel
 Left = 0
 Top = 160
 Width = 482
 Height = 41
 Align = alBottom
 TabOrder = 1
 object btn_Salvar: TButton
 Left = 8
 Top = 8
 Width = 75
 Height = 25
 Caption = '&Salvar'
 TabOrder = 0
 OnClick = btn_SalvarClick
 end
 end
 object cdsPersonalizarCor: TClientDataSet
 Aggregates = <>
 Params = <>
 Left = 248
 Top = 168
 end
 
 | 
 
 E o dfm do datamodule
 
  	  | Código: |  	  | object dspCor_Receber: TDataSetProvider DataSet = sqlDSCorReceber
 Left = 96
 Top = 128
 end
 object SQLConnection1: TSQLConnection
 ConnectionName = 'MyTeste'
 DriverName = 'Interbase'
 GetDriverFunc = 'getSQLDriverINTERBASE'
 LibraryName = 'dbexpint.dll'
 LoginPrompt = False
 Params.Strings = (
 'DriverName=Interbase'
 'Database=C:\temp\TESTESP.FDB'
 'RoleName=RoleName'
 'USER_NAME=SYSDBA'
 'Password=masterkey'
 'ServerCharSet='
 'SQLDialect=3'
 'BlobSize=-1'
 'CommitRetain=False'
 'WaitOnLocks=True'
 'ErrorResourceFile='
 'LocaleCode=0000'
 'Interbase TransIsolation=ReadCommited'
 'Trim Char=False')
 VendorLib = 'gds32.dll'
 Connected = True
 Left = 48
 Top = 8
 end
 object sqlDSCorReceber: TSQLDataSet
 CommandText = 'select * from PERSONALIZARCOR_RECEBER'
 MaxBlobSize = -1
 Params = <>
 SQLConnection = SQLConnection1
 Left = 64
 Top = 64
 end
 
 | 
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| marcosalles Moderador
 
  
 
 Registrado: Quarta-Feira, 26 de Março de 2008
 Mensagens: 1695
 Localização: Muriaé Mg
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 2:11 pm    Assunto: |   |  
				| 
 |  
				| Sei não , mas acredito é porque ele estava aberto _________________
 http://marcosalles.wordpress.com
 
 Desenvolvo FreeLancer e presto Consultoria
 Orientação Online  DataSnap DbX ClientDataSet
 POO , Padrões de Projeto e dúvidas de Delphi em
 Geral
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 2:21 pm    Assunto: |   |  
				| 
 |  
				| Mudei a função agora, e esta funcionando, veja 	  | marcosalles escreveu: |  	  | Sei não , mas acredito é porque ele estava aberto | 
 
 
  	  | Código: |  	  | unit U_PersonalizarCor; 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DB, DBClient, Provider;
 
 type
 Tfrm_personalizarcor_receber = class(TForm)
 gb_personalizar: TGroupBox;
 Panel1: TPanel;
 gbVencer: TGroupBox;
 cb_corvencer: TColorBox;
 chk_negritovencer: TCheckBox;
 chk_italicovencer: TCheckBox;
 chk_sublinhadovencer: TCheckBox;
 chk_tachadovencer: TCheckBox;
 chk_negritalicovencer: TCheckBox;
 gbVencidos: TGroupBox;
 cb_corvencido: TColorBox;
 chk_negritovencido: TCheckBox;
 chk_italicovencido: TCheckBox;
 chk_sublinhadovencido: TCheckBox;
 chk_tachadovencido: TCheckBox;
 chk_negritalicovencido: TCheckBox;
 gbCancelado: TGroupBox;
 cb_corcancelado: TColorBox;
 chk_negritocancelado: TCheckBox;
 chk_italicocancelado: TCheckBox;
 chk_sublinhadocancelado: TCheckBox;
 chk_tachadocancelado: TCheckBox;
 chk_negritalicocancelado: TCheckBox;
 btn_Salvar: TButton;
 cdsPersonalizarCor: TClientDataSet;
 procedure FormShow(Sender: TObject);
 procedure btn_SalvarClick(Sender: TObject);
 private
 { Private declarations }
 procedure GetDatabaseValue;
 procedure SaveToDatabase;
 function SelectDBase: Boolean;
 public
 { Public declarations }
 end;
 
 var
 frm_personalizarcor_receber: Tfrm_personalizarcor_receber;
 
 implementation
 
 uses uDM, StrUtils;
 
 {$R *.dfm}
 
 { Tfrm_personalizarcor_receber }
 
 {-------------------------------------------------------------------------------
 Vamos usar um clientdataset que serve para conexão com qualquer componente
 de banco de dados através de um datasetprovider.
 o dataset proveider deve ficar junto no dm setado ao componente de acesso
 ao banco e o clientdataset ficar no form e receber o dsp que esta do dm.
 -------------------------------------------------------------------------------}
 function ADIfThen(aValue: String): Boolean;
 begin
 if aValue = 'T' then
 Result := True
 else
 Result := False;
 end;
 
 function Tfrm_personalizarcor_receber.SelectDBase: Boolean;
 begin
 with cdsPersonalizarCor do
 try
 if not dm.SQLConnection1.Connected then
 dm.SQLConnection1.Connected := True;
 
 //muda o datasetprovider para o cds executar comandos SQL
 dm.dspCor_Receber.Options := dm.dspCor_Receber.Options + [poAllowCommandText];
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 Close;
 CommandText := ' SELECT * FROM PERSONALIZARCOR_RECEBER ';
 Open;
 if not IsEmpty then
 Result := True
 else
 Result := False;
 finally
 Close;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.GetDatabaseValue;
 begin
 if SelectDBase then
 begin
 with cdsPersonalizarCor do
 try
 if Trim(FieldByName('CORVENCER').AsString) <> EmptyStr then
 cb_corvencer.Selected := StringToColor(FieldByName('CORVENCER').AsString);
 chk_negritovencer.Checked := ADIfThen(FieldByName('NEGRITOVENCER').AsString);
 chk_italicovencer.Checked := ADIfThen(FieldByName('ITALICOVENCER').AsString);
 chk_sublinhadovencer.Checked := ADIfThen(FieldByName('SUBLINHADOVENCER').AsString);
 chk_tachadovencer.Checked := ADIfThen(FieldByName('TACHADOVENCER').AsString);
 chk_negritalicovencer.Checked := ADIfThen(FieldByName('NEGRITALICOVENCER').AsString);
 
 if Trim(FieldByName('CORVENCIDO').AsString) <> EmptyStr then
 cb_corvencido.Selected := StringToColor(FieldByName('CORVENCIDO').AsString);
 chk_negritovencido.Checked := ADIfThen(FieldByName('NEGRITOVENCIDO').AsString);
 chk_italicovencido.Checked := ADIfThen(FieldByName('ITALICOVENCIDO').AsString);
 chk_sublinhadovencido.Checked := ADIfThen(FieldByName('SUBLINHADOVENCIDO').AsString);
 chk_tachadovencido.Checked := ADIfThen(FieldByName('TACHADOVENCIDO').AsString);
 chk_negritalicovencido.Checked := ADIfThen(FieldByName('NEGRITALICOVENCIDO').AsString);
 
 if Trim(FieldByName('CORCANCELADO').AsString) <> EmptyStr then
 cb_corcancelado.Selected := StringToColor(FieldByName('CORCANCELADO').AsString);
 chk_negritocancelado.Checked := ADIfThen(FieldByName('NEGRITOCANCELADO').AsString);
 chk_italicocancelado.Checked := ADIfThen(FieldByName('ITALICOCANCELADO').AsString);
 chk_sublinhadocancelado.Checked := ADIfThen(FieldByName('SUBLINHADOCANCELADO').AsString);
 chk_tachadocancelado.Checked := ADIfThen(FieldByName('TACHADOCANCELADO').AsString);
 chk_negritalicocancelado.Checked := ADIfThen(FieldByName('NEGRITALICOCANCELADO').AsString);
 finally
 Close;
 end;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.FormShow(Sender: TObject);
 begin
 //obtem os valores do banco
 GetDatabaseValue;
 end;
 
 procedure Tfrm_personalizarcor_receber.SaveToDatabase;
 begin
 try
 if SelectDBase then
 cdsPersonalizarCor.Delete;
 
 with cdsPersonalizarCor do
 begin
 
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 if not Active then
 Open;
 //depois abrimos um novo insert para receber os novos dados
 cdsPersonalizarCor.Append;
 FieldByName('CORVENCER').AsString := ColorToString(cb_corvencer.Selected);
 FieldByName('NEGRITOVENCER').AsString := IfThen(chk_negritovencer.Checked, 'T', 'F');
 FieldByName('ITALICOVENCER').AsString := IfThen(chk_italicovencer.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCER').AsString := IfThen(chk_sublinhadovencer.Checked, 'T', 'F');
 FieldByName('TACHADOVENCER').AsString := IfThen(chk_tachadovencer.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCER').AsString := IfThen(chk_negritalicovencer.Checked, 'T', 'F');
 
 FieldByName('CORVENCIDO').AsString := ColorToString(cb_corvencido.Selected);
 FieldByName('NEGRITOVENCIDO').AsString := IfThen(chk_negritovencido.Checked, 'T', 'F');
 FieldByName('ITALICOVENCIDO').AsString := IfThen(chk_italicovencido.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCIDO').AsString := IfThen(chk_sublinhadovencido.Checked, 'T', 'F');
 FieldByName('TACHADOVENCIDO').AsString := IfThen(chk_tachadovencido.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCIDO').AsString := IfThen(chk_negritalicovencido.Checked, 'T', 'F');
 
 FieldByName('CORCANCELADO').AsString := ColorToString(cb_corcancelado.Selected);
 FieldByName('NEGRITOCANCELADO').AsString := IfThen(chk_negritocancelado.Checked, 'T', 'F');
 FieldByName('ITALICOCANCELADO').AsString := IfThen(chk_italicocancelado.Checked, 'T', 'F');
 FieldByName('SUBLINHADOCANCELADO').AsString := IfThen(chk_sublinhadocancelado.Checked, 'T', 'F');
 FieldByName('TACHADOCANCELADO').AsString := IfThen(chk_tachadocancelado.Checked, 'T', 'F');
 FieldByName('NEGRITALICOCANCELADO').AsString := IfThen(chk_negritalicocancelado.Checked, 'T', 'F');
 //Grava os dados
 Post;
 //Aplica as atualizações no banco
 ApplyUpdates(0);
 end;
 except
 //
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.btn_SalvarClick(Sender: TObject);
 begin
 SaveToDatabase;
 end;
 
 end.
 | 
 
 Obrigado amigo, deu certo agora.
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 2:31 pm    Assunto: |   |  
				| 
 |  
				| Alias, tem algumas falhas neste codigo 
 Fiz uns ajustes, e criei um novo procedure chamado getValueprovider, para tentar resolver o erro, pois agora estou fechando o cds, mais ainda da pau quando salvo uma vez e tento salvar novamente
 
 
 
  	  | Código: |  	  | unit U_PersonalizarCor; 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DB, DBClient, Provider;
 
 type
 Tfrm_personalizarcor_receber = class(TForm)
 gb_personalizar: TGroupBox;
 Panel1: TPanel;
 gbVencer: TGroupBox;
 cb_corvencer: TColorBox;
 chk_negritovencer: TCheckBox;
 chk_italicovencer: TCheckBox;
 chk_sublinhadovencer: TCheckBox;
 chk_tachadovencer: TCheckBox;
 chk_negritalicovencer: TCheckBox;
 gbVencidos: TGroupBox;
 cb_corvencido: TColorBox;
 chk_negritovencido: TCheckBox;
 chk_italicovencido: TCheckBox;
 chk_sublinhadovencido: TCheckBox;
 chk_tachadovencido: TCheckBox;
 chk_negritalicovencido: TCheckBox;
 gbCancelado: TGroupBox;
 cb_corcancelado: TColorBox;
 chk_negritocancelado: TCheckBox;
 chk_italicocancelado: TCheckBox;
 chk_sublinhadocancelado: TCheckBox;
 chk_tachadocancelado: TCheckBox;
 chk_negritalicocancelado: TCheckBox;
 btn_Salvar: TButton;
 cdsPersonalizarCor: TClientDataSet;
 procedure FormShow(Sender: TObject);
 procedure btn_SalvarClick(Sender: TObject);
 private
 { Private declarations }
 procedure GetDatabaseValue;
 procedure SaveToDatabase;
 procedure GetValueProvider(aCDS: TClientDataSet);
 function SelectDBase: Boolean;
 public
 { Public declarations }
 end;
 
 var
 frm_personalizarcor_receber: Tfrm_personalizarcor_receber;
 
 implementation
 
 uses uDM, StrUtils;
 
 {$R *.dfm}
 
 { Tfrm_personalizarcor_receber }
 
 {-------------------------------------------------------------------------------
 Vamos usar um clientdataset que serve para conexão com qualquer componente
 de banco de dados através de um datasetprovider.
 o dataset proveider deve ficar junto no dm setado ao componente de acesso
 ao banco e o clientdataset ficar no form e receber o dsp que esta do dm.
 -------------------------------------------------------------------------------}
 function ADIfThen(aValue: String): Boolean;
 begin
 if aValue = 'T' then
 Result := True
 else
 Result := False;
 end;
 
 function Tfrm_personalizarcor_receber.SelectDBase: Boolean;
 begin
 with cdsPersonalizarCor do
 try
 if not dm.SQLConnection1.Connected then
 dm.SQLConnection1.Connected := True;
 
 //muda o datasetprovider para o cds executar comandos SQL
 dm.dspCor_Receber.Options := dm.dspCor_Receber.Options + [poAllowCommandText];
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 Close;
 CommandText := ' SELECT * FROM PERSONALIZARCOR_RECEBER ';
 Open;
 if not IsEmpty then
 Result := True
 else
 Result := False;
 finally
 Close;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.GetDatabaseValue;
 begin
 if SelectDBase then
 begin
 with cdsPersonalizarCor do
 try
 //seta ao dsp que esta no dm
 GetValueProvider(cdsPersonalizarCor);
 
 if Trim(FieldByName('CORVENCER').AsString) <> EmptyStr then
 cb_corvencer.Selected := StringToColor(FieldByName('CORVENCER').AsString);
 chk_negritovencer.Checked := ADIfThen(FieldByName('NEGRITOVENCER').AsString);
 chk_italicovencer.Checked := ADIfThen(FieldByName('ITALICOVENCER').AsString);
 chk_sublinhadovencer.Checked := ADIfThen(FieldByName('SUBLINHADOVENCER').AsString);
 chk_tachadovencer.Checked := ADIfThen(FieldByName('TACHADOVENCER').AsString);
 chk_negritalicovencer.Checked := ADIfThen(FieldByName('NEGRITALICOVENCER').AsString);
 
 if Trim(FieldByName('CORVENCIDO').AsString) <> EmptyStr then
 cb_corvencido.Selected := StringToColor(FieldByName('CORVENCIDO').AsString);
 chk_negritovencido.Checked := ADIfThen(FieldByName('NEGRITOVENCIDO').AsString);
 chk_italicovencido.Checked := ADIfThen(FieldByName('ITALICOVENCIDO').AsString);
 chk_sublinhadovencido.Checked := ADIfThen(FieldByName('SUBLINHADOVENCIDO').AsString);
 chk_tachadovencido.Checked := ADIfThen(FieldByName('TACHADOVENCIDO').AsString);
 chk_negritalicovencido.Checked := ADIfThen(FieldByName('NEGRITALICOVENCIDO').AsString);
 
 if Trim(FieldByName('CORCANCELADO').AsString) <> EmptyStr then
 cb_corcancelado.Selected := StringToColor(FieldByName('CORCANCELADO').AsString);
 chk_negritocancelado.Checked := ADIfThen(FieldByName('NEGRITOCANCELADO').AsString);
 chk_italicocancelado.Checked := ADIfThen(FieldByName('ITALICOCANCELADO').AsString);
 chk_sublinhadocancelado.Checked := ADIfThen(FieldByName('SUBLINHADOCANCELADO').AsString);
 chk_tachadocancelado.Checked := ADIfThen(FieldByName('TACHADOCANCELADO').AsString);
 chk_negritalicocancelado.Checked := ADIfThen(FieldByName('NEGRITALICOCANCELADO').AsString);
 finally
 Close;
 end;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.FormShow(Sender: TObject);
 begin
 //obtem os valores do banco
 GetDatabaseValue;
 end;
 
 procedure Tfrm_personalizarcor_receber.SaveToDatabase;
 begin
 try
 if SelectDBase then
 begin
 GetValueProvider(cdsPersonalizarCor);
 cdsPersonalizarCor.Delete;
 end;
 
 with cdsPersonalizarCor do
 begin
 
 //seta ao dsp que esta no dm
 GetValueProvider(cdsPersonalizarCor);
 
 //depois abrimos um novo insert para receber os novos dados
 cdsPersonalizarCor.Append;
 FieldByName('CORVENCER').AsString := ColorToString(cb_corvencer.Selected);
 FieldByName('NEGRITOVENCER').AsString := IfThen(chk_negritovencer.Checked, 'T', 'F');
 FieldByName('ITALICOVENCER').AsString := IfThen(chk_italicovencer.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCER').AsString := IfThen(chk_sublinhadovencer.Checked, 'T', 'F');
 FieldByName('TACHADOVENCER').AsString := IfThen(chk_tachadovencer.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCER').AsString := IfThen(chk_negritalicovencer.Checked, 'T', 'F');
 
 FieldByName('CORVENCIDO').AsString := ColorToString(cb_corvencido.Selected);
 FieldByName('NEGRITOVENCIDO').AsString := IfThen(chk_negritovencido.Checked, 'T', 'F');
 FieldByName('ITALICOVENCIDO').AsString := IfThen(chk_italicovencido.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCIDO').AsString := IfThen(chk_sublinhadovencido.Checked, 'T', 'F');
 FieldByName('TACHADOVENCIDO').AsString := IfThen(chk_tachadovencido.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCIDO').AsString := IfThen(chk_negritalicovencido.Checked, 'T', 'F');
 
 FieldByName('CORCANCELADO').AsString := ColorToString(cb_corcancelado.Selected);
 FieldByName('NEGRITOCANCELADO').AsString := IfThen(chk_negritocancelado.Checked, 'T', 'F');
 FieldByName('ITALICOCANCELADO').AsString := IfThen(chk_italicocancelado.Checked, 'T', 'F');
 FieldByName('SUBLINHADOCANCELADO').AsString := IfThen(chk_sublinhadocancelado.Checked, 'T', 'F');
 FieldByName('TACHADOCANCELADO').AsString := IfThen(chk_tachadocancelado.Checked, 'T', 'F');
 FieldByName('NEGRITALICOCANCELADO').AsString := IfThen(chk_negritalicocancelado.Checked, 'T', 'F');
 //Grava os dados
 Post;
 //Aplica as atualizações no banco
 ApplyUpdates(0);
 end;
 except
 //
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.btn_SalvarClick(Sender: TObject);
 begin
 SaveToDatabase;
 end;
 
 procedure Tfrm_personalizarcor_receber.GetValueProvider(
 aCDS: TClientDataSet);
 begin
 with aCDS do
 begin
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 if not Active then
 Open;
 end;
 end;
 
 end.
 | 
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Qua Jan 18, 2012 2:40 pm    Assunto: |   |  
				| 
 |  
				| Pronto agora esta resolvido, faltou dar um Close na procedure saveToDatabase; 
 O codigo final ficou assim
 
  	  | Código: |  	  | unit U_PersonalizarCor; 
 interface
 
 uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, DB, DBClient, Provider;
 
 type
 Tfrm_personalizarcor_receber = class(TForm)
 gb_personalizar: TGroupBox;
 Panel1: TPanel;
 gbVencer: TGroupBox;
 cb_corvencer: TColorBox;
 chk_negritovencer: TCheckBox;
 chk_italicovencer: TCheckBox;
 chk_sublinhadovencer: TCheckBox;
 chk_tachadovencer: TCheckBox;
 chk_negritalicovencer: TCheckBox;
 gbVencidos: TGroupBox;
 cb_corvencido: TColorBox;
 chk_negritovencido: TCheckBox;
 chk_italicovencido: TCheckBox;
 chk_sublinhadovencido: TCheckBox;
 chk_tachadovencido: TCheckBox;
 chk_negritalicovencido: TCheckBox;
 gbCancelado: TGroupBox;
 cb_corcancelado: TColorBox;
 chk_negritocancelado: TCheckBox;
 chk_italicocancelado: TCheckBox;
 chk_sublinhadocancelado: TCheckBox;
 chk_tachadocancelado: TCheckBox;
 chk_negritalicocancelado: TCheckBox;
 btn_Salvar: TButton;
 cdsPersonalizarCor: TClientDataSet;
 procedure FormShow(Sender: TObject);
 procedure btn_SalvarClick(Sender: TObject);
 private
 { Private declarations }
 procedure GetDatabaseValue;
 procedure SaveToDatabase;
 procedure GetValueProvider(aCDS: TClientDataSet);
 function SelectDBase: Boolean;
 public
 { Public declarations }
 end;
 
 var
 frm_personalizarcor_receber: Tfrm_personalizarcor_receber;
 
 implementation
 
 uses uDM, StrUtils;
 
 {$R *.dfm}
 
 { Tfrm_personalizarcor_receber }
 
 {-------------------------------------------------------------------------------
 Vamos usar um clientdataset que serve para conexão com qualquer componente
 de banco de dados através de um datasetprovider.
 o dataset proveider deve ficar junto no dm setado ao componente de acesso
 ao banco e o clientdataset ficar no form e receber o dsp que esta do dm.
 -------------------------------------------------------------------------------}
 function ADIfThen(aValue: String): Boolean;
 begin
 if aValue = 'T' then
 Result := True
 else
 Result := False;
 end;
 
 function Tfrm_personalizarcor_receber.SelectDBase: Boolean;
 begin
 with cdsPersonalizarCor do
 try
 //muda o datasetprovider para o cds executar comandos SQL
 dm.dspCor_Receber.Options := dm.dspCor_Receber.Options + [poAllowCommandText];
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 Close;
 CommandText := ' SELECT * FROM PERSONALIZARCOR_RECEBER ';
 Open;
 if not IsEmpty then
 Result := True
 else
 Result := False;
 finally
 Close;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.GetDatabaseValue;
 begin
 if SelectDBase then
 begin
 with cdsPersonalizarCor do
 try
 //seta ao dsp que esta no dm
 GetValueProvider(cdsPersonalizarCor);
 
 if Trim(FieldByName('CORVENCER').AsString) <> EmptyStr then
 cb_corvencer.Selected := StringToColor(FieldByName('CORVENCER').AsString);
 chk_negritovencer.Checked := ADIfThen(FieldByName('NEGRITOVENCER').AsString);
 chk_italicovencer.Checked := ADIfThen(FieldByName('ITALICOVENCER').AsString);
 chk_sublinhadovencer.Checked := ADIfThen(FieldByName('SUBLINHADOVENCER').AsString);
 chk_tachadovencer.Checked := ADIfThen(FieldByName('TACHADOVENCER').AsString);
 chk_negritalicovencer.Checked := ADIfThen(FieldByName('NEGRITALICOVENCER').AsString);
 
 if Trim(FieldByName('CORVENCIDO').AsString) <> EmptyStr then
 cb_corvencido.Selected := StringToColor(FieldByName('CORVENCIDO').AsString);
 chk_negritovencido.Checked := ADIfThen(FieldByName('NEGRITOVENCIDO').AsString);
 chk_italicovencido.Checked := ADIfThen(FieldByName('ITALICOVENCIDO').AsString);
 chk_sublinhadovencido.Checked := ADIfThen(FieldByName('SUBLINHADOVENCIDO').AsString);
 chk_tachadovencido.Checked := ADIfThen(FieldByName('TACHADOVENCIDO').AsString);
 chk_negritalicovencido.Checked := ADIfThen(FieldByName('NEGRITALICOVENCIDO').AsString);
 
 if Trim(FieldByName('CORCANCELADO').AsString) <> EmptyStr then
 cb_corcancelado.Selected := StringToColor(FieldByName('CORCANCELADO').AsString);
 chk_negritocancelado.Checked := ADIfThen(FieldByName('NEGRITOCANCELADO').AsString);
 chk_italicocancelado.Checked := ADIfThen(FieldByName('ITALICOCANCELADO').AsString);
 chk_sublinhadocancelado.Checked := ADIfThen(FieldByName('SUBLINHADOCANCELADO').AsString);
 chk_tachadocancelado.Checked := ADIfThen(FieldByName('TACHADOCANCELADO').AsString);
 chk_negritalicocancelado.Checked := ADIfThen(FieldByName('NEGRITALICOCANCELADO').AsString);
 finally
 Close;
 end;
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.FormShow(Sender: TObject);
 begin
 //obtem os valores do banco
 GetDatabaseValue;
 end;
 
 procedure Tfrm_personalizarcor_receber.SaveToDatabase;
 begin
 try
 if SelectDBase then
 begin
 GetValueProvider(cdsPersonalizarCor);
 cdsPersonalizarCor.Delete;
 end;
 
 with cdsPersonalizarCor do
 begin
 
 //seta ao dsp que esta no dm
 GetValueProvider(cdsPersonalizarCor);
 
 //depois abrimos um novo insert para receber os novos dados
 cdsPersonalizarCor.Append;
 FieldByName('CORVENCER').AsString := ColorToString(cb_corvencer.Selected);
 FieldByName('NEGRITOVENCER').AsString := IfThen(chk_negritovencer.Checked, 'T', 'F');
 FieldByName('ITALICOVENCER').AsString := IfThen(chk_italicovencer.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCER').AsString := IfThen(chk_sublinhadovencer.Checked, 'T', 'F');
 FieldByName('TACHADOVENCER').AsString := IfThen(chk_tachadovencer.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCER').AsString := IfThen(chk_negritalicovencer.Checked, 'T', 'F');
 
 FieldByName('CORVENCIDO').AsString := ColorToString(cb_corvencido.Selected);
 FieldByName('NEGRITOVENCIDO').AsString := IfThen(chk_negritovencido.Checked, 'T', 'F');
 FieldByName('ITALICOVENCIDO').AsString := IfThen(chk_italicovencido.Checked, 'T', 'F');
 FieldByName('SUBLINHADOVENCIDO').AsString := IfThen(chk_sublinhadovencido.Checked, 'T', 'F');
 FieldByName('TACHADOVENCIDO').AsString := IfThen(chk_tachadovencido.Checked, 'T', 'F');
 FieldByName('NEGRITALICOVENCIDO').AsString := IfThen(chk_negritalicovencido.Checked, 'T', 'F');
 
 FieldByName('CORCANCELADO').AsString := ColorToString(cb_corcancelado.Selected);
 FieldByName('NEGRITOCANCELADO').AsString := IfThen(chk_negritocancelado.Checked, 'T', 'F');
 FieldByName('ITALICOCANCELADO').AsString := IfThen(chk_italicocancelado.Checked, 'T', 'F');
 FieldByName('SUBLINHADOCANCELADO').AsString := IfThen(chk_sublinhadocancelado.Checked, 'T', 'F');
 FieldByName('TACHADOCANCELADO').AsString := IfThen(chk_tachadocancelado.Checked, 'T', 'F');
 FieldByName('NEGRITALICOCANCELADO').AsString := IfThen(chk_negritalicocancelado.Checked, 'T', 'F');
 //Grava os dados
 Post;
 //Aplica as atualizações no banco
 ApplyUpdates(0);
 Close;
 end;
 except
 //
 end;
 end;
 
 procedure Tfrm_personalizarcor_receber.btn_SalvarClick(Sender: TObject);
 begin
 SaveToDatabase;
 end;
 
 procedure Tfrm_personalizarcor_receber.GetValueProvider(
 aCDS: TClientDataSet);
 begin
 with aCDS do
 begin
 //seta ao dsp que esta no dm
 SetProvider(dm.dspCor_Receber);
 if not Active then
 Open;
 end;
 end;
 
 end.
 | 
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  |  
		| Voltar ao Topo |  |  
		|  |  
		|  |  
  
	| 
 
 | Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido
 Editar Mensagens: Proibido.
 Excluir Mensagens: Proibido.
 Votar em Enquetes: Proibido.
 
 |  |