Fórum Carregar combobox com ClientDataSet #426157

15/10/2012

0

Pessoal, bom dia.

To usando MySql com ClientDataSet. Acontece o seguinte: Ao abrir o form de Cadastro e tentar carregar a combobox ou mesmo dar enter para mudar de campo, ta dando:

Dataset not in edit or insert mode. Não quero inserir ou editar, por enquanto, apenas preencher a combobox. Preencho com esse código:

procedure TfrmClientes.CarregarCombo;
var
  tempCliente: TCliente; // Aqui estou declarando um obj do tipo da classe
begin
 DM.cdsClientes.Close;
 cmbClientes.Items.Clear;

 DM.cdsClientes.Open;
 DM.cdsClientes.First;
 while not DM.cdsClientes.Eof do
 begin
   // neste momento vou instanciar um obj para cada item do combo
   tempCliente := TCliente.Create;
   tempCliente.Codigo := DM.cdsClientes.fieldbyname('CLI_CODIGO').AsString;
   tempCliente.Nome := DM.cdsClientes.fieldbyname('CLI_NOME').AsString;
   //desta forma em cada item do cmb você terá um objeto associada na lista
   cmbClientes.Items.AddObject(tempCliente.Nome, tempCliente);

   DM.cdsClientes.Next;
 end;
end;


Não sei mais o que fazer pra tirar esse erro.
Frederico Brigatte***

Frederico Brigatte***

Responder

Post mais votado

15/10/2012

Ta dando agora Inaccessible value

procedure TfrmClientes.btnAdicionarClick(Sender: TObject);
begin
DM.cdsClientes.Open; -> Nessa linha
DM.cdsClientes.append;
dbData_Cad.Text := DateToStr(Date);
// dbNome.SetFocus;
end;


E diz que o campo tem que ter valor. Não sei mais o que fazer.

Frederico Brigatte***

Frederico Brigatte***
Responder

Gostei + 1

Mais Posts

15/10/2012

Gilmar Moraes

Tenta assim ...


Var
I:Integer;
begin
for I := 0 to datasouce1.DataSet.FieldCount - 1 do
Begin
if datasouce1.DataSet.Fields[I].DataType in [ftstring, ftwidestring, ftfixedchar] then
Combobox1.Items.Add(datasouce1.DataSet.Fields[I].FieldName)
end;



lembrando que o ftstring, o ftwwidestring etc, são os tipos de campos de tabela que vão aparecer no combobox..
Responder

Gostei + 0

15/10/2012

Gilmar Moraes

Ta dando agora Inaccessible value

procedure TfrmClientes.btnAdicionarClick(Sender: TObject);
begin
DM.cdsClientes.Open; -> Nessa linha
DM.cdsClientes.append;
dbData_Cad.Text := DateToStr(Date);
// dbNome.SetFocus;
end;


E diz que o campo tem que ter valor. Não sei mais o que fazer.


Bom..explia melhor o que vc está querendo..

eu entendi que vc queria um combobox com os campos de tabela dentro, é isso ? ou estou enganado ?
Responder

Gostei + 0

15/10/2012

Frederico Brigatte***

Sim, mas ja resolvi o problema, obrigado
Responder

Gostei + 0

15/10/2012

Alisson Santos

O tópico está sendo fechado, qualquer duvida nos informar.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar