Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-03-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
RecordCount no devuelve dato real

alguien sabe porque usando Firedac la propiedad RecordCount no devuelve el valor real?

estoy haciendo esta funcion

Código Delphi [-]
Function VerificarAnexo (_Anexo :String; _tipo : Integer) :Boolean;
Var SqlStr : String;
begin
  if _Anexo <> '' then
    Begin
      dmGlobal.qryBuscarAnexo.SQL.Clear;
      SqlStr := 'Select * From tblAnexo where Empresa = ' + QuotedStr(dmGlobal.g_CodigoEmpresa);
      if _tipo = 0 then
        SqlStr := SqlStr + ' and Codigo Like ' + QuotedStr(_Anexo + '%')
      Else
      SqlStr := SqlStr + ' and (Codigo Like ' + QuotedStr(_Anexo + '%') + ' or ' +
                              'RUC Like ' + QuotedStr(_Anexo + '%') + ')';


      SqlStr := SqlStr + ' Order By Codigo';

      dmGlobal.qryBuscarAnexo.SQL.Add(SqlStr);
      dmGlobal.qryBuscarAnexo.Open;
      dmGlobal.qryBuscarAnexo.Last;
      result := dmGlobal.qryBuscarAnexo.RecordCount >= 1;
      dmGlobal.vResultAnexo := dmGlobal.qryBuscarAnexoCodigo.AsString;
      dmGlobal.vResultAnexoRazon := Trim (dmGlobal.qryBuscarAnexoRazonSocial.AsString);
      dmGlobal.vResultAnexoDireccion := Trim(dmGlobal.qryBuscarAnexoDireccion.AsString);
      dmGlobal.vResultAnexoRuc := Trim(dmGlobal.qryBuscarAnexoRuc.AsString);

      dmGlobal.qryBuscarAnexo.Close;
    End
  else
    Result := False;
end;

cuando pruebo el query armado en la cadena en el analizador de consulta, devuelve 10 resultados, pero la linea dmGlobal.qryBuscarAnexo.RecordCount devuelve cero

en el componente TDfQuery he cambiado la propiedad RecorCountMode a cmFetched y tambien a cmTotal y nada sigue devolviendo cero
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #2  
Antiguo 24-03-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En sql, recordcount no devuelve el valor. Aunque debería de hacerlo tras haber ido a .last
De todas formas, lo lógico es hacerlo con un select count(campo) from tabla.
Responder Con Cita
  #3  
Antiguo 24-03-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
En sql, recordcount no devuelve el valor. Aunque debería de hacerlo tras haber ido a .last
De todas formas, lo lógico es hacerlo con un select count(campo) from tabla.


pero eso implicaria generar otra consulta adicional y no es lo que quiero
usando ado no hay ese problema, porque en firedac si?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 24-03-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por oscarac Ver Mensaje
pero eso implicaria generar otra consulta adicional y no es lo que quiero
usando ado no hay ese problema, porque en firedac si?
No he probado firedac, ¿no hay acceso al código fuente?
Responder Con Cita
  #5  
Antiguo 24-03-2019
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Eso varia por motor. Que motor usas?
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 24-03-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
SqlServer 2000
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 24-03-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
En motores sql los encargados suelen ser los componentes. Normalmente hacen un fetch para llegar al final y saber los registros que hay realmente.
En tu caso, con esas líneas debería devolver el número de registros, porque ha llegado al final.
Código Delphi [-]
dmGlobal.qryBuscarAnexo.Open;
dmGlobal.qryBuscarAnexo.Last;
result := dmGlobal.qryBuscarAnexo.RecordCount >= 1;
¿No devuelve el número de registros ese qryBuscarAnexo.RecordCount?
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
enviar dato real a sql Memo6015 Conexión con bases de datos 10 05-09-2008 07:18:10
dato real no exacto jsanchez Firebird e Interbase 2 05-09-2007 23:01:20
RecordCount me devuelve -1 mayte Conexión con bases de datos 6 11-07-2007 15:40:14
RecordCount incorrecto en TkbmMemTable. Da el real menos 1 Wonni OOP 1 07-06-2007 12:27:08
funcion que devuelve el tipo de dato de un variant samame OOP 3 08-07-2004 16:02:30


La franja horaria es GMT +2. Ahora son las 01:05:23.


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