problemas con sql
hola q tal
mmm lo que estoy haciendo es listar en un dbcombobox(items) la columna de una tabla osea en el dbcombobox en el datafield pongo la columna que quiero listar ahora lo que quiero hacer es que cundo yo elija una de los items me rellene los datos relacionados en un edit (por ejemplo si elijo madrea en otro edit me ponga $45, y si pongo aluminio en otro edit me ponga $56) ya intente muchas cosa pero no me funciona desde ya muchas gracias............ |
por que no pruebas llenar un combobox manualmente y cada vez que ocurra el evento OnChange lanzas un Query que te busque la info que requieres y la pones MANUALMENTE en el edit...
Sé que es algo primitivo el hacer las cosas manualmente pero a mi me da excelentes resultados en este tipo de cosas. Suerte, saludos! |
ok gracias pero
Si es asi pero tengo un problemita que cundo voy ah elminar con sql no lo elimina eso tambein debaria hacerl manualmente oase no se borra de los items cada vez que elimino de la base de datos nos e si me entienden
pero no podria tener otra soluciones mas sencilla y ademas como hago para hacerlo manuelmente osea que me ingrese en el edit con una consulta sql lo que elegi en el dbcombobox me lo rellene automaticamnete cundo lo elijo la opcin del combo como podria hacerlo puieden mandarme el codigo para giarme ok |
yo lo hago de la siguiente manera, espero te sirva:
cargo las listas con una funcion: cargaPacientes(cbNombres); // aqui mando cargar en el combo los nombres de los pacientes por ejemplo y la funcion es algo parecido a esto: Procedure CargaPacientes(Pacientes: TComboBox); begin sql:='Select id_paciente as ID, nombres || '' '' || paterno || '' '' || materno as Nombre'+ ' From SS_C_PACIENTE Where fecha_baja is null order by 1'; EjecutaSQL(md.ADOQuery,sql,true); Pacientes.Clear; while not md.ADOQuery.Eof do begin Pacientes.Add(md.ADOQuery.FieldByName('Nombre').AsString, md.ADOQuery.FieldByName('ID').AsString); // aqui tienes que cambiar algo para que jale md.ADOQuery.Next; end; end; luego cuando cambio de paciente hago lo siguiente: sql:='select Importe_Sesion '+ ' from SS_C_EMPLEADO_IMPORTE_PAGO IP '+ ' join SS_C_EMPLEADO E on (IP.ID_EMPLEADO=E.ID_EMPLEADO) '+ ' join SS_C_PACIENTE P on (P.ID_TERAPEUTA=E.ID_EMPLEADO) '+ ' where P.ID_PACIENTE='+ cbNombres.CurrentID; // aqui tienes que modifica pa que te jale EjecutaSQL(md.ADOQuery,sql,true); // en lugar de asignar todos los valores hice una funcionsita if not md.ADOQuery.Eof then begin edImporte.Text:= md.ADOQuery.FieldByName('Importe_Sesion').AsString; MontoTerapia:= md.ADOQuery.FieldByName('Importe_Sesion').AsInteger; end else edImporte.Text:=''; Y asi todo queda de forma manual y cuando por ejemplo ELIMINAS un registro vuelves a mandar a traer a la primer funcion cargaPacientes(cbNombres); y primero limpia el combobox y luego carga los pacientes, de esa forma YA NO VERAS INFORMACION ELIMINADA. te repito es como yo lo hago, no se si te sirva, espero que si, saludos!!! :) |
voy ha probar
voy ha probar pero muchisimas gracais de todas formas
|
como te fue? ya quedo?
|
hola betto
mira no e tenido tiempo para poder probarlo por el trabajo pero por lo que vi en el codigo me va ah servir el tema es q puede haber alguna manera sin usar funciones osea solo asignando alguna consulta(sql) al edit en alguno de los eventos ONchange o lago asi puede ser?
Desde ya muchas gracias por todo cuando pruebe te digo pero como te dije por lo que vi en el codigo seguro me surve muchas gracias |
La franja horaria es GMT +2. Ahora son las 19:55:16. |
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