Podrias probar con algo asi, porque el componente TSQLQuery no sabe cual es la tabla, ya que podrian ser mas de una:<br><br><br><p>procedure TForm1.ProcesaConsulta;</p><p>const<br></p><p>  QUERY = 'SELECT * FROM %s;';</p>
<p>  TABLE_NAME = 'carros';<br></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 := Format(QUERY, [TABLE_NAME]);</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 := TABLE_NAME</div><div>end;</div><br><br><br><div class="gmail_quote">2008/11/14 Usuario Anónimo <span dir="ltr"><<a href="mailto:usuarioanonimomysql@gmail.com">usuarioanonimomysql@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><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>
<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></blockquote></div><br><br clear="all"><br>-- <br>Carlos Germán Tejero<br>