Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
Question Problema con Consulta

quien me pude ayudar y decirme que hay mal en este codigo

Código Delphi [-]
var id_mes:Integer;
begin
  with DataModule4.Query1 do
      begin
       close;
       SQL.Clear;
       SQL.Add('Select (id_mes) from mes where descmes='+ QuotedStr(suiDBLookupComboBox2.Text));
       Open;
       id_mes:=FieldByName('id_mes').AsInteger;
      end;
  With DataModule4.Query4 do
   begin
    Close;
    SQL.Clear;
    SQL.Add('Select cultivos.desccultv,plsiembra.plsiembra from cultivos,plsiembra where plsiembra.pid_mes=:mes');
    ParamByName('mes').AsInteger:=id_mes;
    Open;
   end;

cunado lo compilo me dice que faltan parametros
Responder Con Cita
  #2  
Antiguo 01-11-2011
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 17
microbiano Va por buen camino
haber si te funciona

y que error te manda o que parametro te marca que no esta definido?

en que linea?

creo que el error esta en:
Código Delphi [-]
With DataModule4.Query4 do
   begin
    Close;
    SQL.Clear;
    SQL.Add('Select cultivos.desccultv,plsiembra.plsiembra from cultivos,plsiembra where plsiembra.pid_mes=:mes');
    parameters.ParamByName('mes').AsInteger:=id_mes;
    Open;
   end;

Última edición por microbiano fecha: 01-11-2011 a las 21:25:23. Razón: modificaciones
Responder Con Cita
  #3  
Antiguo 01-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
Thumbs up ok

microbiano:

Gracias, pero no es error en el codigo porque lo borre y lo volvi a escribir y ahora me funciona parece que es algun problema con el Delphi, tengo que reintalar. Muchas Gracias de Todas formas.
Responder Con Cita
  #4  
Antiguo 01-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
Question Help con DBGrid

Hola soy yo otra ves con otro problem,

my problem es que cuando ejecuto un consulta de seleccion y la muestro en un DBGrid, me muestra repetido eje

tengo tres tablas relacionadas Mes(id_mes,descmes), Planventa(id_plventa,id_mes,id_concventa,plventa,), Conceptoventa(id_concventa,concventa).
cuando seleciono mes me debe mostrar en el DBGrid los concepto venta (concventa) con los Planes que le corresponde de la tabla Planventa, me lo muestra pero repetidos aunue en la base dato esta bien (no esta doble),

este es el codigo que utilizo
Código Delphi [-]
var 
  id_mes:Integer; 
begin
   with DataModule4.Query1 do
     begin
      close;
      SQL.Clear;
      SQL.Add('Select (id_mes) from mes where descmes=:mes');
      ParamByName('mes').AsString:=suiDBLookupComboBox2.Text;
      Open;
      id_mes:=FieldByName('id_mes').AsInteger;
    end;
   with datamodule4.Query4 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select Conceptoventa.concventa,Planventa.plventa from Conceptoventa,Planventa where Planventa.id_mes=:mes');
      ParamByName('mes').AsInteger:=id_mes;
      Open;
    end;
    suiDBGrid1.Refresh;
end;
Please Help,

Última edición por ecfisa fecha: 01-11-2011 a las 22:37:40. Razón: ETIQUETAS [DELPHI] [/DELPHI]
Responder Con Cita
  #5  
Antiguo 01-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Salnhack.

Por favor si tu consulta se refiere a la misma situación no abras un nuevo hilo con ella. Tal como dice el punto 6 de la Guía de estilo:
Cita:
Nadie me contesta

Si te encuentras en esta situación, te aconsejaría que en vez de abrir otro tema, con lo que podría perderse información previa sobre el tema que expusiste en un principio, siguieses el tema que tu mismo iniciaste en su día, escribiendo una nueva contestación. De esta manera el tema se actualizará y pasará a la cabecera del foro, y se marcará como no leido para el resto de usuarios. Así evitamos duplicar información innecesariamente.

Otro motivo por el que es posible que no te hayan contestado es porque puedes haberte explicado mal. Sería conveniente en este caso que trataras de ampliar la información que has escrito en el primer mensaje de tu tema. Así podrías ayudar al resto de usuarios a que respondan más claramente.
Un saludo y gracias por tu colaboración.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 01-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Salnhack.

No he echo la prueba, pero creo que se podría resumir a una sola consulta, más o menos así:
Código Delphi [-]
...
  with DataModule4 do
  begin
    Query1.Close;
    Query1.SQL.Clear;
    Query1.Add('SELECT Conceptoventa.concventa, Planventa.plventa');
    Query1.Add('FROM Conceptoventa, Plantaventa, mes');
    Query1.Add('WHERE mes.descmes = :FOUND');
    Query1.Add('AND Plantaventa.id = mes.descmes');
    Query1.ParamByName('FOUND').AsString:= suiDBLookupComboBox2.Text;
    Query1.Open;
  end;
...

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 02-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
ok

Hola ecfisa

He revizado el codigo que me sugeriste pero el temas es que las tablas mes y Planventa estan relacionadas 1:M, por los campos id_mes(llave primaria tabla mes) y id_mes(tabla Planventa) los campos son de tipo numero, en el combobox yo visualizo la descripcion del mes (descmes:texto) y hago una consulta para almacenar en una variable el id del mes selecionado para luego utilizarla a la hora de hacer la consulta de seleccion y despues visualizarla en el dbgrid el plan del mes correpondiente, si hay otra forma de hacerlo que sea mejor y proporciona mas robustez a la aplicacion y agilidad por favor decirme me serviria de mucho, soy algo nuevo en el trabajo con las base de dato en delphi y no conosco todas las funcionalidades del trabajo con las mismas,
Ademas con el codigo me trabaja casi bien pero a la hora de visualizar los datos de la consulta en el dbgrid se me duplican ejemplo

tengo por concepto de venta los siguiente

Venta de Software
Mantenimiento de Software
Mantenimiento de PC

cuando el dbgrid me visualiza la consulta del mes de enero
me da

Concepto de Venta Plan
Venta de Software 10
Mantenimiento de Software 10
Mantenimiento de PC 10

y en la base dato

solo tengo

Venta de Software 10

y he probado y me repite por cada concepto de venta el plan, aunque no le corresponda;


Muchas Gracias,
Responder Con Cita
  #8  
Antiguo 02-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola SalnHack.

Creo que está duplicando el resultado por una omisión mía. Por favor probá de este modo:
Código Delphi [-]
 with DataModule4 do
  begin
    Query1.Close;
    Query1.SQL.Clear;
    Query1.Add('SELECT DISTINCT CONCEPTOVENTA.CONCVENTA, PLANVENTA.PLVENTA');
    Query1.Add('FROM CONCEPTOVENTA, PLANVENTA, MES');
    Query1.Add('WHERE MES.DESCMES = :FOUND');
    Query1.Add('AND PANVENTA.ID = MES.DESCMES');
    Query1.ParamByName('FOUND').AsString:= suiDBLookupComboBox2.Text;
    Query1.Open;
  end;

Un saludo y disculpas.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 02-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
ok

ecfisa:

volvi a verificar tu codigo pero me da un error en la consulta pues al igualar los campos en la condicion

Query1.Add('AND PLANVENTA.ID = MES.DESCMES');


Estos no son del mismo tipo

Planventa.Id_mes es de tipo numero

y
MES.DESCMES es de tipo texto
Responder Con Cita
  #10  
Antiguo 02-11-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 37
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.
Cita:
mes y Planventa estan relacionadas 1:M, por los campos id_mes(llave primaria tabla mes) y id_mes(tabla Planventa) los campos son de tipo numero
Y mirá que me lo aclaraste bién en el ultimo mensaje...
Código Delphi [-]
with DataModule4 do
  begin
    Query1.Close;
    Query1.SQL.Clear;
    Query1.Add('SELECT DISTINCT CONCEPTOVENTA.CONCVENTA, PLANVENTA.PLVENTA');
    Query1.Add('FROM CONCEPTOVENTA, PLANVENTA, MES');
    Query1.Add('WHERE MES.DESCMES = :FOUND');
    Query1.Add('AND PLANVENTA.ID = MES.ID_MES');
    Query1.ParamByName('FOUND').AsString:= suiDBLookupComboBox2.Text;
    Query1.Open;
  end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #11  
Antiguo 02-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.013
Poder: 21
oscarac Va por buen camino
y de donde sacas conceptoventa?
mejor dicho como lo estas relacionando? con quien?

no sera por eso que te estan saliendo duplicados?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #12  
Antiguo 02-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
Unhappy

Hola oscarac

en cuanto a tu pregunta el concepto de venta esta en una tabla aparte relacionada con la tabla plan venta

a ver si me explico el problema con el dbgrip, en la base de dato en la tabla de planventa
esta lo siguiente

en el campo
id_concventa 79 // Corresponde al id del concepto de venta Venta de Software
id_mes 112 // Corresponde al id del mes Enero
plventa 150 // plan de venta

cuando lo visualizo en el dbgrid

me sale todos los conseptos de venta con el mismo plan cuando en realidad en la tabla plan solo existe uno el de venta de software

concepto de venta
Venta de Software 150
Mantenimiento 150
...
Responder Con Cita
  #13  
Antiguo 02-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.013
Poder: 21
oscarac Va por buen camino
Cita:
Empezado por Salnhack Ver Mensaje
Hola oscarac

en cuanto a tu pregunta el concepto de venta esta en una tabla aparte relacionada con la tabla plan venta

a ver si me explico el problema con el dbgrip, en la base de dato en la tabla de planventa
esta lo siguiente

en el campo
id_concventa 79 // Corresponde al id del concepto de venta Venta de Software
id_mes 112 // Corresponde al id del mes Enero
plventa 150 // plan de venta

cuando lo visualizo en el dbgrid

me sale todos los conseptos de venta con el mismo plan cuando en realidad en la tabla plan solo existe uno el de venta de software

concepto de venta
Venta de Software 150
Mantenimiento 150
...
no entendi

puedes colocar ejemplos de como estan los datos?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #14  
Antiguo 02-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
Unhappy

oscarac

tengo tres tablas

tabla_mes // Tiene tres campos con los siguientes datos

id_mes descmes id_years
112-----enero-------10
113-----Febrero----10

tabla_Conceptoventa

id_concventa concventa
79-----------Venta de Software
80-----------Mantenimiento

tabla_Planventa

id_plventa plventa id_mes id_concventa
40---------150.00-----112---------79



cuando cargo mi consulta en el query que esta vinculado al dbgrid

me mustro los siguiente

concepto de venta-------plan
Venta de Software------150.00
Mantenimiento ----------150.00

-Si tuviera definidos mas conceptos de venta me mostraria todos los concepto con el plan de Venta de software

Espero que me entiendan y me puedan ayudar que ya tengo la cabeza echando humo me voy a fundir jajaaj

Espero que esto les ayude a ayudarme

Última edición por Salnhack fecha: 02-11-2011 a las 16:39:35.
Responder Con Cita
  #15  
Antiguo 02-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.013
Poder: 21
oscarac Va por buen camino
ok
y el problema cual es?

segun veo en la tabla de meses tambien especificas el año...
no sera que tienes mas meses de otros años y por eso te salen repetidos?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #16  
Antiguo 02-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
Unhappy

a ver cuando muestro el resultado de la consulta

me pone lo siguiente

ejemplo

tengo en la tabla plan los siguientes planes

id_plventa plventa id_mes id_concventa
40---------150.00-----112---------79 // plan del mes de enero de venta der software plan 150
41---------160.00-----112---------80 // plan del mes de enero de Mantenimiento plan 160

en el dbgrid me deve mostrar

conceto de venta----------Plan
Venta de Software -------150
Mantenimiento -----------160


pero me muestra lo siguiente


conceto de venta----------Plan

Venta de Software -------150
Venta de Software -------160
Mantenimiento -----------150
Mantenimiento -----------160

me repite todos los coscepto por cada plan aunque no le corresponda

la cosulta es la siguiente que utilizo es la siguiente

Código Delphi [-]
var 
  id_mes:Integer; //variable que almacenara id del mes selecionado
begin
 //seleciono el mes y se lo asigno a la variable
   with DataModule4.Query1 do
     begin
      close;
      SQL.Clear;
      SQL.Add('Select (id_mes) from mes where descmes=:mes');
      ParamByName('mes').AsString:=suiDBLookupComboBox2.Text;
      Open;
      id_mes:=FieldByName('id_mes').AsInteger;
    end;
// cargo la cosulta en el query vinculado al dbgris pasando como condicion la variable que me representa el mes
   with datamodule4.Query4 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select Conceptoventa.concventa,Planventa.plventa from Conceptoventa,Planventa where Planventa.id_mes=:mes');
      ParamByName('mes').AsInteger:=id_mes;
      Open;
    end;
   
end;
Responder Con Cita
  #17  
Antiguo 02-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.013
Poder: 21
oscarac Va por buen camino
no se si me estoy equivocando pero en la tabla de mes.... figura el año tambien?
puedo pensar que tu tabla de mes tiene datos duplicados por años y no lo estas considerando
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #18  
Antiguo 02-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
ya he revizado lo del año pero no tiene nada que ver porque el plan esta relacionado por el id del mes que unico pienso mas vien que el problema esta relacionado con esta consulta

Código Delphi [-]
   with datamodule4.Query4 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Select Conceptoventa.concventa,Planventa.plventa from Conceptoventa,Planventa where Planventa.id_mes=:mes');
      ParamByName('mes').AsInteger:=id_mes;
      Open;
    end;

si hay otra manera de hacerla por favor ayudarme
Responder Con Cita
  #19  
Antiguo 02-11-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.013
Poder: 21
oscarac Va por buen camino
y el Id del mes no se repite por año?

me parece que debes mejorar la consulta

Código SQL [-]
Select Conceptoventa.concventa, Planventa.plventa 
from Conceptoventa
Left Join Planventa on .... aqui especificar el campo en comun
where Planventa.id_mes=:mes
__________________
Dulce Regalo que Satanas manda para mi.....

Última edición por oscarac fecha: 02-11-2011 a las 18:25:02.
Responder Con Cita
  #20  
Antiguo 02-11-2011
Salnhack Salnhack is offline
Miembro
NULL
 
Registrado: oct 2011
Ubicación: Cuba
Posts: 71
Poder: 14
Salnhack Va por buen camino
en cuanto a tu pregunta no, el que se repite es el id del año por meses

estoy probando la consulta en cuanto la pruebe aviso
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema con consulta look Firebird e Interbase 1 24-06-2011 17:05:01
problema con una consulta leofuentes21 SQL 6 28-02-2011 16:04:27
problema con consulta cyber_zero SQL 1 26-06-2008 16:57:40
problema con consulta ddd_ddd SQL 2 01-02-2007 17:02:53
problema con consulta. jsanchez SQL 2 20-05-2003 19:35:55


La franja horaria es GMT +2. Ahora son las 04:54:50.


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