<!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>