Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-08-2013
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Estimado

Revisa este link http://www.clubdelphi.com/foros/showthread.php?t=68351, tal vez ahí este la solución a tu problema.

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #2  
Antiguo 08-08-2013
gcaffe gcaffe is offline
Miembro
 
Registrado: oct 2004
Posts: 53
Poder: 20
gcaffe Va por buen camino
Gracias Alejando73:

El caso es que si yo preparo la sentencia SQL no tengo problemas en grabar, lo hace bien, porque en la sentencia puedo modificar el valor que envía al campo Date poniendo 'yyyymmdd'.
El problema surge cuando desde la grilla se envía a grabar, ya sea con el botón nbPost del componente TDbNavegator o porque pasa al siguiente registro.
En ese caso lo que ocurre es que en DBExpress genera automáticamente la sentencia SQL dejando la fecha en formato dd/mm/aaaa, lo que produce el error.
Necesito interceptar esa sentencia generada automáticamente por el dbExpress para modificarla, o sea modificar el datapacket.

Si alguien sabe como hacerlo les agradeceré una mano.

Muchas gracias.
Responder Con Cita
  #3  
Antiguo 08-08-2013
Alejandro73 Alejandro73 is offline
Miembro
 
Registrado: abr 2006
Ubicación: Valparaiso - CHILE
Posts: 132
Poder: 19
Alejandro73 Va por buen camino
Estimado

Y si cambias el TDBNavegator por botones? como lo son el bitbtn, speedbutton o tiene que ser necesariamente el TDBNavegator que se parece a la consola de comando de las radiocasette?

Saludos
__________________
Los muertos en CRISTO de sus tumbas volveran y los que vivimos en las nubes nos levantara .......
Responder Con Cita
  #4  
Antiguo 09-08-2013
gcaffe gcaffe is offline
Miembro
 
Registrado: oct 2004
Posts: 53
Poder: 20
gcaffe Va por buen camino
Hola Alejandro73:

Ya había probado la solución que sugieres y funciona, pero he encontrado otra sin la necesidad de eliminar el TDbNavegator, preparé un pequeño programa de ejemplo para probar y el resultado es este:
1. Creo un procedimiento para grabar el registro, como son campos persistentes no necesito el Sender, además así lo puedo invocar desde cualquier otro evento, lo que muestro es un ejemplo particular de mi aplicación, pero se entiende.
Código Delphi [-]
procedure TForm1.GrabarFechasPostError;
var
  FechaAMD: string;
begin
    FechaAMD := Copy(FechasFecha.AsString,7,4)+Copy(FechasFecha.AsString,4,2)+Copy(FechasFecha.AsString,1,2);
    with GrlDT do begin
      Close;
      CommandText := 'INSERT INTO TestFechas (Fecha) VALUES ('''+FechaAMD+''')';
      CambiarSQLText.Params[0].AsString := 'GrlSQLSrvDT';
      CambiarSQLText.Params[1].AsString := CommandText;
      CambiarSQLText.ExecuteMethod;
      Execute;
    end;
end;

Luego en el evento OnPostError de la tabla pongo este código:
Código Delphi [-]
procedure TForm1.FechasPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
// daFail, daAbort, daRetry
  Action := daAbort;
  GrabarFechas;
  Fechas.Close;
  Fechas.Open;
  Fechas.Last;
  grdFechas.SetFocus;
  PostMessage(ActiveControl.Handle, WM_KEYDOWN, VK_DOWN, 0); // Abre un nuevo registro para insertar
end;

Así funciona correctamente, pero creo que es una solución TEMPORAL, porque insisto, el dbExpress debe resolver esta situación al generar el SQL automático.
De todas formas agradeceré una respuesta para evitar estos artificios.

Muchas gracias.
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
grabar stringgrid en mysql edgar_prospero Varios 9 04-07-2012 18:35:46
Error Al Grabar En Base De Datos MARIA_MAR MySQL 2 09-05-2012 18:14:40
Error al grabar un registro en IB Coichi Kake Conexión con bases de datos 2 17-08-2011 14:18:44
Error al Grabar informacion The_figo MySQL 0 30-10-2006 17:53:53
Error al grabar silviodp Conexión con bases de datos 5 31-05-2004 17:52:34


La franja horaria es GMT +2. Ahora son las 02:57:27.


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