Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-05-2011
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
Tstrings en datasnap

Saludos :
Alguien me puede decir como pasar como parametros a un servidor Datasnap un Tstrings, estoy usando delphi XE y DataSanap conectado a MySql funciona todo bien, Cuando paso a un procedimiento del servidor DataSnap un string funciona perfecto pero cuando lo hago con un Tstring me da error

Lo que quiero hacer realmente es ejecutar varios insert en una sentencia pasada al servidor datasnap en un Tstrings

ejemplo
Código SQL [-]
inser into 'documentos' values ('','c:\delphi\delphi.doc',null);
inser into 'documentos' values ('','c:\delphi\delphi1.doc',null);
inser into 'documentos' values ('','c:\delphi\delphi2.doc',null);

este es el procedimiento que uso para ejecutar varias sentencias sql
Código Delphi [-]
procedure TServerMethods1.EjecutaVariasSQL(sql1: Tstrings);
var
  i,j: Integer; s,Sentencia:string;
begin
   for i := 0 to sql1.Count - 1 do
        begin
          s := sql1[i];
          // va ejecutando cad sentencia MySql terminada en ; una a una
          for j := 1 to length(s) do
            if s[j] <> ';' then
              Sentencia := Sentencia + s[j]
            else
            begin
              try
                ServerContainer1.MySqlCon.ExecuteDirect(Sentencia + ';');
                // ejecuta la sentencia independiente
                Sentencia := '';
              except
               // res := 'Error creando tablas de la base de datos'
              end; // try
            end
        end;
end;

este procedimiento funciona bien cuando lo llamo desde el mismo servidor DataSnap con una salva por ejemplo de la base de datos y este procedimiento ejecuta cada sentencia sin problemas, si alguien el sirve lo pueden usar , es ideal para crear y restaurar salvas con sentencias sql

pero al llamarlo del cliente me da error que mas odio en delphi

remote error:accses violation at address in server.exe

y cuando pongo una traza en el servidor el tstrings sql1 llega vacio.

alguna sugerencia de los que estan al asecho .

Gracias por adelantado.

PD:
A veces me da emoción leer una respuesta aqui, incluso cuando veo que tengo una respuesta antes de leer busco un té y me lo tomo mientras leo,
me parece que estoy como en una tertulia de poesia o algo parecedido, y que cada respuesta veo una persona sin rostro que me aconseja como si fuera un medico con una enfermedad grave.
Responder Con Cita
  #2  
Antiguo 25-05-2011
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
pues yo siempre batallo con el TStrings, uso el TStringList
Responder Con Cita
  #3  
Antiguo 25-05-2011
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
en que campo de batalla

Gracias por responder:

En que campo de batalla tu te fajas TStrings y tstringlist en servidor Datasnap?

Porque lo probe ahora con TstringsLIst y me da el mismo error, al parecer un servidor Datasnap no recibe parametros Tstrings ni Tstringlist de un cliente, voy a buscar otro tipo de datos a ver

gracias amigo salud y pesetas para ti

juank
Responder Con Cita
  #4  
Antiguo 25-05-2011
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola juank1971, primero aclarar que nose nada de DataSnap. Por lo que dices no tienes problemas al mandar como String, puedes probar de mandar tu StringList como String y al otro lado lo pasas a un StringList nuevamente, para ello puedes utilizar la propiedad CommaText del StringList.

Código Delphi [-]
Valor : String;
..........................
 Valor := StringList1.CommaText;
....................................
....................................
 sql1.CommaText := ValorEnviado;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 25-05-2011
juank1971 juank1971 is offline
Miembro
 
Registrado: feb 2008
Posts: 230
Poder: 17
juank1971 Va por buen camino
de donde sacan las ideas aqui

Caro perfecto, funciona perfecto, no se de donde sacan las ideas ustedes, primera ves en mi vida que veo CommaText en un tstrings,

Aunque la prueba fue rapida y funciona sin problemas, no se hasta que punto pueda utilizarlo, depende de la cantidad de caracteres que pueda pasar en el string.

porque la idea del Tstrings era porque lo que quiero pasar son muchas lineas , ahora al pasarlas todas unidas en ese string no se hasta cuanto soporte.

Muchas gracias Voy a segir probando, pero ahora en una busqueda por internet me parece que como estoy usando Datasnap y la conexion al servidor Datasnap es mediante DbExpress, los tipos de datos que maneja DbExpress creo que no esta Tstrings, son dbx pero no se cuan sera el equivalente a Tstrings.

De todas formas funciono lo que me digistes Gracias a todos salud y pesetas

juank
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
TStrings dvlt Varios 7 15-04-2008 15:36:37
conversion Tstrings FGarcia Varios 12 15-06-2007 17:28:31
variable tStrings Carliviris Varios 4 03-01-2007 19:01:05
dudas con TStrings aranel OOP 5 18-10-2005 21:49:47
Problemas con TStrings 1501 OOP 2 19-11-2004 03:36:04


La franja horaria es GMT +2. Ahora son las 08:50:44.


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