Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 21
efelix Va por buen camino
Hola Poliburro, me di cuenta donde estaba el error cuando probé con la otra opción que tengo en el radiogroup. E el radiogroup tengo una segunda opción que en la que trato de actualizar la fecha de debito de la tabla cheques para todos aquellos cheques que hayan sido emitidos según el rango de fechas que establezco en el procedimiento almacenado de la siguiente forma:
Código SQL [-]
CREATE PROCEDURE spDebitarRango 
             (@FechaEmision datetime,
              @FechaEmision1 datetime,
              @FechaDebito datetime)
   

AS UPDATE [Cheque].[dbo].[Cheques] 

SET    [FechaDebito]   = @FechaDebito

WHERE (FechaEmision >=@FechaEmision AND FechaEmision <=@FechaEmision1)
GO
En el evento onclick del control radiogroup para esta opción pusé lo siguiente:
Código Delphi [-]
 case ItemIndex of
   0:begin
       GBRangoFechas.Visible := True;
       ADOSPDebRango.Close;
       ADOSPDebRango.Parameters.ParamByName('@FechaEmision').Value := Trunc(DTPFecha1.Date);
       ADOSPDebRango.Parameters.ParamByName('@FechaEmision').Value := Trunc(DTPFecha2.Date);
       ADOSPDebRango.Parameters.ParamByName('@FechaEmision').Value := Trunc(DTPFechaDebito.Date);
       ADOSPDebRango.ExecProc;       
     end;
Ahora cuando ejecuto la aplicación esto no me da ningún error, pero no hace absolutamente nada, es decir, no actualiza el campo de fechadebito de la tabla Cueques. El procedimiento alamacenado funciona a la perfección en sql server. No se que falta aquí, no se si después del método execproc va algo mas para que esto pueda funcionar o la lógica en mi caso está mal empleada. Puesto que los DateTimePicker que los uso para pasarle los parámetros al procedimiento almacenado ya tienen valores por defecto. La realidad es que no se que debo hacer para que esto funcione. Ojala pudas ayudarme. Muchas gracias a todos los que han aportado su granito de arena en este tema.
Responder Con Cita
  #2  
Antiguo 14-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
En este último caso, solo actualizas el parámetro 'FechaEmision', y en el procedimiento tienes tresparametros diferentes.
FechaEmisión, FechaEmision1 y otro más diferentes.

Espero haberte aclarado algo.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #3  
Antiguo 14-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 21
efelix Va por buen camino
Hola nuevamente fjcg02, gracias pero no te entiendo, pudieras explicarme más. Es cierto tengo tres parámetros en el procedimiento almacenado @FechaEmision, @FechaEmision1 y @FechaDebito. Deja ver si entiendo bien, lo que quieres decirme es que según el código escrito en delphi solamente estoy actualizando el parámetro @FechaEmision, no entiendo si te fijas en el códido sql del procedimiento almacenado verás que el update es para @FechaDebito. Disculpame, pero explícame mejor se por otras ocasiones que eres aventajado en este tema. Gracias. Cómo está la cria?.
Responder Con Cita
  #4  
Antiguo 14-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Cita:
Empezado por efelix
Hola nuevamente fjcg02, gracias pero no te entiendo, pudieras explicarme más. Es cierto tengo tres parámetros en el procedimiento almacenado @FechaEmision, @FechaEmision1 y @FechaDebito. Deja ver si entiendo bien, lo que quieres decirme es que según el código escrito en delphi solamente estoy actualizando el parámetro @FechaEmision, no entiendo si te fijas en el códido sql del procedimiento almacenado verás que el update es para @FechaDebito. Disculpame, pero explícame mejor se por otras ocasiones que eres aventajado en este tema. Gracias. Cómo está la cria?.
Exactamente, en el código delphi sólo das valor al parámetro Fechaemision.

Tendrás que dar valor a los tres parámetros.

Lo tienes escrito en el propio post, en el código delphi. Entiendo que habrás copiado la sentencia y sólo has cambiado el valor de la derecha del '=' , te falta la parte de la izquierda.

Por cierto, la niña bien, mejor que tú y que yo .

Sabes qué es lo que más le calma ? ponerla conmigo en el ordenador , sobre todo visitando Club Delphi !!

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #5  
Antiguo 14-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 21
efelix Va por buen camino
Es cierto me di cuenta ahora cuando me lo dijiste, el problema es que para ahorrar tiempo copié y pegué y solamente cambié la parte derecha y no la izquierda, estoy como el pescado en nevera. Ahora esto funciona pero de manera parcial. Te explico lo siguiente. Tengo tres controles DateTimePicker uno para el primer parámetro, otro para el segundo y así sucesivamente, además tengo u dbgrid donde muestro todos los registros de la tabla Cheques. En el procedimiento almacenado actualizo el campo de FechaDebito de la dicha tabla para aquellos cheques cuyo campo FechaEmision se encuentra dentro del rango que establezco. Si te fijas en el evento onclick del radiogroup he puesto lo siguiente:
Código Delphi [-]
case ItemIndex of
   0:begin
       GBRangoFechas.Visible := True;
       ADOSPDebRango.Close;
       ADOSPDebRango.Parameters.ParamByName('@FechaEmision').Value := Trunc(DTPFecha1.Date);
       ADOSPDebRango.Parameters.ParamByName('@FechaEmision1').Value := Trunc(DTPFecha2.Date);
       ADOSPDebRango.Parameters.ParamByName('@FechaDebito').Value := Trunc(DTPFechaDebito.Date);
       ADOSPDebRango.ExecProc;
       ADOTableCheque.Edit;
       ADOTableCheque.FieldByName('FechaDebito').Value :=Trunc(DTPFechaDebito.Date);
     end;
Que sucede con esto que cuando ejecuto la aplicación los controles datatimepicker por defecto tienen una fecha que por lo general es la fecha actual. Por ejemplo el campo FechaEmision de la tabla cheque tiene 9 valores que van desde el 19/07/2006 hasta 12/10/2006, supongo que deseo ponerle la misma fecha de debito a los cheques que fueron emitidos entre el 19/07/2006 y el 11/10/2006. Cómo hago esto?. Pues traté poniendo en tiempo de de diseño valores por defecto a los DatetimePicker para probar y me pasó lo siguiente. Pusé al primero la fecha del 19/07/2006, al segundo 11/10/2006 y al que es donde pongo el valor del campo a actualizar le pusé 13/12/2006, esto me da como resultado que al hacer click en la primera opción del radiogroup solamente me actualiza la fecha de debito del registro actual, y luego la quita, cuando voy a la base de datos y veo los registros de la tabla cheque el campo de fechadebito de todos los registros se actualiza con el valor del datetimepicker asociado a dicho parámetro incluído un cheque cuya fechadebito no está comprendida en ese rango que he puesto para hacer la prueba. Cómo resuelvo esto?. Disculpáme si te molesto. Gracias.
Responder Con Cita
  #6  
Antiguo 15-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Veo que después de ejecutar la procedure editas un registro ¿? y le das un valor a un campo ¿?. Según lo que explicas eso sobraría.
Lo que sí puedes hacer es refrescar el origen de los datos del dbgrid para comprobar que las actualizaciones se han realizado correctamente. Siempre y cuando ese dbgrid esté asociado a la query/tabla y muestre los registros afectados, es decir, no tenga ningún filtro o filtre por los valores que actualizas.
Con los datos que das, más no puedo hacer.

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #7  
Antiguo 18-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 21
efelix Va por buen camino
Hola fjcg02, hermano muchas gracias por tus sugerencias. Las mismas me han servido de gran ayuda. Solucione el problema gracias a tu valiosa cooperación. De todas formas aún no he terminado el proyecto y espero pode seguir contando contigo al igual que con todos los demás que me han ayudado. Saludáme a tu niño o niña, no se el sexo. Suerte.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Se puede pasar una tabla a un procedimiento almacenado? AFilth MS SQL Server 2 07-02-2006 13:10:21
Procedimiento Almacenado scooterjgm Conexión con bases de datos 5 18-01-2005 18:21:32
Procedimiento almacenado y Ado LucianoRey MS SQL Server 11 06-07-2004 22:55:23
actualizar con dbexpres y un procedimiento almacenado felixgo Conexión con bases de datos 1 22-06-2004 12:21:17
Procedimiento Almacenado Ulises Providers 3 30-01-2004 18:14:58


La franja horaria es GMT +2. Ahora son las 23:49:38.


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