Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2015
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Nombre de columna con Ñ o ñ

Hola, tengo que acceder a campos cuyo nombre contiene caracteres especiales, en este caso ñ, hasta ahora lo habia resuelto accediendo por su posicion:

Código Delphi [-]
tabla.fields[X].asSTring etc

sin embargo dadas las muchas bd dentro de las cuales tablas con los campos en orden no estandarizado, en las mas viejas mi solucion anterior no funciona en todos los casos, como estoy usando lazarus no puedo simplemente:

Código Delphi [-]
tabla.fieldByName('conÑ').asString

la pregunta es: puedo hacer que lazarus me reconozca los nombres de columna aún con campos especiales....

Gracias.

por que lazarus por que es openSource, multiplataforma y lo mejor de todo gratis ....
Responder Con Cita
  #2  
Antiguo 26-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Supongo que Lazarus no tiene mucho que ver en eso, más bien será la base de datos que estás usando, que lo permita.
¿Y por qué no sirve usar el índice en lugar del nombre "en todos los casos"?, ¿en qué casos sí y en qué casos no?
Responder Con Cita
  #3  
Antiguo 26-07-2015
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Algunos detalles

Hola amigos, voy a describir un poco mas el problema para dar contexto real del problema, para eso utilizare analogias:

imaginen un mismo negocio que posee 7 sucursales
en cada sucursal existe una base de datos para cada año (total 12 años = 12 bd)
luego van 7 sucursales por 12 bd
cada bd posee 5 tablas de las que intento obtener los datos en cuestión, y pasarlas como dice el librito a una bd con maximo 2 tablas que resuman todo el problema anterior, luego debo

1: recorrer cada sucursal
2: recorrer las 12 bd de cada sucursal
3 : recorrer las 5 tablas de cada bd

hasta acá pues si bien son muchas bd y tablas pues de que se logra se logra,
ahora bien para responder tu pregunta

Cita:
¿Y por qué no sirve usar el índice en lugar del nombre "en todos los casos"?, ¿en qué casos sí y en qué casos no?
la razón es que en las mas viejas bd el orden(incluso el numero de los campos) varian en cantidad y posición por tal
Código Delphi [-]
tabla.fields[indice]
no siempre funcionara y lamentablemente las tablas contienen nombres de campos con Ñ y lazarus no los reconoce de forma normal de modo que no puedo referenciarlos
Código SQL [-]
tabla.fieldByName('campo_con_ñ')

espero haber sido explicito...

y anticipándome a sus comentarios del porque esa estructura de datos, pues es una aplicación legada, nada que hacer ....

Gracias

P.D: por cierto Delphi si reconoce los campos con ñ lazarus no de modo que mas que la bd creo que es configuración o caracteristica de lazarus, y eso es lo que quiero solucionar ....

una vez mas gracias por tu interes .....

Última edición por Casimiro Notevi fecha: 26-07-2015 a las 20:43:30.
Responder Con Cita
  #4  
Antiguo 26-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Has dicho qué base de datos es?
Responder Con Cita
  #5  
Antiguo 26-07-2015
Kenobi Kenobi is offline
Miembro
 
Registrado: mar 2007
Posts: 191
Poder: 18
Kenobi Va por buen camino
Access

Es msAccess ....

gracias
Responder Con Cita
  #6  
Antiguo 26-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.056
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si usando el índice del campo te funciona, ya que son pocas sucursales, por qué no aprovechas y controlas por código para que use un índice u otro, según la sucursal de donde provenga la base de datos Por ejemplo:
Código Delphi [-]
// campos con nombres no estandar
case sucursal
  1: tabla.fields[3] .......
  2: tabla.fields[5] ......
  3,4,5: tabla.fields[2] ....
  6,7: tabla.fields[8] ...
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
extraer nombre de columna paul170185 Varios 3 01-03-2011 13:31:49
Saber nombre de una Columna gersonmaba SQL 2 30-09-2010 22:11:07
Nombre de columna en dbgrid joanajj Varios 4 30-07-2006 00:34:42
Capturar el nombre de una Columna DBGRID SaLvaGe OOP 1 22-09-2005 13:31:13
cambiar el nombre de una columna estudiante SQL 6 26-04-2005 20:36:37


La franja horaria es GMT +2. Ahora son las 12:23:54.


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