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 29-08-2011
Coichi Kake Coichi Kake is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 9
Poder: 0
Coichi Kake Va por buen camino
Error Too Many Local Constants

Buenas,

Quisiera que favor alguien pudiera decirme el porque de el error
"Too Many Local Constant"
ya me ha ocurrido varias veces y me gustaria saber como hacer para
resolverlo.

Gracias de Antemano

A por cierto uso delphi 6.
Responder Con Cita
  #2  
Antiguo 29-08-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Quizá esto te sirva:

http://docs.embarcadero.com/products...onsts_xml.html

// Saludos
Responder Con Cita
  #3  
Antiguo 29-08-2011
Coichi Kake Coichi Kake is offline
Registrado
NULL
 
Registrado: ago 2011
Posts: 9
Poder: 0
Coichi Kake Va por buen camino
Gracias por tu respuesta roman, pero ahora me surgue otra pregunta

hay alguna manera de aumentar el limite del compiler internal storage?
Responder Con Cita
  #4  
Antiguo 31-08-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Pues creo que no se puede aumentar, pero lo puedes solucionar de otra forma; supongo que tienes código similar a este:
Código Delphi [-]
const
  constante_1 = 'aaaaaaa';
  constante_2 = 'bbbbbbb';
  ....
  constante_N = 'NNNNNN';
y es en alguna de estas líneas donde marca el error al compilar.
En vez de declarar tantas constantes, o constantes con cadenas de texto largas, prueba a declararlas como variables (si no todas, algunas):
Código Delphi [-]
var 
  ex_constante_1 :String = 'aaaaaaa';
  ex_constante_2 :String = 'bbbbbbb';
  ....
  ex_constante_N :String = 'NNNNNN';
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...
Responder Con Cita
  #5  
Antiguo 01-09-2011
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Estimado defcon, siento discrepar contigo. Pero creo que más bien el problema se soluciona -en primera instancia- utilizando constante. En segunda instancia (que es lo mejor), sería reestructurar el código. Si este error te está apareciendo es porque estás aplicando malas técnicas de programación. Estás escribiendo procedimientos extremadamente largos y utilizando en ellos constantes líneales (o en línea). Por ejemplo:

Código Delphi [-]
procedure un_procedimiento_muy_largo;
begin
    if (VariableX = 'CONTABILIDAD') then
        ShowMessage('Hola contador!') // estás son constantes líneales (están combinadas con el código)

    { siguen decenas de líneas de código que siguen utilizando constantes lineales }

Como primera instancia, para solventar el problema, hay que apartar esas constantes del código de lógica. Por ejemplo:
Código Delphi [-]
procedure un_procedimiento_muy_largo;
const  // o mejor aún "resourcestring"
    CONTABILIDAD = 'CONTABILIDAD';
    HOLA_CONTADOR = 'Hola contador!';
begin
    if (VariableX = CONTABILIDAD) then
        ShowMessage(HOLA_CONTADOR ) // estás son constantes pre declaradas

    { siguen decenas de líneas de código que siguen constantes pre declaradas }

A cómo dije eso sería en primera instancia. Luego, habrá que refactorizar el código y dividir ese procedimiento en varios.

Saludos,
Chris
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #6  
Antiguo 02-09-2011
Avatar de defcon1_es
defcon1_es defcon1_es is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuenca - España
Posts: 533
Poder: 21
defcon1_es Va por buen camino
Puede ser lo que dices, Chris, pero casualmente el mes pasado le pasaba lo que comento a un compañero en un proyecto que lleva él sólo, te resumo:

Un ejecutable que se conecta a una base de datos Firebird.
El ejecutable actualiza la estructura de la base de datos a la que se conecta, y se le ocurrió poner todo el código sql como constantes de esta forma
Código Delphi [-]
const   
  prActualizarapuntes = 'CREATE OR ALTER PROCEDURE ....';   
  prActualizarlibro1 = 'CREATE OR ALTER PROCEDURE ....';   
  prActualizarpredefinidos = 'CREATE OR ALTER PROCEDURE ....';

y los procedimientos almacenados tienen (algunos) más de 600 líneas de código, y al compilar el proyecto, le daba el mismo error.

Le dí 3 opciones para solucionarlo:
1) añadir al proyecto como recurso un fichero de texto con todo el codigo sql
2) usar el componente JvDataEmbedded (creo recordar)
3) Cambiar algunas de esas constantes por variables
__________________
Progress Openedge
https://abevoelker.com/progress_open...dered_harmful/


Delphi forever...

Última edición por defcon1_es fecha: 02-09-2011 a las 11:59:50.
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
Error Conexión Local Windows 7 amparog Conexión con bases de datos 8 30-07-2010 20:19:57
Red Local diegolf Conexión con bases de datos 5 21-12-2004 07:54:01
error con bd en local y no en red acrophet Conexión con bases de datos 4 01-09-2004 06:42:31
Ayuda plz!! error al sacar la ip local jorch_yr Internet 7 24-01-2004 15:32:51
¿Es adecuado usar Typed Constants? andre Varios 16 10-12-2003 22:03:00


La franja horaria es GMT +2. Ahora son las 10:11:14.


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