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 22-09-2010
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Duda en declaracion de variables

Tengo un campo del tipo Text en Mysql. Que pasa que yo necesito pasar por una funcion, un parametro para este campo. Este parametro viene de un memo. Como hago para declarar este parametro deste tipo y cargalo en mi funcion?
Si mi campo en el banco de Datos fuera Varchar, yo declararia como string mi variable, pero como es Blob(Text) como yo declaro, pues el contiene varias leneas y tengo que pasar esto en una funcion. Otra cosa, esta funcion está en um servidor de aplicacion(3 tier) y los parametros en el client.
Responder Con Cita
  #2  
Antiguo 23-09-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Los objetos TMemo tienen una propiedad llamada Lines, la cual es un objeto de tipo TStringList del que puedes extraer el contenido completo como un STRING. Es este último el que debes utilizar. Useasé:

Código Delphi [-]
  PROCEDURE MiMetodo (Texto: STRING);
  ···
VAR
  Memo1: TMemo;
  ···
  MiMetodo (Memo1.Lines.Text);
  ···
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 23-09-2010
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
la ejecucion de los metodos estan en el servidor y en el client solo se van los parametros. Que pasa que el retorno del servidor para el client es OleVariant y el no soporta TStrings. Entonces pasar un retorno del tipo TMemo no funciona. Pense en un record, pero no se como.
Responder Con Cita
  #4  
Antiguo 23-09-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Paulao Ver Mensaje
Si mi campo en el banco de Datos fuera Varchar, yo declararia como string mi variable, pero como es Blob(Text) como yo declaro, pues el contiene varias leneas...
Hola Paulao. Aunque un texto esté compuesto por varias líneas, puedes manejarlo como un String. Los diferentes saltos de línea son también caracteres (especiales) que forman parte del texto.

Supongo que esto tiene que ver con el tema: http://www.clubdelphi.com/foros/show...012#post377012

Código Delphi [-]
VarString := StringList.Text;

VarString := Memo.Text;

Saludos.
Responder Con Cita
  #5  
Antiguo 23-09-2010
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Creo que usteds no intedieron. O que pasa no es manipulacion de string o otra cosa. Es pasarlo de un Servidor de Aplicacion para un Cliente. Es un sistema 3 tier. Entonces tengo un metodo que es executado en el servidor y envia el result para el client via AppServer del Socket. Como estás en el Servidor su tipo es Olevariant(Return). Y este tipo no acepta TStrings o StringList, luego no consigo pasarlo como un Memo, una Lista y etc...
Esta es mi duda.
Responder Con Cita
  #6  
Antiguo 23-09-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por Paulao Ver Mensaje
Creo que usteds no intedieron...Como estás en el Servidor su tipo es Olevariant(Return). Y este tipo no acepta TStrings o StringList, luego no consigo pasarlo como un Memo, una Lista y etc...
Esta es mi duda.
Sí entendimos el problema, Paulao. Pasa como resultado la propiedad Text del TMemo o del TStringList.

Código Delphi [-]
OLEVariantX := Memo1.Text;

o bien:

Código Delphi [-]
OLEVariantX := StringList.Text;

(OLEVariantX = variable, parámetro "return", etc.)

La propiedad Text contiene todas la líneas del texto, el cual así podrá pasarse como OLEVariant sin problema alguno.

El tipo OLEVariant sí es compatible con String, y dentro de ese String Text están todas las líneas del memo.

¿Se entiende un poco mejor?
Responder Con Cita
  #7  
Antiguo 23-09-2010
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola Paulao

Como te han explicado, lo que debes pasar es un string, en los métodos tu deseas pasar un StringList (lo que no es permitido)

Tu intentas hacer algo así:

Código Delphi [-]
MetodoX(const Lista: TStringList); stdcall;

Pero lo que debes hacer es cambiarlo a widestring:

Código Delphi [-]
MetodoX(const Lista: widestring); stdcall;

Y en el cliente ya puedes enviar el parámetro como string aunque sea una lista

Código Delphi [-]
MetodoX(memo1.text);

Creo que falta mas información de tu parte para entender como estás generando los métodos en el servidor.

Saludos
Responder Con Cita
  #8  
Antiguo 24-09-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Sospecho que algo se pierde en la traducción, dado que Paulao es brasileño.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
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
Declaracion de Variables berfer Firebird e Interbase 10 13-10-2011 21:12:20
sobe declaración de variables de objeto r1d2m3 OOP 2 20-03-2010 03:15:22
Tengo un problema de un Error en la declaración de variables Robert01 Varios 4 03-03-2007 05:45:50
Duda con el ámbito de variables cardomjar Varios 6 16-03-2005 12:45:52
declaracion de variables... azaagh Varios 4 08-06-2004 15:44:45


La franja horaria es GMT +2. Ahora son las 15:10:24.


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