Ver Mensaje Individual
  #4  
Antiguo 03-10-2008
Avatar de Softweb
Softweb Softweb is offline
Miembro
 
Registrado: ago 2008
Posts: 46
Reputación: 0
Softweb Va por buen camino
Cita:
Empezado por egostar Ver Mensaje
Hola

Me he tomado el atrevimiento de modificar tu función de la forma como yo la escribiría.

Código Delphi [-]function TDM.GenerarId(Campo, NombreTabla, Condicion: string): Integer; begin with Query1 do begin Close; SQL.Clear; if Condicion <> '' then SQL.Add('SELECT Max('+Campo+') AS MAXIMO FROM '+NombreTabla+ ' WHERE '+Condicion) else SQL.Add('SELECT Max('+Campo+') AS MAXIMO FROM '+NombreTabla); Open; if RecordCount = 0 then Result := 1 else Result := Fields[0].Value + 1; Close; end; end;


Yo te recomiendo que hagas un trace dentro de esa función, tal vez hay algo no está bien en las variables que estas pasando.

Salud OS

Edito: He cambiado dos nombres que podrian tener efectos secundarios. TableName y KeyField.
Gracias egopolice pero anoche ya encontré el error.
Era un error del copilador de Delphi ya que limpie todos los DCU, DSK, caches, el directorio __history y compile de nuevo y "sorpresa" ya no tenia error la aplicación, con las casta de Delphi. ;-)

Gracias y un saludo
Responder Con Cita