Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

TQuery

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: TQuery Responder citando

Tengo un SELECT en un TQuery pero no se como obtener los datos que devuelve esa sentencia despues de llamar al metodo Open() sin ser con un TDBGrid.

Es decir que no se como obtener los datos de manera que pueda manejarlos en mi programa.

Si alquien puede ayudarme se lo agradeceria.

Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

Saludos! Si sabes los nombres de los campos puedes accesar los valores por estos de esta manera:
Código:
String Valor=Query1->FieldByName("Nombre Campo")->AsString; //Intenta la conversion a cadena
int Valor =Query1->FieldByName("Nombre Campo")->AsInteger;//Entero
Query1->FieldByName("Nombre Campo")->AsFloat;

otra forma es acceder por el numero del campo (orden)
Código:

String Valor=Query->Fields->Fields[2]->Value;//si estas seguro del tipo de campo
String Valor=Query->Fields->Fields[2]->AsString//si no estas seguro o quieres hacer la conversion

Código:
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

HOLA:

TQuery funciona igual que un TTable, con la excepcion de la modificacion de registros, le puedes asociar un TDataSet, y todos los componentes
DB-Aware que desees.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Bueno en un TQuery si se puede modificar registros, es decir, uno puede hacer un select lo que sea, y modificar un registro de "ese lo que sea", poniendo la propiedad adecuada a true en el TQuery ahora mismo no recuerdo, creo que era LiveUpdate o algo así.

Ciao.
_________________
OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

HOLA:

Cita:
TQuery si se puede modificar registros


Of course, pero siempre es lo mismo, ttable para modificar, TQuery para leer, la razon:

1º Cuando intentes portar tu base de datos te daras cuentas que no todas la bases de datos te permiten hacer modificaciones sobre una consulta.

2º Una consulta por norma general no abarca una sola tabla.

3º Etc,etc,etc.

Es un tema mas que discutido, existen trigger y procedimientos mediante el cual hacer modificaciones, utiliza sentencias sql para hacer modificaciones masivas, pero no registro a registro.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Si el select puede devolver varias filas de la tabla como puedo obtener todos los valores para un campo, si es que el select devuelve varias filas.

Gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

HOLA:

No entiendo tu pregunta, obtener todos los valores para un campo?? con un group by ??.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Select Campo from Tabla, esto te devuelve todas las filas, al no existir clausula where que limite las filas resultado se devuelven todas.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

El select no me va a devolver unicamente una fila de la tabla y para un campo tendre varios valores y queria saber como obtener los valores de un campo ya que no es un unico valor en mi caso.

campo1 | campo2 | campo3 |
----------|-----------|---------- |
1 | 2 | 2 |
2 | 2 | 3 |
4 | 1 | 5 |

Si el select me devuelve estos valores como obtengo los referentes al campo1 por ejemplo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mensaje    Asunto: Responder citando

HOLA:

Sigo sin entenderte.

¿Tu pregunta es como te mueves por los registros de una consulta ?

Query ->First();
Query ->Next();
Query ->Prior();
Query ->Last();

?????????????.

By.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Buenas !!

Yo tengo un problema parecido... y creo q se lo que qiere decir.

Al hacer una consulta sobre un query este devuelve informacion que normalmente se muestra sobre un DBGrid pero que hacer si quieres manipular esa informacion antes??.

Por ejemplo mi caso...

SELECT COUNT(*) FROM TABLA;

Esto devuelve un entero X, que es el q m interesa para la siguiente consulta.

Como hago ahora esto:


SELECT * FROM TABLA WHERE CAMPO>X;
Volver arriba
Mensaje    Asunto: Responder citando

SELECT * FROM TABLA WHERE CAMPO>(SELECT COUNT(*) FROM TABLA)
Volver arriba
Mensaje    Asunto: Responder citando

Saludos

Por lo que entiendo, lo que quieren es hacer una consulta ylos resultados pasarlos a variables, eso es muy simple, este es un ejemplo:

Código:

Query->Close();
Query->SQL->Add("select * from tabla");
Query->Open();
Query->First(); //Se situa en el primer registro encontrado
while(!Query->Eof) //Mientras no se llegue al final de la tabla
{
    VariableEntero = Query->FieldByName("Campo1")->AsInteger;
    VariableCadena = Query->FieldByName("Campo2")->AsString;
    VariableFlotante = Query->FieldByName("Campo3")->AsFloat;
     //Y asi para todos los campos que quieras rescatar...
   Query->Next(); //Esto mueve el cursor al siguiente registro de la consulta
}



Cabe mencionar que lo mismo se puede hacer para los componentes TTable, ya que ambos decienden de TDataSet... Espero les haya servido, saludos...
_________________
Dirección Municipal de Informática
H. Ayuntamiento de Tijuana
Arriba Lopez Obrador !!!
Los Mexicanos Merecemos Respeto !!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.