ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Missing data provider or datapacket? [RESOLVIDO]
Ir à página 1, 2  Próximo
 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 1:11 pm    Assunto: Missing data provider or datapacket? [RESOLVIDO] Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 1:36 pm    Assunto: Responder com Citação

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.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qua Jan 18, 2012 1:43 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 1:46 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qua Jan 18, 2012 1:47 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 1:53 pm    Assunto: Responder com Citação

marcosalles escreveu:
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
ta setado a um TSQLDataSet do DBX

Tanto é que chamo esta função aqui também

Código:
GetDatabaseValue;


Marco, vi que o problemas esta quando eu faço um Empy Table. Ai da o erro, mais se eu persisitir em salvar os dados ele salva na segunda vez no banco.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qua Jan 18, 2012 1:57 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 2:00 pm    Assunto: Responder com Citação

marcosalles escreveu:
So para agente entender e mais pessoas opiniarem .

Como voce esta dando este empty ??
Foi la no ibexpert mesmo, limpei a tabela para iniciar zerado todos fields null.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qua Jan 18, 2012 2:07 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 2:07 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 2:08 pm    Assunto: Responder com Citação

marcosalles escreveu:
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

é itos ???
Exatamente isso
marcosalles escreveu:

So uma curioisdade .. Quando voce fez este empty a conexão do Dbx
estava ativa ????
Sim estava aberto, vou testar com ele fechado.
_________________
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
Ver o perfil de Usuários Enviar Mensagem Particular
marcosalles
Moderador
Moderador


Registrado: Quarta-Feira, 26 de Março de 2008
Mensagens: 1695
Localização: Muriaé Mg

MensagemEnviada: Qua Jan 18, 2012 2:11 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 2:21 pm    Assunto: Responder com Citação

marcosalles escreveu:
Sei não , mas acredito é porque ele estava aberto
Mudei a função agora, e esta funcionando, veja

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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 2:31 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 18, 2012 2:40 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Ir à página 1, 2  Próximo
Página 1 de 2

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB