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 17-12-2021
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por kuan-yiu Ver Mensaje
Muchas pero falta información. ¿Por qué solo te permite 50?
No entiendo por que, el campo es de tipo fkData, y cuando le pongo un valor mayor a 50, y ejecutas el programa o desactivas y activas, se vuelve a poner en 50, y en tiempo de ejecucion no acepta mas de 50.
Responder Con Cita
  #2  
Antiguo 17-12-2021
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
¿Y como está definido en la BD? ¿Como está enlazado ese ClientDataSet con la BD? ¿Se modifica el campo en algún otro punto del programa?
Responder Con Cita
  #3  
Antiguo 17-12-2021
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por kuan-yiu Ver Mensaje
¿Y como está definido en la BD? ¿Como está enlazado ese ClientDataSet con la BD? ¿Se modifica el campo en algún otro punto del programa?
Utilizo ese ClientdataSet para guardar datos temporales en tiempo de ejecucion, lo lleno con la informacion que consulto de un Query.

Utilizo la siguientes lineas:

Código Delphi [-]
 
Tfactura.Insert;
 TFacturaDESCRIPCION.AsString := Fagregarproducto.Qtemp.FieldByname('Descripcion').AsString;
Responder Con Cita
  #4  
Antiguo 21-12-2021
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
Faltan datos. No has dicho como está definido en la BD, ni como es la consulta, ni si has dado de alta los campos en el ClientDataSet o los toma dinámicamente de la consulta.
Si el campo es editable con un simple: "micampo.size := longitud" deberías poder cambiarlo. O directamente en el formulario.
Si este cambio no es persistente es porque haces algo más con ese campo.

Revisa que el dato original no tenga esa limitación de tamaño o que utilizas algún paso intermedio que imponga una limitación.
Revisa que el componente de formulario (grid, dbedit...) no tenga una máscara, maxlength, size, displaywidth.
Revisa que no cambies por código el tamaño, o que hagas la carga o definición de los campos una segunda vez que machaque lo que has puesto.
Pon breakpoints en el código, o mensajes o lo que más te guste, para ver en que punto se modifica el size del campo en cuestión.
Responder Con Cita
  #5  
Antiguo 21-12-2021
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Smile

Cita:
Empezado por kuan-yiu Ver Mensaje
Faltan datos. No has dicho como está definido en la BD, ni como es la consulta, ni si has dado de alta los campos en el ClientDataSet o los toma dinámicamente de la consulta.
Si el campo es editable con un simple: "micampo.size := longitud" deberías poder cambiarlo. O directamente en el formulario.
Si este cambio no es persistente es porque haces algo más con ese campo.

Revisa que el dato original no tenga esa limitación de tamaño o que utilizas algún paso intermedio que imponga una limitación.
Revisa que el componente de formulario (grid, dbedit...) no tenga una máscara, maxlength, size, displaywidth.
Revisa que no cambies por código el tamaño, o que hagas la carga o definición de los campos una segunda vez que machaque lo que has puesto.
Pon breakpoints en el código, o mensajes o lo que más te guste, para ver en que punto se modifica el size del campo en cuestión.
Hola,
1- Como Dije arriba, lo lleno con una consulta de un Query, la cual Hace un Select de la base de datos.
La tabla es Productos.
Mi campo en la tabla es Descripcion Nvarchar 80.
SQL Server.

La consulta es:
Código SQL [-]
'Select Cod, Descripcion, Existencia, Categoria, SubCategoria, Suplidor, '+
             'Serie, Cod_Produc_Suplidor as Cod_Suplidor FROM Productos';

Para Trae los datos al ClientDataSet lo hago asi:
Código Delphi [-]
 Tfactura.Insert;
TFacturaDESCRIPCION.AsString := FAgregarproducto.Qtemp.FieldByname('Descripcion').AsString;

Nota: La unica cosa que hago que tenga que ver con la forma en que se muestra esa columna, es que le doy una alineacion centrada. No tiene que ver pero lo comento.
Código Delphi [-]
DBGrid1.Columns[3].Title.Alignment := taCenter;

Cuando en el OnShow del Form, aplico lo de
Código Delphi [-]
TfacturaDescripcion.size := 100;
Tafactura.Active;
Me da error de fuera de Rango.


2- Lo del campo original ya mencione que son 80.
3- El DBgrid muestra los datos cuando se habre el ClientDataSet, asi que no estan predefinidos ni delimitados de ninguna clase.
4- No cambio por codigo el tamaño.

Creo que respondi todo.
Gracias.

Última edición por feliz-58 fecha: 21-12-2021 a las 15:43:44.
Responder Con Cita
  #6  
Antiguo 21-12-2021
Avatar de kuan-yiu
[kuan-yiu] kuan-yiu is offline
Miembro Premium
 
Registrado: jun 2006
Ubicación: Galicia. España.
Posts: 1.017
Poder: 19
kuan-yiu Va camino a la fama
A simple vista ya hay algo.
Si en la BD es de 80 no puedes darle de tamaño 100 porque te dará error al guardar.
Cita:
Empezado por feliz-58 Ver Mensaje
La tabla es Productos.
Mi campo en la tabla es Descripcion Nvarchar 80.
SQL Server.
(...)
Código Delphi [-]
TfacturaDescripcion.size := 100;
Tafactura.Active;
Me da error de fuera de Rango.
Prueba poniendo 80 y determina el punto exacto en el que salta el error o en donde pierde el tamaño.
No es un comportamiento normal que cambie de tamaño así por las buenas.
Responder Con Cita
  #7  
Antiguo 21-12-2021
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por kuan-yiu Ver Mensaje
A simple vista ya hay algo.
Si en la BD es de 80 no puedes darle de tamaño 100 porque te dará error al guardar.


Prueba poniendo 80 y determina el punto exacto en el que salta el error o en donde pierde el tamaño.
No es un comportamiento normal que cambie de tamaño así por las buenas.
Ya encontre el problema, la solucion esta en que, cuando modificas el tamaño de un campo, en ves de activar y desactivar el ClientDataSet, hay que dale a crear otra vez. (Clic Derecho, Crear DataSet) y los cambio si se guardan
Responder Con Cita
  #8  
Antiguo 21-12-2021
feliz-58 feliz-58 is offline
Miembro
 
Registrado: sep 2012
Posts: 314
Poder: 12
feliz-58 Va por buen camino
Cita:
Empezado por kuan-yiu Ver Mensaje
A simple vista ya hay algo.
Si en la BD es de 80 no puedes darle de tamaño 100 porque te dará error al guardar.


Prueba poniendo 80 y determina el punto exacto en el que salta el error o en donde pierde el tamaño.
No es un comportamiento normal que cambie de tamaño así por las buenas.
Gracias por la ayuda y el interes.
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
Campo mayor a 255 trex2000 Firebird e Interbase 2 18-05-2021 17:21:44
Microsoft.ACE.OLEDB.12.0 con nombre de archivo mayor a 8 caracteres aromigaret SQL 10 26-01-2017 18:07:37
Campo autoincremental en clientDataSet novato_erick Providers 0 13-04-2014 01:03:57
Buscar en un campo de una tabla por Caracteres Drago26 Tablas planas 2 23-10-2008 16:24:47
ClientDataSet y campo COMPUTED BY Jose Miguel Mun Firebird e Interbase 2 24-02-2007 15:29:48


La franja horaria es GMT +2. Ahora son las 16:59:17.


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