| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
koes Lt


Registrado: 19 Jul 2003Mensajes: 77Ubicación: A Laracha (A Coruña)
|
Publicado: Mar 24 Feb, 2004 8:07 pm Asunto: TQuery |
|
|
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 |
|
 |
alfredo Master

Registrado: 13 Oct 2003Mensajes: 246Ubicación: Valencia Venezuela
|
Publicado: Mar 24 Feb, 2004 10:15 pm Asunto: |
|
|
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
|
|
|
| Volver arriba |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Mie 25 Feb, 2004 6:40 pm Asunto: |
|
|
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 |
|
 |
XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Mie 25 Feb, 2004 6:43 pm Asunto: |
|
|
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 |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Vie 27 Feb, 2004 11:54 am Asunto: |
|
|
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 |
|
 |
koes Lt


Registrado: 19 Jul 2003Mensajes: 77Ubicación: A Laracha (A Coruña)
|
Publicado: Lun 01 Mar, 2004 7:08 pm Asunto: |
|
|
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 |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Mar 02 Mar, 2004 11:10 am Asunto: |
|
|
HOLA:
No entiendo tu pregunta, obtener todos los valores para un campo?? con un group by ??.
By. |
|
| Volver arriba |
|
 |
alfredo Master

Registrado: 13 Oct 2003Mensajes: 246Ubicación: Valencia Venezuela
|
Publicado: Mar 02 Mar, 2004 8:17 pm Asunto: |
|
|
| 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 |
|
 |
koes Lt


Registrado: 19 Jul 2003Mensajes: 77Ubicación: A Laracha (A Coruña)
|
Publicado: Jue 04 Mar, 2004 6:29 pm Asunto: |
|
|
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 |
|
 |
TOÑO Master

Registrado: 26 Ago 2002Mensajes: 223Ubicación: Madrid - España -
|
Publicado: Jue 29 Abr, 2004 11:26 am Asunto: |
|
|
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 |
|
 |
Kano Invitado
|
Publicado: Mar 27 Jul, 2004 8:15 am Asunto: |
|
|
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 |
|
 |
Dan Invitado
|
Publicado: Mie 11 Ago, 2004 7:37 pm Asunto: |
|
|
| SELECT * FROM TABLA WHERE CAMPO>(SELECT COUNT(*) FROM TABLA) |
|
| Volver arriba |
|
 |
LordNemesis Master


Registrado: 31 Dic 2003Mensajes: 340Ubicación: México
|
Publicado: Jue 19 Ago, 2004 5:57 pm Asunto: |
|
|
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 |
|
 |
|