FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
ERROR incomprensible de SQL en Delphi 2006
Hola a todos:
Soy programador desde hace 18 años y con el Delphi desde la versión 1. Y al pasar al Delphi 2006 me sale un error en una función que tengo desde hace años funcionando perfectamente. La función la utilizo para obtener un indice incrementa cada vez que añado un registro por ejemplo: Código:
TableGestionIDOrig.AsInteger := DM.GenerarId('IDOrig','GESTION', 'Anyo = '+IntToStr(SwGetAnyo)+' AND HostalId = '+IntToStr(V_TIENDA)); Código:
function TDM.GenerarId(KeyField, TableName, Condicion: string): Integer; var NewValue: Integer; begin NewValue := -1; Query1.Close; Query1.SQL.Clear; if Condicion <> '' then Query1.SQL.Add('SELECT Max( '+KeyField+' ) AS MAXIMO FROM '+TableName+ ' WHERE '+Condicion) else Query1.SQL.Add('SELECT Max('+KeyField+') AS MAXIMO FROM '+TableName); Query1.Open; // Si no hay registros en la tabla la consulta devuelve null if VarIsNull( Query1.FieldValues[ 'MAXIMO' ] ) then NewValue := 1 // valor para el primer registro de la tabla else NewValue := Integer( Query1.FieldValues[ 'MAXIMO' ] ) + 1; Query1.Close; Result := NewValue; end; Cita:
Código SQL [-]SELECT Max( IDOrig ) AS MAXIMO FROM Gestion WHERE Anyo=2008 AND HostalID=1 Funciona perfectamente si la meto en programas de SQL que se que estan echos con Delphi. Y la gracia me tiene mirando y remirando la centencia desde hace mas de un mes. Por favor si alguien tiene alguna idea de por donde mirar se lo agradeceria. Muchas gracias |
#2
|
|||
|
|||
Que motor de BD usas?
Donde te da el error en compilación o en ejecución?
__________________
Grandes frases de nuestro tiempo: "La pasta no és para tirarla, es para el Tunning" "TodoOK=False...." Enjoy it!!! |
#3
|
|||
|
|||
Hola
Me he tomado el atrevimiento de modificar tu función de la forma como yo la escribiría.
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.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney Última edición por egostar fecha: 01-10-2008 a las 23:42:00. |
#4
|
||||
|
||||
Cita:
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 |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error al instalar Zeoslib en Delphi 2006 | tazwil1 | Conexión con bases de datos | 1 | 15-08-2008 00:42:47 |
Error en ASP en Delphi 2006 | aiech | .NET | 3 | 26-06-2008 22:59:18 |
Error: Delphi 2006 + Debugger + Threads | xEsk | Varios | 0 | 16-02-2007 16:03:19 |
Error Incomprensible | altp | Varios | 5 | 23-11-2006 18:23:49 |
error incomprensible | HugoH | Conexión con bases de datos | 2 | 04-05-2004 12:41:19 |
|