Orientación - Manejo del DBLoockupComboBox
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]
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]
Yo trabajo con el c++ builder pero me parece que debes hacer lo siguiente
en lugar de edtldProveedor->Text debes poner
edtldProveedor->KeyValue
en lugar de edtldProveedor->Text debes poner
edtldProveedor->KeyValue
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;
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;
