<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16705" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=296534319-15112008><FONT face=Tahoma 
color=#0000ff size=2>Calculo que tenes 2 opciones.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=296534319-15112008><FONT face=Tahoma 
color=#0000ff size=2>Una sería modificar el FPC para que publicar la propiedad 
TableName, el componente TCustomCustomQuery tiene una variable FTableName que es 
privada. Yo trate de hacerlo pero tuve problemas para recompilar el FPC y que 
Lazarus lo tome.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=296534319-15112008><FONT face=Tahoma 
color=#0000ff size=2>La otra opción es que busques el código de 
TCustomSQLQuery.SQLParser que hay separa la información y le da el valor a 
FTableName. A lo mejor ejecutando eso, podés obtener el nombre de la 
tabla.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=296534319-15112008><FONT face=Tahoma 
color=#0000ff size=2>Por último, podrías buscar en SQLQuery.SQL.Text, el texto 
que viene después de from, eso sería el nombre de la tabla.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=296534319-15112008><FONT face=Tahoma 
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=296534319-15112008><FONT face=Tahoma 
color=#0000ff size=2>Saludos</FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=es dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>De:</B> lazarus-es-bounces@lazarus.freepascal.org 
[mailto:lazarus-es-bounces@lazarus.freepascal.org] <B>En nombre de </B>Usuario 
Anónimo<BR><B>Enviado el:</B> Viernes, 14 de Noviembre de 2008 
10:07<BR><B>Para:</B> Spanish version of Lazarus List<BR><B>Asunto:</B> 
[Lazarus-es] [MySQL] Obtener el nombre de una tabla 
consultada<BR></FONT><BR></DIV>
<DIV></DIV>
<P>Hola, pongamos que tengo un programa que procesa consultas simples MySQL del 
tipo select * from Tabla mediante el componente TSQLQuery. Necesito guardar en 
una variable de tipo string el nombre de la tabla consultada. Ejemplo:</P>
<P>El programa procesa la siguiente consulta: select * from Carros;</P>
<P>procedure TForm1.ProcesaConsulta;</P>
<P>var</P>
<P>   i: integer; // Contador para recorrer los campos de un registro 
</P>
<P>    NombreTabla: string; // Variable de tipo string para almacenar 
el nombre de la tabla</P>
<P>begin</P>
<DIV>    SQLQuery1.SQL.Text := 'select * from Carros';</DIV>
<DIV>    SQLQuery1.Open;</DIV>
<DIV>    SQLQuery1.First;</DIV>
<DIV>    while not SQLQuery1.EOF do // Este bucle recorre todos los 
registros de la consulta, desde el primero al último </DIV>
<DIV>        begin</DIV>
<DIV>            for i := 0 to 
SQLQuery1.Fields.Count - 1 do // Muestra en mensajes el contenido de cada campo 
del registro       </DIV>
<DIV>                ShowMessage('Nombre 
del campo: ' + SQLQuery1.Fields.Fields[i].FieldName + </DIV>
<DIV>                     
                ' Contenido: ' + 
SQLQuery1.FieldByName(SQLQuery1.Fields.Fields[i].FieldName).AsString);</DIV>
<DIV>            SQLQuery1.Next; // Pasa al 
siguiente registro</DIV>
<DIV>        end;</DIV>
<DIV>   NombreTabla := <no sé qué asignar aquí>; 
// NombraTabla ha de contener Carros </DIV>
<DIV>end;</DIV>
<P>¿Cómo puedo saber qué tabla es la consultada? Ya se que es Carros y que puedo 
obtenerla mediante un manejo de cadenas pero me gustaría saber si hay alguna 
forma más inmediata de hacerlo, pienso que puede que el sistema lo almacene por 
algún lado y no haga falta que haga un tratamiento de la cadena select * from 
Tabla para obtener el nombre de la tabla.</P>
<P>Muchas gracias.</P>
<DIV> </DIV></BODY></HTML>