PDA

Ver la Versión Completa : relacionar combos


wesito
24-10-2007, 23:51:37
Hola a todos, tengo dos tablas una departamento y ciudad, cuya clave primaria es el codigo departamento y el de la ciudad. Necesito saber como hacer para que en la lista o combo de ciudades puedan aparecer las relacionadas con el departamento elejido. No sé como pasar el keyvalue del departamento a la sentencia SQL, que busca las ciudades. Gracias.

jhonny
25-10-2007, 00:01:57
En el OnChange o el OnClick (Dependiendo si estas usando un TComboBox o un TDBLookupComboBox) del listado envias el parametro al query de la ciudades, asi:


QueryCiudad.ParamByName('Cod_DPTO').AsString := QueryDeptoCod_DPTO.AsString;


Claro, todo eso suponiendo que en la tabla ciudades tienes el codigo del departamento al que pertenece y que el query de ciudades es algo como


select cod_ciudad, descripcion from ciudades where cod_depto=:coddepto;


Espero te sirva ;).

wesito
25-10-2007, 00:38:24
QueryCiudad.ParamByName('Cod_DPTO').AsString := QueryDeptoCod_DPTO.AsString;tira error en parambyname, asstring, etc.

jhonny
25-10-2007, 15:08:13
QueryCiudad.ParamByName('Cod_DPTO').AsString := QueryDeptoCod_DPTO.AsString;tira error en parambyname, asstring, etc.

Estoy seguro que eso funciona ;), pero deberas adapatarlo a tu aplicación dependiendo del nombre de tus parametros, querys y demas... recuerda que debes configurar los parametros desde el editor de parametros del dataset indicandole el tipo en su propiedad DataType. De todas formas es bueno que nos muestres el error que te ha salido, seguramente allí este la respuesta.

enecumene
25-10-2007, 16:19:00
Disculpame amigo jhonny estoy algo confundido, no deberia ser con Value en vez de asstring? se puede eso?.

QueryCiudad.ParamByName('Cod_DPTO').Value := QueryDeptoCod_DPTO.AsString;

Saludos.

jhonny
25-10-2007, 16:56:46
Disculpame amigo jhonny estoy algo confundido, no deberia ser con Value en vez de asstring? se puede eso?.



Saludos.

Si claro, tambien puedes usar Value, lo que sucede es que acostumbro a usar el tipo correspondiente (String, Integer, Double y demas) ya que el Value es de tipo Variant por lo que ocupara un poco mas de memoria, ya que este tendra que determinar al final de que tipo es el dato que necesita evaluar. Pero si en ultima instancia no se que tipo de dato tiene ese TField pues usaria Value ;).

wesito
25-10-2007, 16:57:41
Voy a volver a probar y aviso cuales son los errores, si es que los tira. Gracias

enecumene
25-10-2007, 16:58:45
Gracias Jhonny, no estaba muy claro con esa parte, pero ya se ma aclaro gracias de nuevo.

Saludos.