PDA

Ver la Versión Completa : Problemas con string de mas de 255 caracteres...


jaderl
06-01-2005, 18:34:47
Hola amigos del foro.:p

Saludos desde Colombia.

Mi problema es el siguiente: tengo que pasarle una cadena de mas de 255 caracteres a un procedimiento en delphi 7.0, pero me sale un error que la cadena de caracteres es mayor de 255 caracteres...:confused:

entonces cambié el tipo de datos del parametro de string a ansistring y sigue pasando lo mismo, según la ayuda de delphi 7.0 este tipo de datos recibe mas de 255 caracteres, como se muestra en la tabla que copié de la ayuda:

String types
Type Maximum length Memory required Used for
*ShortString 255 characters 2 to 256 bytes backward compatibility

*AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters, DBCS ANSI, MBCS ANSI, etc.

*WideString ~2^30 characters 4 bytes to 2GB Unicode characters; multi-user servers and multi-language applications

Que tengo que hacer para que me funcione el procedimiento y el compilador no me bote ningún error...:confused:

Les agradezco me puedan ayudar y perdonen si la pregunta es un poco tonta...:D

GRACIAS....:p

marcoszorrilla
06-01-2005, 18:55:21
Por qué no pones el código que utilizas yo acabo de hacer la prueba con una String y le paso 367 caracteres y no me da error y el procedimiento los recibe y muestra todos.

Supongo que estás utilizando ShortSgring.

Porque si utilizas String, puedes pasarle el ancho que quieras, ya que su límite es la memoria del sistema.

Un Saludo.

Al González
06-01-2005, 19:39:26
¡Hola a todos!

Muy posiblemente, el problema se debe a que has especificado una expresión String literal contínua de más de 255 caracteres (lo cual es inválido). Para resolverlo, sepárala en varias partes concatenadas con el operador +.

En Delphi, encontrarás más información al respecto bajo la ayuda del error String literals may have at most 255 elements.

Espero esto sea de utilidad, seguimos en contacto.

Al González :).
Sentido es aquel que llora por un amigo, sensible es aquel que comprende a un amigo.

jaderl
06-01-2005, 21:05:46
La function que estoy utilizando es la siguiente:

function buscar(Titulo, Sql_Select, Sql_From, Sql_Where, Ord1, Ord2, Ord3, bsc1, bsc2, bsc3 : string; opc : byte = 0; temp : boolean = false; campo_temp : byte = 0) : string;

esta es la declaración de la function.

fbuscar_basica.buscar('Listado de Inscripciones - ' + Logica.anno_inscripciones,'SELECT INSC_NUM NUMERO, INSC_NUM_DOC IDENTIFICACION, INSC_PRIMER_NOMBRE PRIMER_NOMBRE, INSC_SEGUNDO_NOMBRE SEGUNDO_NOMBRE, INSC_PRIMER_APELLIDO PRIMER_APELLIDO, INSC_SEGUNDO_APELLIDO SEGUNDO_APELLIDO, NIV_ACAD_DESCRIPCION NIVEL_ACADEMICO, GRA_NOMBRE GRADO, JOR_DESCRIPCION JORNADA','FROM INSCRIPCIONES, GRADOS_ESPECIALIDAD GE, GRADOS G, NIVELES_ACADEMICOS, JORNADAS','WHERE (INSC_ESTAB_CODIGO_DANE = ' + copy(Logica.codane_establecimiento,1,12) + Logica.anno_inscripciones + ') AND (INSC_ANNO = ' + Logica.anno_inscripciones + ') AND (INSC_GRA_ESP_CODIGO = GE.GRA_ESP_CODIGO) AND (GE.GRA_CODIGO = G.GRA_CODIGO) AND (G.GRA_NIV_ACAD_CODIGO = NIV_ACAD_CODIGO) AND (INSC_JOR_CODIGO = JOR_CODIGO)','ORDER BY INSC_NUM','ORDER BY INSC_NUM_DOC','ORDER BY INSC_PRIMER_NOMBRE, INSC_SEGUNDO_NOMBRE, INSC_PRIMER_APELLIDO, INSC_SEGUNDO_APELLIDO','Número','Identificación','Nombres');

y de esta forma la estoy invocando...

Cuando la estoy invocando, mandandole el valor en el parametro Sql_Select, es que me sale el error....

roman
06-01-2005, 21:24:10
El problema se debe a lo que te comentó Al y él ya te dijo como
solucionarlo.

// Saludos

jaderl
06-01-2005, 21:40:32
Gracias amigos del foro....:p

El que sabe, sabe y el que no es secretaria....:rolleyes:

Ja, ja, ja, ja, ja:D

Se solucionó el problema...

Como regalo por haberme colaborado,

Aquí les mando la siguiente caricatura:
http://www.mundofred.com/caricaturas/condon36.html

Todas las caricaturas las encuentran aquí:
http://www.mundofred.com/caricaturas.html

Me parece un buen mensaje contra el virus del sida, divulgenlo...

Gracias...