Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Usar DbLookUpComboBox sin seleccionar sin unirlo al Data Source... (https://www.clubdelphi.com/foros/showthread.php?t=71905)

verito_83mdq 17-01-2011 22:30:38

Usar DbLookUpComboBox sin seleccionar sin unirlo al Data Source...
 
Buenas a todos!!! La duda que tengo es si se puede usar el DbLookUpComboBox sin unirlo al DataSource, osea que este conectado al ListSource solamente, traerá algún problema?? De momento lo acabo de hacer y para guardar los datos hago lo siguiente:

Código SQL [-]
with QueryDataModule.ClienteZQuery do
                begin
                     If active then close;
                     SQL.Clear;
                     SQL.Add('Insert Into cliente(Apellido,Nombre,DNI,Fecha_Nacimiento,ID_Ocupacion,ID_Proveedor_Mail)');
                     SQL.Add('Values (:Ape,:Nom,:DN,:FechaNacimiento,:IDOcupacion,:IDProveedorMail)');
                     ParamByName('Ape').AsAnsiString:=AltasForm.ApellidoEdit.Text;
                     ParamByName('Nom').AsAnsiString:=AltasForm.NombreEdit.Text;
                     ParamByName('DN').AsAnsiString:=AltasForm.DNIEdit.Text;
                     ParamByName('FechaNacimiento').Value:=AltasForm.FechaNacimientoDateTimePicker.DateTime;
                     ParamByName('IDOcupacion').Value:=AltasForm.OcupacionDBLookupComboBox.KeyValue;
                     ParamByName('IDProveedorMail').Value:=AltasForm.ProveedorMailDBLookupComboBox.KeyValue;
                     ExecSQL;

Quería saber si esto me puede llegar a traer algún problema con la información. Si no se entiende bien lo que quiero hacer lo explico otra vez.
Saludos y espero sus opiniones. Gracias.

BlueSteel 17-01-2011 22:53:06

Hola

Al menos cuando he utilizado ese componente siempre lo tengo con el ListSource... y no con el DataSource


Salu2:D:p

verito_83mdq 17-01-2011 23:12:05

Gracias BlueSteel vos haces lo mismo? Osea que no ultilizas el metodo de los dataset como el insert y el post, no haces todo a mano, similar al codigo que puse yo? Gracias!

radenf 17-01-2011 23:35:48

Yo utilizo los DbLookupComboBox unidos al Listsource y al Datasource cuando deseo insertar en una tabla (la que está conectada al Datasource) los registros que se seleccionan con el DbLookupComboBox, desde otra tabla.

Por ejemplo tengo una tabla "Ciudades" conectada al ListSource del DbLookupComboBox desde la cual se selecciona la ciudad que se debe insertar en el campo ciudad de otra tabla "Clientes".

Espero que se entienda

Salu2

verito_83mdq 18-01-2011 00:06:21

Hola Radenf !! Exactamente así lo tenia antes incluso tambien tengo la tabla ciudad con el campo ID_Ciudad en la tabla cliente :D, pero después lo hice como puse arriba porque no trabajo con los métodos Insert,Post lo hago con la sentencia Sql como puse arriba entonces no puedo ponerle el DataSource al DBLookUpCombo, de todas maneras funciona muy bien así.
Saludos!

JoseAntonio 18-01-2011 06:26:33

Yo pocas veces uso controles enlazados a datos, genero las sentencias sql a mano, se codifica un poco mas pero a la larga es mas versatil, en tu caso, llenaria manualmente los items de un combobox estandar con los datos de un select, salu2

verito_83mdq 18-01-2011 13:52:53

Gracias chicos por darme una opinión ahora me queda mas claro este asunto. JoseAntonio primero haces un select para llenar los datos y despues en el evento OnExit te fijas el id? Con keyValue? Gracias!

JoseAntonio 19-01-2011 15:59:06

Cita:

Empezado por verito_83mdq (Mensaje 387860)
Gracias chicos por darme una opinión ahora me queda mas claro este asunto. JoseAntonio primero haces un select para llenar los datos y despues en el evento OnExit te fijas el id? Con keyValue? Gracias!


lo que hago es añadir al combobox no solo cadenas sino enteros (la clave) asi con el item index puedo saber cual es la clave activa tambien, por ejemplo:

Código Delphi [-]
....
  SQLStr := 'SELECT * FROM CTL_ESTADOS WHERE NOM_TABLA = ' + QuotedStr('ESTADO_TAREA') + ' ORDER BY ID_STD ';
  ADataset := dm.GetNewDataSet(sqlstr);
  for i:= 0 to ADataset.recordcount -1 do begin
    AtaskState := ADataset.fieldByname('id_std').AsInteger;
    ATaskStateStr := ADataset.fieldbyName('Nom_stado').asString;
    cboStates.Items.AddObject(AtaskStateStr, TObject(ATaskState)); // cbStates es el combobox
    ADataset.Next;
  end;
...

haylly456 22-01-2011 10:27:47

hola chicos,,,
En el empuje de un botón por el usuario, me gustaría hacer cambios en todos
los registros de un conjunto de datos curenly visible en unDBGrid.
Necesito una manera de identificar las filas visibles con el fin deaplicar un filtro o ejecutar
una consulta en el conjunto de datos. ¿Cómo sé el primero y elúltimo filas DBGrid?
alguien decirme plz


La franja horaria es GMT +2. Ahora son las 12:30:37.

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