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 05-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Actualizar tabla usando procedimiento almacenado

Hola a todos. Trabajo con Delphi 7 y Sql Server 2000. Utilizo para conectarme a la base de datos sql server los componentes de la paleta ADO. Tengo el siguiente problema: he diseñado tres procedimientos almacenados con la finalidad de actualizar un campo de una de las tablas de la base de datos con la cual trabajo. Los procedimientos almacenados tienen el siguiente código:
Código SQL [-]
CREATE PROCEDURE spDebitarCheque 
 (@IdCheque int,
              @FechaDebito datetime)
  
AS UPDATE [Cheque].[dbo].[Cheques] 
SET   [FechaDebito]  = @FechaDebito
WHERE IdCheque =@IdCheque
GO
El segundo tiene el siguiente código
Código SQL [-]
CREATE PROCEDURE [sp_Debitar_Cheques]
 (@FechaEmision datetime,
              @FechaDebito datetime)
  
AS UPDATE [Cheque].[dbo].[Cheques] 
SET   [FechaDebito]  = @FechaDebito
WHERE FechaEmision =@FechaEmision
GO
El tercero tiene el siguiente código:
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

Que persigo con esto, actualizar en dependencia de varios criterios el campo FechaDebito de la tabla cheques. He probado cada uno de estos procedimientos almacenados en sql server y funcionan a la perfección.
Ahora cuando voy a delphi y trato de que esto funcione vienen los problemas.
Tengo un formulario con los siguientes componentes. Un radiogroupbox con las siguientes opciones Debitar un cheque, Debitar varios cheques y Debitar por rango de fechas. Además tengo un Panel, dos Groupbox. En el Panel tengo colocado un edit para poner el número del cheque que se quiere debitar, en uno de los groupbox tengo dos datetimepicker para establecer el rango de fecha para los cheques a los cuales se quiere actualizar su FechaDebito. En el evento onclick del radiogroupbox puse lo siguiente:
Código Delphi [-]
begin
 with RGDebitarCheques do
 begin
   CriteriodeSeleccion.Caption := Format('%S',[Items[ItemIndex]]);
   case ItemIndex of
   0:begin
      Panel1.Visible := True;
      ADOSPDebCheque.Close;
      ADOSPDebCheque.Parameters.ParamByName('@IdCheque').Value := EditNoCheque.Text;
      ADOSPDebCheque.Parameters.ParamByName('@FechaDebito').Value := DTPFechaDebitoPanel.Date;
      ADOSPDebCheque.ExecProc;
     end;
Solamente para probar si funciona la actualización de la tabla con la primera opción pero esto me genera una excepción en la EoleException. Cuando hago click en la primera opción del componente radiogroupbox se levanta dicha Excepción en esa clase que traducida al español me dice que la palicación está usando un valor de tipo incorrecto y se detiene en la línea de código siguiente:
Código Delphi [-]
ADOSPDebCheque.Parameters.ParamByName('@FechaDebito').Value := DTPFechaDebitoPanel.Date;
He revisado cual podría ser la causa de este error pero nada, no doy con ella. Además de eso tengo un adotable en el formulario que muestra los registros de la tabla cheque, y quesiera que cuando se actualizen dicho campo (FechaDebito), este se actaulize y me muestre los resultados. Como se haría esto. Muchas gracias, disculpen lo denso de mi mensaje, pero enso es el código, a lo mejor todo está mal concevido, espero que alguién pueda ayudarme.
Responder Con Cita
  #2  
Antiguo 09-12-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Ok. Tu problema de hecho es muy común para quienes se inicián en SqlServer

Resulta que cuando manejas fechas estás pueden ser manejadas por Sql server de dos maneras diferentes, en formato americano (yyyy-dd-mm) o en formato europeo (yyyy-mm-dd). Esto provoca que si en el equipo donde ejecutas tu aplicación la configuración regional define el formato en dd/mm/yy
y la configuración en tu servidor sql está en mm/dd/yyy, cualquier paso de parámetros en formato datetime va a generar el problema que tu tienes.

La solución que implementamos en la empresa fué estandarizar el uso de los campos DateTime. Por ejemplo establecimos que cualquier sp o función que recibiera como parametros valores de fecha estos fueran convertidos a char con el formato 120, y de manera interna en el Sp o función hacemos la reconversión a formato datetime de Sql.

Lo que ganamos con esto es que sin importar la configuración de los equipos cliente nuestros sps y funciones siempre funcionarán.


Usando tu sp ejemplifico lo que hacemos


Código SQL [-]

/******************************************************/
/* Este procedimiento almacenado establece la fecha de débito de       */
/* un cheque. La fecha debe ser convertida a char en formato 120      */
/******************************************************/
 CREATE 
   PROCEDURE spDebitarCheque 
     (
       @IdCheque int, --Define el Id del Cheque
       @FechaDebito Char(10) --Define la fecha de débito del cheque (formato 120)
     )
 AS 
  Declare
    @VDtFecDebito As DateTime --Almacena en formato DateTime la fecha del débito

  --Con esto aseguras que sin importar la configuración de sql server
  -- o del cliente el valor de fecha será traducido de manera satisfactoria
  Set @VDtFecDebito = Convert(DateTime,@FechaDebito,120)

  --Se inicia la transacción
  Begin tran 
     UPDATE Cheque.dbo.Cheques
        SET FechaDebito = @VDtFecDebito   
      WHERE IdCheque =@IdCheque
     If @@ERROR <> 0 
        Begin
          Rollback Tran
          GoTo ErrorHandler
        End
  Commit Tran

Return

ErrorHandler:
  --Tratamiento del error

ahora bíen desde tus aplicaciones deberas estandarizar de igual manera el paso del valor para que en todas sea de esta manera

Código Delphi [-]
ADOSPDebCheque.Parameters.ParamByName('@FechaDebito').Value := 
  FormatDateTime('yyyy-mm-dd',DTPFechaDebitoPanel.Date);
Y listo con eso te vas a ahorrar un millón de dolores de cabeza.


Mucha suerte

Última edición por poliburro fecha: 09-12-2006 a las 05:09:29.
Responder Con Cita
  #3  
Antiguo 11-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Hola Poliburro, muchas gracias por tu respuesta, se nota que eres una persona aventajada en sql sever. Modifiqué el procedimiento almacenado como me indicaste y logré algo que no sabía. Es decir poner el formato de fecha a día-mes-año, porque sql server por defecto lo pone en mes-día-año, es decir que aprendí algo nuevo. Ahora en cuanto a delphi modifiqué el código segun me sugeriste y nada el mismo error. Tengo mis dudas en cuanto a lo que me dices, pues en mi aplicación he utilizado otros procedimientos almacenados que tienen como parámetros campos del tipo datetime, los cuáles les paso a través de un datetimepicker y nunca me dieron ese tipo de error, la única diferencia es que aquellos devuelven un conjunto de resultados y en este caso estoy tratando de actualizar la base de datos. Yo creía que delphi internamente se encargaba de hacer el cambio. Por ejemplo tengo un formulario donde tengo un dbgrid donde muestro un conjunto de registros que cumplen una determinada condición a través de un procedimiento almacenado, el código es el siguiente:
Código Delphi [-]
begin
ADOSPPendientesPago.Close;
if DTPFecha2.Date  < DTPFecha1.Date  then
begin
 MessageDlg('La fecha final debe ser superior a la inicial',mterror,[mbok],0);
 Exit;
end;
ADOSPPendientesPago.Parameters.ParamByName('@FechaRecepcion').Value := Trunc(DTPFecha1.Date);
ADOSPPendientesPago.Parameters.ParamByName('@FechaRecepcion1').Value := Trunc(DTPFecha2.Date);
ADOSPImporteTotal.Parameters.ParamByName('@Fecha').Value := Trunc(DTPFecha1.Date);
ADOSPImporteTotal.Parameters.ParamByName('@Fecha1').Value := Trunc(DTPFecha2.Date);
ADOSPImporteTotal.ExecProc;
EditImporteTotal.Text := ADOSPImporteTotal.Parameters.ParamValues['@ImporteTotal'];
ADOSPPendientesPago.Open;
end;
Esto me funciona perfectamente bien.
Y el código del procedimiento almacenado que me devuelve el conjunto de registros es este:
Código SQL [-]
CREATE PROCEDURE spPendientesPago 
               @FechaRecepcion datetime,
               @FechaRecepcion1 datetime
                               
AS
              SELECT      Facturas.IdFactura, Proveedores.NombreProveedor, Facturas.Descripcion, Facturas.Importe
              FROM         Facturas INNER JOIN
                     Proveedores ON Facturas.IdProveedor = Proveedores.IdProveedor
WHERE     (Facturas.Aplicada = 0) AND Facturas.FechaRecepcion>=@FechaRecepcion AND Facturas.FechaRecepcion<=@FechaRecepcion1
GO
Por eso te digo que no se donde está el problema. Te reitero la diferencia es que este evuelve un conjunto de resultados y el otro es para actualizar. No se si esa es la causa como tu mismo dijiste soy nuevo en ambas cosas, tanto en sql server como en delphi. El error que se origina te lo pongo textualmente: 'Aplication uses a value of the wrong type for the current operation', cuando le doy ok se detiene en la línea que ya expliqué en el mensaje anterior aún cuando ya hizé el cambi que me sugeriste:ADOSPDebCheque.Parameters.ParamByName('@FechaDebito').Value := FormatDateTime('yyyy-dd-mm',DTPFechaDebitoPanel.Date). Espero puedas ayudarme y hayas entendido mi explicación. Te reitero las gracias.
Responder Con Cita
  #4  
Antiguo 12-12-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Cita:
Empezado por efelix
El error que se origina te lo pongo textualmente: 'Aplication uses a value of the wrong type for the current operation', cuando le doy ok se detiene en la línea que ya expliqué en el mensaje anterior aún cuando ya hizé el cambi que me sugeriste:ADOSPDebCheque.Parameters.ParamByName('@FechaDebito').Value := FormatDateTime('yyyy-dd-mm',DTPFechaDebitoPanel.Date). Espero puedas ayudarme y hayas entendido mi explicación. Te reitero las gracias.

Jjejeje hay un error en la sentencia que estas usando amigo pues debe ser de la siguiente manera

Código Delphi [-]
 With  ADOSPDebCheque.Parameters Do
  ParamByName('@FechaDebito').Value :=    
           FormatDateTime('yyyy-mm-dd',DTPFechaDebitoPanel.Date).

Si observas debe ser yyyy mmm dd

Ahora bien, revisa que en tu sp estes pasando el valor convertido en date time .

No debe presentarte problema.

Cuando usas trunc, en escencia estas haciendo algo parecido al formatdatetime prueba pasandoles el periodo 23/12/2006 al 31/12/2006 a los sps que te devuelven recorsets.

suerte
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #5  
Antiguo 12-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Hola poliburro, disculpa que te moleste, pero todavía sigue dando el mismo error, no se que hacer, cambié lo que me dijiste y nada sigue dando le mismo error. Ahora no te entiendo cuando me dices que chequee si en el stored procedure estoy pasando el valor convertido en datetime, como verifico esto, disculpa mi desconocimiento, espero no importunarte con tanta molestia. Te pongo nuevamente el código para que lo veas:
Código Delphi [-]
begin
 with RGDebitarCheques do
 begin
   CriteriodeSeleccion.Caption := Format('%S',[Items[ItemIndex]]);
   case ItemIndex of
   0:begin
      Panel1.Visible := True;
      ADOSPDebCheque.Close;
      ADOSPDebCheque.Parameters.ParamByName('@IdCheque').Value := EditNoCheque.Text;
      ADOSPDebCheque.Parameters.ParamByName('@VDtFechaDebito').Value := FormatDateTime('yyyy-mmm-dd',DTPFechaDebitoPanel.Date);
      ADOSPDebCheque.ExecProc;
     end;
Responder Con Cita
  #6  
Antiguo 13-12-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Podrias postear el nuevo código del sp que te está dando problemas? para ver si es ahí el error.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #7  
Antiguo 13-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
efelix Va por buen camino
Hola poliburro. Este es el código del procedimiento almacenado:
Código SQL [-]
CREATE PROCEDURE spDebitarCheque 
  (@IdCheque int,
              @FechaDebito char(10))
   

AS DECLARE 
     @VDtFechaDebito AS DateTime
    SET @VDtFechaDebito = CONVERT(DateTime,@FechaDebito,120)

BEGIN TRAN
 UPDATE [Cheque].[dbo].[Cheques] 
 SET    [FechaDebito]   = @VDtFechaDebito
WHERE IdCheque =@IdCheque
 IF @@ERROR <>0
    BEGIN
       RollBack Tran
       Goto ErrorHandler
 END
Commit Tran
Return 
ErrorHandler:
GO
Te reitero que cuando lo ejecuto en Sql Server funciona perfectamente bien.
Responder Con Cita
  #8  
Antiguo 13-12-2006
Avatar de Albano
Albano Albano is offline
Miembro
 
Registrado: oct 2004
Ubicación: Nogales, Sonora, Mexico
Posts: 422
Poder: 20
Albano Va por buen camino
humilde opinion

Hola... apenas estoy empezando con el tema que estan tocando, así que no creo poder ayudar. Pero vi un error en el código que podría ser lo que causa el problema: Estan poniendo "mmm" en lugar de "mm"...
Tal vez quede como tonto por no saber nada del tema, pero tal vez les ayude... me arriesgaré.
__________________
"Sé de tal manera y vive una vida tal, que si todos los hombres fueran como tú y vivieran como tú, nuestro mundo sería un paraíso terrenal"
Siempre hazlo con la ayuda de Dios
Responder Con Cita
  #9  
Antiguo 13-12-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
Presiento que el problema está en los valores de los parámetros. por que el código del Sp es correcto, bueno te falta el tratamiento de errores pero eso lo puedes omitir de momento.

Por que no lanzas un showmessage en delphi mostrando los valores del editbox que estas pasando como id de cheque, y el resultado del formatdatetime que estás pasando como fecha de debito?

creo que está pasando mal uno de los valores. y de esa manera podrias darte cuenta.
__________________
Conoce mi blog http://www.edgartec.com
Responder Con Cita
  #10  
Antiguo 13-12-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
No era mas sencillo para brincarse el detalle de las tablas hacer esto:

Código:
ADOSPDebCheque.Parameters.ParamByName('@FechaDebito').AsDateTime := DTPFechaDebitoPanel.Date;
Y asi delphi acomoda la fecha como la espera el gestor de DB, a mi me paso igual que al compañero y la forma mas sencilla fue hacerlo así. De esta forma no importa como este definido el formato de fechas siempre se guarda correctamente.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #11  
Antiguo 14-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
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
  #12  
Antiguo 14-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
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
  #13  
Antiguo 14-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
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
  #14  
Antiguo 14-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
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
  #15  
Antiguo 14-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
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
  #16  
Antiguo 15-12-2006
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
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
  #17  
Antiguo 18-12-2006
efelix efelix is offline
Miembro
 
Registrado: jul 2006
Posts: 84
Poder: 18
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



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 17:43:11.


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