Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-05-2010
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Problemas con Firebird y Date

hizo la function abajo:
Código Delphi [-]
function PegaVendaPorCaixa(pComputador: String;
  pData: TDateTime): Double;
var
  sql: String;
  lQuery      : tQualquerQuery ;
begin
  lQuery := tQualquerQuery.Create( objDataBaseMidle ) ;
  with lQuery do
  begin
    sql.add('select sum(n_vlr_total_ped)total from tbl_pedido ');
    sql.add('where id_computador = ' + pComputador);
    sql.add(' and d_ent_ped = ' + pData);
    try
      open;
      if RecordCount > 0 then
        Result := lQuery.FieldValues['total'];
    except
      on e: exception do
      begin
        MessageDlg( e.Message, mtError, [ mbOk ], 0 ) ;
      end ;
    end;
end;
end;
Que pasa es que estoy con problemas en la llamada a la function, pues en Brasil las dates son: DD/MM/YYYYY y en FB son MM/DD/YYYY, pero que no eh logrado exito con la llamada, tipo:
Código Delphi [-]
ShowMessage(FloatToStr(PegaVendaPorCaixa('53',now)));
Responder Con Cita
  #2  
Antiguo 20-05-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.084
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En firebird puedes usar 'dd.mm.yyyy', 'mm/dd/yyyy' y creo que también 'yyyy-mm-dd'
Responder Con Cita
  #3  
Antiguo 20-05-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Paulao, debes formatar la fecha o utilizar parámetros.

Código Delphi [-]
  ....................................................................
  with lQuery do
  begin
    sql.add('select sum(n_vlr_total_ped)total from tbl_pedido ');
    sql.add('where id_computador = ' + pComputador);
    sql.add(' and d_ent_ped = ' + FormatDateTime('mm/dd/yyyy', pData));

   .......................................................

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 20-05-2010
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Hizo o FormateDate y puzo asi em mi llamada:
Código Delphi [-]
ShowMessage(FloatToStr(PegaVendaPorCaixa('53',StrToDate('13/01/2010'))));
El error es: Modify Request. Error Conversion from String y viene unos numeros.
Mi funcion estas asi:
Código Delphi [-]
function PegaVendaPorCaixa(pComputador: String;
  pData: TDateTime): Double;
var
  sql: String;
  lQuery      : tQualquerQuery ;
begin
  lQuery := tQualquerQuery.Create( objDataBaseMidle ) ;
  with lQuery do
  begin
    sql.add('select sum(n_vlr_total_ped)total from tbl_pedido ');
    sql.add('where id_computador = ' + pComputador);
    sql.add(' and d_ent_ped = ' + FormatDateTime('mm/dd/yyyy', pData));
    try
      sql.savetofile('c:\lixo\tt.txt');
      open;
      if RecordCount > 0 then
        Result := lQuery.FieldValues['total'];
    except
      on e: exception do
      begin
        MessageDlg( e.Message, mtError, [ mbOk ], 0 ) ;
      end ;
    end;
end;
end;
Responder Con Cita
  #5  
Antiguo 20-05-2010
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Creo que el problema sea las comas que fueran colocadas en la llamada.
Responder Con Cita
  #6  
Antiguo 20-05-2010
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Que no fueran
Responder Con Cita
  #7  
Antiguo 20-05-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, añade comillas a tu fecha, puedes hacerlo con QuotedStr:

Código Delphi [-]
    sql.add('select sum(n_vlr_total_ped)total from tbl_pedido ');
    sql.add('where id_computador = ' + pComputador);
    sql.add(' and d_ent_ped = ' + QuotedStr(FormatDateTime('mm/dd/yyyy', pData)));

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 20-05-2010
Crisperre Crisperre is offline
Miembro
 
Registrado: may 2007
Posts: 22
Poder: 0
Crisperre Va por buen camino
yo lo veo bien

Hola.

Yo lo veo bien, una vez tuve un problema parecido en un cliente era con un campo Time y al final fue porque habian tocado en la configuración regional y de idioma del windows. Lo puse yo al valor correcto y funcionó.

No sé si tendrá algo que ver, pero pr comprobarlo no pierdes nada

un saludo
Responder Con Cita
  #9  
Antiguo 20-05-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.738
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
La solución a todo esto es no utilizar un string para pasar una fecha sino un parámetro.
Código Delphi [-]
function PegaVendaPorCaixa(pComputador: String;
  pData: TDateTime): Double;
var
  sql: String;
  lQuery      : tQualquerQuery ;
begin
  lQuery := tQualquerQuery.Create( objDataBaseMidle ) ;
  with lQuery do
  begin
    sql.add('select sum(n_vlr_total_ped)total from tbl_pedido ');
    sql.add('where id_computador = ?id_computador ');
    sql.add(' and d_ent_ped = ?d_ent_ped ');
    try
      {Parametros --------------------------------------------}
      Params.ByName['ID_COMPUTADOR'].AsString := pComputador;
      Params.ByName['D_ENT_PED'].AsDateTime := pData;
      {Parametros --------------------------------------------}
      sql.savetofile('c:\lixo\tt.txt');
      open;
      if RecordCount > 0 then
        Result := lQuery.FieldValues['total'];
    except
      on e: exception do
      begin
        MessageDlg( e.Message, mtError, [ mbOk ], 0 ) ;
      end ;
    end;
end;
end;
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
Problemas con CAST y campos tipo DATE Kubelo Firebird e Interbase 8 12-03-2010 18:26:34
Problemas de agrupamientos con campos tipo date GustavoCruz Conexión con bases de datos 5 11-12-2006 17:36:57
Firebird problema con campos DATE Mauro® Conexión con bases de datos 2 25-10-2006 16:48:58
Problemas con Date y Currency en FibPluss nefy Firebird e Interbase 2 04-08-2004 00:24:05
Por que no puedo evaluar Date o Now En Firebird? IcebergDelphi Firebird e Interbase 1 19-07-2003 07:35:46


La franja horaria es GMT +2. Ahora son las 03:47:38.


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