Orientación - Manejo del DBLoockupComboBox

snoop_mx
09 de Mayo del 2005
Alguien me podría orientar para el manejo del DBLoockupComboBox (Parámetros) para agregar al campo IdProveedor el

valor Numérico correspondiente (IdProveedor) en vez del Texto (NombreProveedor) que es mostrado en el

DBLookupComboBox para que no cause error.

Me explico:

Mi Tabla: tbProveedores (Hecha en SQL Server 2000)
Mis Atributos: idProveedor, NombreProveedor

Cabe recalcar que lo que he hecho en el Object Inspector es:

ListSource: Apuntando al Datasource y del DataSource Apuntando al ADOQuery y dentro del ADOQuery SELECT * FROM

tbProveedores
ListField: NombreProveedor
KeyField: idProveedor

Y me muestra todos los nombres de Proveedores, pero a la hora de invocar el procedimiento de guardar en

SQL,obviamente me quiere guardar el Texto (NombreProveedor) y no el Número (IdProveedor).

Mi Procedimiento de Agregar es:

Parameters.ParamByName('IdProveedor').Value := edtIdProveedor.Text;
//Donde edtIdProveedor es el DBLookupComboBox
//y el Parámetro IdProveedor esta para recibir un Integer.

Gracias y espero me entiendan, saludos desde Veracruz, México.
Atte. Carlos Valdez. [email protected]

franc_slash
09 de Mayo del 2005
Yo trabajo con el c++ builder pero me parece que debes hacer lo siguiente
en lugar de edtldProveedor->Text debes poner
edtldProveedor->KeyValue

snoop_mx
09 de Mayo del 2005
Si gracias men, precisamente era eso.
Te lo agradezco infinitamente.

snoop_mx
09 de Mayo del 2005
Ok, y ESTÃ, ahora el detalle es:
Cómo hacer para que al seleccionar un registro se cambie automaticamente el (Numero)idProveedor correspondiente así como lo hago en los edits (Texto), (Esto me servirá para poder Modificar un registro y no me marque Error).
Aquí anexo el código donde se ve que los edits que tengo se cambian al que debería de ser cuando se selecciona del DBGrid, no asi los DBLookupComboBox que estan en comentarios.
procedure TdmProductos.dsProductosDataChange(Sender: TObject; Field: TField);
begin
frmProductos.edtIdProducto.Text:= dmProductos.qryVisualiza.Fieldbyname('IdProducto').AsString;
frmProductos.edtNombreProducto.Text:= dmProductos.qryVisualiza.Fieldbyname('NombreProducto').AsString;
frmProductos.edtPrecio.Text:= dmProductos.qryVisualiza.Fieldbyname('Precio').AsString;
// frmProductos.edtIdProveedor.Text:= dmProductos.qryVisualiza.Fieldbyname('IdProveedor').AsString;
// frmProductos.edtIdCategoria.Text:= dmProductos.qryVisualiza.Fieldbyname('IdCategoria').AsString;
end;