Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   problema con combo box (https://www.clubdelphi.com/foros/showthread.php?t=10461)

maui 19-05-2004 23:21:57

problema con combo box
 
hola amigos del club

tengo un mantenedor de productos, en los cuales tengo 2 combo box:
familia y proveedor, estos tienen sus respectivos codigos a elegir, pero al compilar me da el sigte error "list index out bounds(0)".

estoy guardando, eliminando y modificando con procedimientos almacenados.
este es el codigo que estoy utilizando para los combos:
Código Delphi [-]
Procedure TfrmManproductos.CargaFamilia;
begin
  FrmManproductos.tblFamily.Open;
  FrmManproductos.tblFamily.First;
  while not FrmManproductos.tblFamily.Eof do
  begin
    FrmManproductos.cboxFamily.Items.Add(FrmManproductos.qryFamily.Fields[0].AsString);
    FrmManproductos.tblFamily.close;
  end;
  //FrmManproductos.tblFamily.close;
end;

procedure TfrmManproductos.CargaProveedor;
begin
FrmManproductos.tblProvee.Open;
FrmManproductos.tblProvee.first;
while not FrmManproductos.tblFamily.Eof do
begin
FrmManproductos.cboxProvee.Items.Add(FrmManproductos.qryProvee.Fields[0].asString);
FrmManproductos.tblProvee.close;
end;
//FrmManproductos.tblProvee.Close;
end;

he intentado todo, pero no he conseguido nada....

por favor espero sus comentarios....

eduarcol 19-05-2004 23:29:13

El error lo lanza al compilar o al ejecutar??

Si es al ejecutar me imagino que puede ser por que estas eliminando en algun momento los items del combo box

o tambien podria ser el indice del campo al que estas haciendo referencia


Eso error lo que quiere decir es que el indice de la lista esta fuera de la banda y se genera cuando haces referencia a un indice que no existe, revisa eso y lo comentas

roman 19-05-2004 23:32:01

Y un comentario al margen: esos ciclos jamás van a terminar.

// Saludos

roman 19-05-2004 23:35:34

Oops!

Quizá me equivoqué y sí terminen pero solo se llenará un ítem de cada combo.

// Saludos

eduarcol 19-05-2004 23:53:59

Si terminan pero en Excepcion

"Operacion no valida en un dataset cerrado"

No me habia percatado eres un barbaro :D

sanxpue 19-05-2004 23:57:41

Haber Haber
 
Código Delphi [-]
Procedure TfrmManproductos.CargaFamilia;
begin
  FrmManproductos.tblFamily.Open;
  FrmManproductos.tblFamily.First;
  while not FrmManproductos.tblFamily.Eof do
  begin
    FrmManproductos.cboxFamily.Items.Add(FrmManproductos.qryFamily.Fields[0].AsString);
    FrmManproductos.tblFamily.close;
  end;
  //FrmManproductos.tblFamily.close;
end;

procedure TfrmManproductos.CargaProveedor;
begin
FrmManproductos.tblProvee.Open;
FrmManproductos.tblProvee.first;
while not FrmManproductos.tblFamily.Eof do
begin
FrmManproductos.cboxProvee.Items.Add(FrmManproductos.qryProvee.Fields[0].asString);
FrmManproductos.tblProvee.close;
end;
//FrmManproductos.tblProvee.Close;
end;

Esta medio rara la cosa deberia de quedar ma o menos asi

Código Delphi [-]
Procedure TfrmManproductos.CargaFamilia;
begin
  tblFamily.Open;
  tblFamily.First;
  while not tblFamily.Eof do
  begin
    //Aqui por que llamas a un query???
    //FrmManproductos.cboxFamily.Items.Add(FrmManproductos.qryFamily.Fields[0].AsString);
 //Aqui por que la cierras ???
  //    FrmManproductos.tblFamily.close; 
    cboxFamily.Items.Add(tblFamily.FieldByName('Nombre_Del_Campo').AsString);
    tblFamily.Next; //Para que te de el siguiente registro
  end;
end;

Ya nada mas el otro lo acomodas bien :confused:

maui 20-05-2004 01:04:09

hola amigo sanxpue

hice los cambios que tu sugeriste, pero sigo con el mismo error

"list index out bounds(0)".

me podrias ayudar a solucionarlo....

espero tus comentarios....

eduarcol 20-05-2004 01:13:23

Vuelvo a preguntar estas seguroq ue es ahi el error ya lo depurastes paso a paso???, en que linea exacta te lo da??

sanxpue 20-05-2004 01:18:14

Si...
 
Manda donde te da el error por que eso no debe de marcar error.. :confused:

maui 20-05-2004 06:34:12

hola amigo sanxpue

el error me lo da en el procedimiento almacenado:
Código Delphi [-]
procedure TFrmManproductos.BtnGuardarClick(Sender: TObject);
begin
FrmManproductos.StoredProdAdd.Params[0].AsInteger:= StrToInt(Edit1.Text);
FrmManproductos.StoredProdAdd.Params[1].AsInteger:= StrToInt(cboxFamily.Text);
FrmManproductos.StoredProdAdd.Params[2].AsInteger:= StrToInt(cboxProvee.Text);
FrmManproductos.StoredProdAdd.Params[3].AsString:= Edit2.Text;
FrmManproductos.StoredProdAdd.Params[4].AsString:= Edit3.Text;
FrmManproductos.StoredProdAdd.Params[5].AsInteger:= StrToInt(Edit4.Text);
FrmManproductos.StoredProdAdd.Params[6].AsString:= Edit5.Text;
FrmManproductos.StoredProdAdd.Params[7].AsInteger:= StrToInt(Edit6.Text);
FrmManproductos.StoredProdAdd.Params[8].AsInteger:= StrToInt(Edit7.Text);
FrmManproductos.StoredProdAdd.Params[9].AsInteger:= StrToInt(Edit8.Text);
FrmManproductos.StoredProdAdd.Params[10].AsInteger:= StrToInt(Edit9.Text);
//FrmManproductos.StoredProductAdd.Params[11].AsString:= DBImage1.Text;
FrmManproductos.StoredProdAdd.ExecProc;
 Limpia_Datos; /aca me da el error....

donde limpia datos es:
Código Delphi [-]
procedure TFrmManproductos.Limpia_Datos;
begin
Edit1.text:='';
cboxFamily.text:='';
cboxProvee.text:='';
Edit2.text:='';
Edit3.text:='';
Edit4.text:='';
Edit5.text:='';
Edit6.text:='';
Edit7.text:='';
Edit8.text:='';
Edit9.text:='';
//DBImage1.text:='';
Edit1.setfocus;
end;

espero tus comentarios...


La franja horaria es GMT +2. Ahora son las 08:44:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi