PDA

Ver la Versión Completa : pregunta sobre SQL y tablas


docarrillo
02-07-2003, 04:03:44
hola, quisiera saber una duda: cómo acceder a una tabla determinada dependiendo del registro de otra tabla elegido por el usuario, es decir,

tengo una tabla con un campo donde hay varios registros (1, 2, 3, ...) y dependiendo de que yo eliga uno u otro registro he de acceder a la tabla 1, tabla 2, tabla 3, ...


Gracias de antemano. Un saludo a todos.

marcoszorrilla
02-07-2003, 08:09:39
Supongo que lo que quieres decir es un registro en el que hay varios campos.

Entonces también supongo que en dichos campos se hallan los nombres de otras tablas.

Explícalo un poco mejor, según colijo puede ser que con un combo mostrando el campo en donde se hallan los nombres de las tablas pudiera ser suficiente y armar al vuelo una sentencia SQL en la que añadamos el nombre de la tabla.

Un Saludo.

docarrillo
02-07-2003, 13:07:33
tienes razon creo que no lo dije bien, me refiero a que tengo un campo llamado 'Nombre Tabla' que tiene una serie de valores o filas: 1, 2, 3 ... En vez de un combo lo que utilizo es un dbedit y un dbnavigator, entonces según el valor que elija pretendo acceder a otra tabla (tabla1, tabla2, tabla3 ...) Mi duda es como construir la consulta, puesto que la misma es variable dependiendo del valor tomado del campo.

Gracias

__cadetill
02-07-2003, 13:37:34
Query.SQL.Add('select *');
Query.SQL.Add('from ' + DbEdit1.Text);
Query.SQL.Add('where condiciones');


Espero te sirva

docarrillo
02-07-2003, 17:09:49
muchas gracias por la idea.
verás, ahora estoy intentando crear una tabla, tengo en el formulario un dbedit y un button (además del query y el datasource) de forma que en el evento onclick del button he puesto:

procedure TForm1.Button1Click(Sender: TObject);
begin
query1.SQL.Add('create table'+dbedit1.Text+
'(campo1 VARCHAR(20) NOT NULL,campo2 VARCHAR(10) NOT NULL)'
);
end;

con objeto de que el nombre de la tabla sea el contenido del dbedit1, pero al ejecutarlo se bloquea y la tabla no se crea y no se por qué es.

un saludo

__cadetill
02-07-2003, 17:49:53
supongo que estaras utilizando un ExecSQL en lugar de un Open, no?

docarrillo
02-07-2003, 18:23:16
pues la verdad es que no, como sería la consulta?

llevo con delphi unos meses y hasta ahora habia trabajado con tablas paradox, pero ahora tengo que hacerlo conectando a una base de datos mysql. me he instalado unos componentes para ello (mytable,myquery,myconnection, etc) y ando un poco perdido con las consultas. si alguien sabe de algun manual util y practico de sql en delphi estaría muy agradecido. tengo varios pero no me he aclarado gran cosa

__cadetill
03-07-2003, 13:17:53
bueno, en lugar de hacer

Query1.Open;

tienes que hacer un

Query1.ExecSQL;

El Open solo sirve para aquellos casos en que una sentencia SQL devuelve valores, es decir, con una sentencia Select. Para lo demas, tienes que utilizar el ExecSQL