Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

No, no hay ningún problema para usar consultas con parámetros sobre vistas en Interbase. ¿ Porqué no pones aquí la consulta que te da problemas ?, también podrias poner el código con el que asignas valor a los parámetros y abres la vista.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #2  
Antiguo 07-04-2004
Edu Rod Edu Rod is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 13
Poder: 0
Edu Rod Va por buen camino
Ok aqui el codigo

Primero se graba la factura y en el after post va lo siguiente.

procedure TfrmContado.qryContadoAfterPost(DataSet: TDataSet);
begin
inherited;
DM.DB.ApplyUpdates([qryContado]);
z := qryContadoIDCLIENTE.AsInteger;
y := qryContadoIDAUTO.AsInteger;
end;

Despues al momento de imprimir hago lo siguiente

procedure TfrmContado.btnImprimirClick(Sender: TObject);
begin
inherited;
if (Application.MessageBox('Desea Imprimir el Contrato?', 'Confirmar', MB_YESNO) = IDYES) then
begin
frmreportes := Tfrmreportes.Create(self);
qryContado.Close; // este query se conecta a la tabla ventas//
qryContado.Open;

***este es otro query (aunque llamado igualque esta en la forma de reportes) el cual se conecta a la vista******

frmReportes.qryContado.ParamByName('idcliente').AsInteger := z;
frmReportes.qryContado.ParamByName('idauto').AsInteger := y;
frmReportes.qryContado.Open;
frmreportes.repContado1.Print;
frmreportes.repContado2.Print;
frmreportes.repContado3.Print;
end;
end;

el query de la vista en la sentencia sql tiene:
select * from VW_Contado where idcliente =:z and idauto =:y

el query de la tabla en la sentencia sql tiene:
select * from ventas


Gracias por la ayuda
__________________
Gracias a Todos Por su ayuda..
"Hoy por mi mañana por ti"
Responder Con Cita
  #3  
Antiguo 07-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Hola.

Prieba a poner un frmReportes.qryContado.Close, antes de la asignación de los parámetros, no sea que ya estuviese abierto.

Aunque no debería haber problemas, no me gusta demasiado utilizar variables globales, a menos que sean estrictamente necesarias. En lugar de usarl las variables z e y ¿ no puedes asignar directamente qryContadoIDCLIENTE.AsInteger al parámetro ?, o es que ¿ qryContado va a apuntar a un registro distinto ?. En cualquier caso, asegúrate de poner un punto de interrupción en el momento de asignar los parámetros, y comprueba que z e y contienen los valores que esperas.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #4  
Antiguo 07-04-2004
Edu Rod Edu Rod is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 13
Poder: 0
Edu Rod Va por buen camino
Modificaciones

Hola y gracias por tu ayuda guillotmarc, de hecho a mi tampoco me gustan las variables y ya tenia el proyecto asignando los valores del query pero en la busqueda de una solucion improvise lo de las variables ahora son locales y con las modificaciones q me diste lo deje de la siguiente manera:

frmreportes := Tfrmreportes.Create(self);
qryContado.Close;
qryContado.Open;
frmReportes.qryContado.Close;
z:=qryContadoIDCLIENTE.AsInteger;
y:=qryContadoIDAUTO.AsInteger;
frmReportes.qryContado.ParamByName('idcliente').AsInteger := z;
frmReportes.qryContado.ParamByName('idauto').AsInteger := y;
frmReportes.qryContado.Open;
frmreportes.repContado1.Print;

Si viene con los valores que espero, y dichos valores estan registrados el error que me da es el siguiente 'qrycontado arameter 'idcliente' not found
__________________
Gracias a Todos Por su ayuda..
"Hoy por mi mañana por ti"
Responder Con Cita
  #5  
Antiguo 07-04-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 24
guillotmarc Va por buen camino
Que curioso que antes no te diera este error.

Entra en la colección Parameters en las propiedades del qryContado en frmReportes, y verifica que tengas idcliente y idauto, y que ambas sean de tipo integer.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #6  
Antiguo 07-04-2004
Edu Rod Edu Rod is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 13
Poder: 0
Edu Rod Va por buen camino
Vistas

Este error lo he tenido siempre, es por eso que no puedo avanzar...el tipo de dato si esta entero en los dos parametros, lo que no tengo es el param type, ahi no se si se ponga algo o no....

Gracias
__________________
Gracias a Todos Por su ayuda..
"Hoy por mi mañana por ti"
Responder Con Cita
  #7  
Antiguo 14-04-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por Edu Rod
....
el query de la vista en la sentencia sql tiene:
select * from VW_Contado where idcliente =:z and idauto =:y

....
frmReportes.qryContado.ParamByName('idcliente').AsInteger := z;
frmReportes.qryContado.ParamByName('idauto').AsInteger := y;
....
He cambiado el orden para que tenga sentido... pero es que los parámetros no se llaman "idcliente" e "idauto"... se llaman z e y!!!!

de tal manera que debieras hacer:

frmReportes.qryContado.ParamByName('z').AsInteger := z;
frmReportes.qryContado.ParamByName('y').AsInteger := y;

Además, te recomiendo que aprendas a utilizar la etiqueta code para indentar trozos de código, que son mucho mas legibles de esta forma.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #8  
Antiguo 14-04-2004
Edu Rod Edu Rod is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mexico
Posts: 13
Poder: 0
Edu Rod Va por buen camino
Gracias

Código:
    alert("select * from vw_credito where idcliente =:z and idauto =:y");
    alert("Espero asi se utilice esta etiqueta");
Si me funciono era cosa de los parametros como tu me decias, me salvaste de una y espero publicar bien la etiqueta, Gracias Amigo..
__________________
Gracias a Todos Por su ayuda..
"Hoy por mi mañana por ti"
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


La franja horaria es GMT +2. Ahora son las 18:22:08.


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
Copyright 1996-2007 Club Delphi