[Lazarus-es] [MySQL] Obtener el nombre de una tabla consultada
Carlos German Tejero
german_tejero en yahoo.com.ar
Vie Nov 14 13:47:24 CET 2008
Podrias probar con algo asi, porque el componente TSQLQuery no sabe cual es
la tabla, ya que podrian ser mas de una:
procedure TForm1.ProcesaConsulta;
const
QUERY = 'SELECT * FROM %s;';
TABLE_NAME = 'carros';
var
i: integer; // Contador para recorrer los campos de un registro
NombreTabla: string; // Variable de tipo string para almacenar el nombre
de la tabla
begin
SQLQuery1.SQL.Text := Format(QUERY, [TABLE_NAME]);
SQLQuery1.Open;
SQLQuery1.First;
while not SQLQuery1.EOF do // Este bucle recorre todos los registros de
la consulta, desde el primero al último
begin
for i := 0 to SQLQuery1.Fields.Count - 1 do // Muestra en
mensajes el contenido de cada campo del registro
ShowMessage('Nombre del campo: ' +
SQLQuery1.Fields.Fields[i].FieldName +
' Contenido: ' +
SQLQuery1.FieldByName(SQLQuery1.Fields.Fields[i].FieldName).AsString);
SQLQuery1.Next; // Pasa al siguiente registro
end;
NombreTabla := TABLE_NAME
end;
2008/11/14 Usuario Anónimo <usuarioanonimomysql en gmail.com>
> 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:
>
> El programa procesa la siguiente consulta: select * from Carros;
>
> procedure TForm1.ProcesaConsulta;
>
> var
>
> i: integer; // Contador para recorrer los campos de un registro
>
> NombreTabla: string; // Variable de tipo string para almacenar el
> nombre de la tabla
>
> begin
> SQLQuery1.SQL.Text := 'select * from Carros';
> SQLQuery1.Open;
> SQLQuery1.First;
> while not SQLQuery1.EOF do // Este bucle recorre todos los registros de
> la consulta, desde el primero al último
> begin
> for i := 0 to SQLQuery1.Fields.Count - 1 do // Muestra en
> mensajes el contenido de cada campo del registro
> ShowMessage('Nombre del campo: ' +
> SQLQuery1.Fields.Fields[i].FieldName +
> ' Contenido: ' +
> SQLQuery1.FieldByName(SQLQuery1.Fields.Fields[i].FieldName).AsString);
> SQLQuery1.Next; // Pasa al siguiente registro
> end;
> NombreTabla := <no sé qué asignar aquí>; // NombraTabla ha de contener
> Carros
> end;
>
> ¿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.
>
> Muchas gracias.
>
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
--
Carlos Germán Tejero
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20081114/ca000986/attachment-0001.html>
More information about the Lazarus-es
mailing list