PDA

Ver la Versión Completa : Como utilizar la variable sacada con un TQuery


kye_z
26-10-2004, 19:29:17
buenas,,

aki estoy de nuevo... os cuento mi actual problema... que gracias a el.. la cosa se va ampliando...


sqlClasse.SQL.Clear;
sqlClasse.SQL.Add('select id_classe from classe where nom_classe like "' + nomClasse.Text + '"');
sqlClasse.ExecSQL;
idClasse:=sqlClasse;<.. aki es donde tengo el problemilla....


me interesa meter la respuesta de la consulta dentro de la variable idClasse. La consulta en qüestion solo saca un valor. (un nuemero para ser esactos) i me interesa guardarla dentro de la variable idClasse. me podriais ayudar?!

muchissimas gracias por adelantado!!

maeyanes
26-10-2004, 19:43:21
Prueba con:


idClasse := sqlClasse.Fields[0].AsInteger;


o también:


idClasse := sqlClasse.FieldByName('id_classe').AsInteger;

kye_z
26-10-2004, 20:22:58
asias!!!

k haria yo sin vuestra ayuda!! :S

jejeje :D muchas gracias d verdad!!! ta la proxima!!!

kye_z
27-10-2004, 10:14:54
Os escrivo aqui como ha quedao el codigo....


sqlClasse.SQL.Clear;
sqlClasse.SQL.Add('select id_classe from classe where nom_classe like "' + nomClasse.Text + '"');
sqlClasse.ExecSQL;
sqlClasse.Active:=true;
idClasse:=sqlClasse.Fields.Fields[0].AsString;


al principio me saltava una excepcion en el fields!! pero mirando i mirando el codigo i buscando otros problemillas por el foro he visto que muchos despues del execSQL poneis el active := true! asi que me he decidido por hacerlo yo tb!!! i al final perfecto!!

muchas gracias de antemano!!

defcon1_es
27-10-2004, 13:40:48
Estas 2 líneas no tienen lógica, a mi parecer :D, porque el método ExecSQL "creo" (no lo he probado) que no hace nada en este caso.

sqlClasse.ExecSQL;
sqlClasse.Active:=true;


sustituyelas por

sqlClasse.Open;


Recomendación:

El método ExecSQL debes usarlo para sentencias SQL que no devuelven un cursor a datos, es decir, INSERT, UPDATE, DELETE, y CREATE TABLE.
Para cualquier sentencia SELECT, usa el método Open (o pon la propiedad Active := True)

Salu2.