Hola pedrolazarus.
En principio cambiaría:
Código Delphi
[-]
ZQuery1.SQL.Text:='SELECT * FROM mesas';
ZQuery1.ExecSQL;
ZQuery1.Open;
ZQuery2.SQL.Text:='SELECT * FROM cliente where id_mesa=id';
ZQuery2.ExecSQL;
ZQuery2.Open;
Por:
Código Delphi
[-]
ZQuery1.SQL.Text:='SELECT * FROM mesas';
ZQuery1.Open;
ZQuery2.SQL.Text:='SELECT * FROM cliente where id_mesa=id';
ZQuery2.Open;
El método
ExcecSQL, ejecuta consultas que no devuelven un resultado como
CREATE TABLE,
INSERT,
DELETE y
UPDATE.
Saludos.