Hola, quizás sea una tontería pero como veo que no dais con la solución, yo propongo la idea que pensé desde el principio.<br>¿Has pensado en meter el nombre de la tabla en una variable string? Luego la concatenas con el resto de la consulta y si quieres puedes preguntar por el último valor de la variable o guardarla en un registro con: Date, Nombre_Tabla, Consulta, Resultado, etc. según lo que necesites.<br>
Un saludo, Antonio<br><br>P.D. No se si es corecta la edición del asunto. Es mi primera respuesta en la lista.<br><div class="gmail_quote">El 15 de noviembre de 2008 18:00,  <span dir="ltr"><<a href="mailto:lazarus-es-request@lazarus.freepascal.org">lazarus-es-request@lazarus.freepascal.org</a>></span> escribió:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Envíe los mensajes para la lista Lazarus-es a<br>
        <a href="mailto:lazarus-es@lazarus.freepascal.org">lazarus-es@lazarus.freepascal.org</a><br>
<br>
Para subscribirse o anular su subscripción a través de la WEB<br>
        <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br>
O por correo electrónico, enviando un mensaje con el texto "help" en<br>
el asunto (subject) o en el cuerpo a:<br>
        <a href="mailto:lazarus-es-request@lazarus.freepascal.org">lazarus-es-request@lazarus.freepascal.org</a><br>
<br>
Puede contactar con el responsable de la lista escribiendo a:<br>
        <a href="mailto:lazarus-es-owner@lazarus.freepascal.org">lazarus-es-owner@lazarus.freepascal.org</a><br>
<br>
Si responde a algún contenido de este mensaje, por favor, edite la<br>
linea del asunto (subject) para que el texto sea mas especifico que:<br>
"Re: Contents of Lazarus-es digest...". Además, por favor, incluya en<br>
la respuesta sólo aquellas partes del mensaje a las que está<br>
respondiendo.<br>
<br>
<br>
Asuntos del día:<br>
<br>
   1. Prueba. NO leer ... (Antonio Caballero Martínez)<br>
   2. Re: [MySQL] Obtener el nombre de una tabla consultada<br>
      (Markisich Emiliano)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Fri, 14 Nov 2008 23:38:28 +0100<br>
From: Antonio Caballero Martínez<br>
        <<a href="mailto:antonio.caballero.martinez@gmail.com">antonio.caballero.martinez@gmail.com</a>><br>
Subject: [Lazarus-es] Prueba. NO leer ...<br>
To: Spanish version of Lazarus List<br>
        <<a href="mailto:lazarus-es@lazarus.freepascal.org">lazarus-es@lazarus.freepascal.org</a>><br>
Message-ID: <<a href="mailto:491DFDE4.5070408@gmail.com">491DFDE4.5070408@gmail.com</a>><br>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br>
<br>
Hola.<br>
<br>
Esto es una prueba de envío de mensaje.<br>
<br>
Saludos<br>
<br>
<br>
------------------------------<br>
<br>
Message: 2<br>
Date: Sat, 15 Nov 2008 11:01:50 -0300<br>
From: Markisich Emiliano <<a href="mailto:markisoft@yahoo.com.ar">markisoft@yahoo.com.ar</a>><br>
Subject: Re: [Lazarus-es] [MySQL] Obtener el nombre de una tabla<br>
        consultada<br>
To: Spanish version of Lazarus List<br>
        <<a href="mailto:lazarus-es@lazarus.freepascal.org">lazarus-es@lazarus.freepascal.org</a>><br>
Message-ID: <<a href="mailto:491ED64E.8020205@yahoo.com.ar">491ED64E.8020205@yahoo.com.ar</a>><br>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed<br>
<br>
Hola, eso lo podes hacer con un Trigger, creas una tabla de historial  y<br>
un trigger que cuando se realize un insert o delete o update se dispare<br>
y agregue un registro en la tabla historial.<br>
lo que no se si funciona con un select.<br>
otra cosa esto depende de que motor de base de datos estes usando.<br>
<br>
saludos<br>
<br>
CREATE TRIGGER NOMBRE ACTIVE<br>
BEFORE INSERT OR UPDATE POSITION 12<br>
AS<br>
BEGIN<br>
    IF (INSERTING) THEN<br>
    BEGIN<br>
       /(AGREGO en la tabla de historial)/<br>
    END<br>
    ELSE<br>
    IF (UPDATING) THEN<br>
    BEGIN<br>
           /(AGREGO en la tabla de historial)/<br>
    END<br>
END^<br>
SET TERM ; ^<br>
<br>
User escribió:<br>
><br>
> Hola de nuevo, no, no es eso, yo lo único que le digo al sistema es:<br>
><br>
> toma aquí tienes esta consulta: 'selec * from Carros'<br>
><br>
> ahora dime que tabla ha sido la consultada, y el sistema me devuelva:<br>
> Carros o la que sea<br>
><br>
> No se si me explico.<br>
><br>
> Saludos.<br>
><br>
><br>
> 2008/11/14 Carlos German Tejero <<a href="mailto:german_tejero@yahoo.com.ar">german_tejero@yahoo.com.ar</a><br>
> <mailto:<a href="mailto:german_tejero@yahoo.com.ar">german_tejero@yahoo.com.ar</a>>><br>
><br>
>     Entonces podrias hacer algo asi:<br>
><br>
>     procedure TForm1.ProcesaConsulta(const TABLE_NAME:string);<br>
><br>
>     const<br>
><br>
>       QUERY = 'SELECT * FROM %s;';<br>
><br>
>     var<br>
><br>
>        i: integer; // Contador para recorrer los campos de un registro<br>
><br>
>         NombreTabla: string; // Variable de tipo string para almacenar<br>
>     el nombre de la tabla<br>
><br>
>     begin<br>
><br>
>         SQLQuery1.SQL.Text := Format(QUERY, [TABLE_NAME]);<br>
>         SQLQuery1.Open;<br>
>         SQLQuery1.First;<br>
>         while not SQLQuery1.EOF do // Este bucle recorre todos los<br>
>     registros de la consulta, desde el primero al último<br>
>             begin<br>
>                 for i := 0 to SQLQuery1.Fields.Count - 1 do // Muestra<br>
>     en mensajes el contenido de cada campo del registro<br>
>                     ShowMessage('Nombre del campo: ' +<br>
>     SQLQuery1.Fields.Fields[i].FieldName +<br>
>                                          ' Contenido: ' +<br>
>     SQLQuery1.FieldByName(SQLQuery1.Fields.Fields[i].FieldName).AsString);<br>
>                 SQLQuery1.Next; // Pasa al siguiente registro<br>
>             end;<br>
>        NombreTabla := TABLE_NAME<br>
>     end;<br>
><br>
><br>
>     y llamar a ProcesaConsulta('carros');<br>
><br>
><br>
>     2008/11/14 Usuario Anónimo <<a href="mailto:usuarioanonimomysql@gmail.com">usuarioanonimomysql@gmail.com</a><br>
>     <mailto:<a href="mailto:usuarioanonimomysql@gmail.com">usuarioanonimomysql@gmail.com</a>>><br>
><br>
>         Pero según eso que has puesto el nombre de la tabla siempre va<br>
>         a ser el contenido de la constante TABLE_NAME y yo quiero que<br>
>         sea algo dinámico, independientemente de la consulta, es<br>
>         decir, quiero obtener el nombre de la tabla.<br>
><br>
>         Saludos.<br>
><br>
><br>
>         2008/11/14 Carlos German Tejero <<a href="mailto:german_tejero@yahoo.com.ar">german_tejero@yahoo.com.ar</a><br>
>         <mailto:<a href="mailto:german_tejero@yahoo.com.ar">german_tejero@yahoo.com.ar</a>>><br>
><br>
>             Podrias probar con algo asi, porque el componente<br>
>             TSQLQuery no sabe cual es la tabla, ya que podrian ser mas<br>
>             de una:<br>
><br>
><br>
>             procedure TForm1.ProcesaConsulta;<br>
><br>
>             const<br>
><br>
>               QUERY = 'SELECT * FROM %s;';<br>
><br>
>               TABLE_NAME = 'carros';<br>
><br>
>             var<br>
><br>
>                i: integer; // Contador para recorrer los campos de un<br>
>             registro<br>
><br>
>                 NombreTabla: string; // Variable de tipo string para<br>
>             almacenar el nombre de la tabla<br>
><br>
>             begin<br>
><br>
>                 SQLQuery1.SQL.Text := Format(QUERY, [TABLE_NAME]);<br>
>                 SQLQuery1.Open;<br>
>                 SQLQuery1.First;<br>
>                 while not SQLQuery1.EOF do // Este bucle recorre todos<br>
>             los registros de la consulta, desde el primero al último<br>
>                     begin<br>
>                         for i := 0 to SQLQuery1.Fields.Count - 1 do //<br>
>             Muestra en mensajes el contenido de cada campo del<br>
>             registro<br>
>                             ShowMessage('Nombre del campo: ' +<br>
>             SQLQuery1.Fields.Fields[i].FieldName +<br>
>                                                  ' Contenido: ' +<br>
>             SQLQuery1.FieldByName(SQLQuery1.Fields.Fields[i].FieldName).AsString);<br>
>                         SQLQuery1.Next; // Pasa al siguiente registro<br>
>                     end;<br>
>                NombreTabla := TABLE_NAME<br>
>             end;<br>
><br>
><br>
><br>
>             2008/11/14 Usuario Anónimo <<a href="mailto:usuarioanonimomysql@gmail.com">usuarioanonimomysql@gmail.com</a><br>
>             <mailto:<a href="mailto:usuarioanonimomysql@gmail.com">usuarioanonimomysql@gmail.com</a>>><br>
><br>
>                 Hola, pongamos que tengo un programa que procesa<br>
>                 consultas simples MySQL del tipo select * from Tabla<br>
>                 mediante el componente TSQLQuery. Necesito guardar en<br>
>                 una variable de tipo string el nombre de la tabla<br>
>                 consultada. Ejemplo:<br>
><br>
>                 El programa procesa la siguiente consulta: select *<br>
>                 from Carros;<br>
><br>
>                 procedure TForm1.ProcesaConsulta;<br>
><br>
>                 var<br>
><br>
>                    i: integer; // Contador para recorrer los campos de<br>
>                 un registro<br>
><br>
>                     NombreTabla: string; // Variable de tipo string<br>
>                 para almacenar el nombre de la tabla<br>
><br>
>                 begin<br>
><br>
>                     SQLQuery1.SQL.Text := 'select * from Carros';<br>
>                     SQLQuery1.Open;<br>
>                     SQLQuery1.First;<br>
>                     while not SQLQuery1.EOF do // Este bucle recorre<br>
>                 todos los registros de la consulta, desde el primero<br>
>                 al último<br>
>                         begin<br>
>                             for i := 0 to SQLQuery1.Fields.Count - 1<br>
>                 do // Muestra en mensajes el contenido de cada campo<br>
>                 del registro<br>
>                                 ShowMessage('Nombre del campo: ' +<br>
>                 SQLQuery1.Fields.Fields[i].FieldName +<br>
>                                                      ' Contenido: ' +<br>
>                 SQLQuery1.FieldByName(SQLQuery1.Fields.Fields[i].FieldName).AsString);<br>
>                             SQLQuery1.Next; // Pasa al siguiente registro<br>
>                         end;<br>
>                    NombreTabla := <no sé qué asignar aquí>;<br>
>                 // NombraTabla ha de contener Carros<br>
>                 end;<br>
><br>
>                 ¿Cómo puedo saber qué tabla es la consultada? Ya se<br>
>                 que es Carros y que puedo obtenerla mediante un manejo<br>
>                 de cadenas pero me gustaría saber si hay alguna forma<br>
>                 más inmediata de hacerlo, pienso que puede que el<br>
>                 sistema lo almacene por algún lado y no haga falta que<br>
>                 haga un tratamiento de la cadena select * from Tabla<br>
>                 para obtener el nombre de la tabla.<br>
><br>
>                 Muchas gracias.<br>
><br>
><br>
><br>
>                 _______________________________________________<br>
>                 Lazarus-es mailing list<br>
>                 <a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br>
>                 <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a>><br>
>                 <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
><br>
><br>
><br>
>             --<br>
>             Carlos Germán Tejero<br>
><br>
>             _______________________________________________<br>
>             Lazarus-es mailing list<br>
>             <a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br>
>             <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a>><br>
>             <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
><br>
><br>
>         _______________________________________________<br>
>         Lazarus-es mailing list<br>
>         <a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br>
>         <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a>><br>
>         <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
><br>
><br>
><br>
>     --<br>
>     Carlos Germán Tejero<br>
><br>
>     _______________________________________________<br>
>     Lazarus-es mailing list<br>
>     <a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br>
>     <mailto:<a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a>><br>
>     <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
><br>
> ------------------------------------------------------------------------<br>
><br>
> _______________________________________________<br>
> Lazarus-es mailing list<br>
> <a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br>
> <a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
><br>
<br>
<br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lazarus.freepascal.org">Lazarus-es@lazarus.freepascal.org</a><br>
<a href="http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br>
<br>
Fin de Resumen de Lazarus-es, Vol 14, Envío 6<br>
*********************************************<br>
</blockquote></div><br>