
Como consultar datos
#1
Escrito 24 mayo 2009 - 08:01
en java capturo datos al hacer una consulta con una cuestion q se llama RESULTSET...esa cuestion la igualo a un objeto q consulte la base de datos con un query tipo: "select nombre,id from nose where algo= algo", entonces con el RESULTSET despues solo le decia resultset (0,0) y eso era igual a el primer nombre resultado de la consulta....espero darme a entender, en sintesis algo q me capture los datos despues de una consulta y q sea dinamico para manejar eso datos(pueden ser datos masivos) osea muchos jaja =P
chao...
#2
Escrito 24 mayo 2009 - 09:21
Antes que nada, gracias en ponerte en contacto. No era necesario el mensaje privado, pero aquí estoy.
Segundo, te pedirías que elijas mejor las palabras al momento de expresarte. Piensa y ordena mejor tus palabras, y luego postea. Te agracerías que seas un poco más prolijo.
Respecto a tu duda, creo entenderte. Quieres lanzar una consulta SQL hacia alguna base de datos y después poder acceder al conjunto de resultados. Eso se consigue empleando datasets del tipo Query, y depende de la tecnología de acceso. Para el caso de ADO es el TADOQuery, para DBE el TQuery, en IBX es TIBQuery, etc.
En pocas, debes hacer uso de componentes TXxxQuery. Sería útil que nos comentes que componentes usas y cual es el motor de base de datos que empleas.
Todos los datatets query tienen la propiedad SQL en la cual se introduce la consulta. Esta propiedad es de tipo TStrings, y básicamente hay dos modos de introducir (en tiempo de ejecución) un SQL:
Opcion 1: Emplear Add.
MiQuery.SQL.Add('SELECT ...'); MiQuery.SQL.Add('FROM ... ');
...
Con add puedes separar tu SQL en varias línas y ser más prolijo. Además como ventaja ante un error en la consulta el compilador te puede indicar en cual "línea Add" está el error.
Como contra, Add() no borra el contenido previo. Por tanto si se está por introducir una consulta nueva o desde cero, primero hay que limpiar el contenido:
MiQuery.SQL.Clear;
Opción 2: Emplear Text.
Empleando Text, introducimos el SQL de una sola vez, nada de partirlo en líneas. Como ventaja, nos evitamos el Clear ya que mediante Text se reemplaza todo el contenido por el nuevo:
MiQuery.SQL.Text := 'select ... from... where...';
Podemos asignar en tiempo de diseño una consulta SQL pulsando en el botón "..." de la propiedad SQL. Dependiendo del componente usado y del motor se mostrará un editor SQL en el que podemos escribir nuestras instrucciones.
Después hay que ejecutar la instrucción SQL. Hay dos métodos:
MiQuery.Open; // En el caso de que sea un SELECT MiQuery.Execsql; // En caso de ser un UPDATE o DELETE
NOTA: Antes de ejecutar una instrucción SQL nueva hay que cerrar el dataset mediante el método Close:
MiQuery.Close;
Una vez lanzada la instrucción SQL dentro del dataset se guarda el conjunto de datos de resultados (si es un SELECT). Se puede acceder al contenido de los registros y campos empleando la propiedad Fields[], y/o el método FieldByName().
UnTexto := miQuery.Fields[0].AsString;
En el ejemplo, se accede al 1er campo y se guarda el contenido en formato string en la variable UnTexto.
O bien,
UnTexto := MiQuery.FieldByName('NombreCampo').AsString;
Con FieldByName() accedemos al campo por su nombre.
Tanto con Fields como con FieldByName se tiene acceso al registro activo. Podemos acceder a cada registro moviendonos gracias a los métodos First, Next, Prior, Last.
Sugiero una lectura de la ayuda que ofrece Delphi sobre el uso de los Querys y la clase Field. Puedes consultar ejemplos de como usar los querys en los hilos abiertos. Sugiero que realices una búsqueda.
Si tienes mayores dudas, por favor coméntalas. Se bien preciso y lo más detallista posible al redactar tus inquietudes. Cuando más nos puedas decir, más fácil será poder asesorarte.
Saludos,
#3
Escrito 24 mayo 2009 - 09:25
Tercero, escoge mejor los títulos a los hilos. NO es necesario gritar (las mayúsculas) ni maldecir.
Edité el título por algo más adecuado.
Saludos,
#4
Escrito 25 mayo 2009 - 12:49
Ahora....estoy usando algo llamado TDATABASE para conectarme esta en BDE, y es rlo pongo sobre el formulario y le meto parametros y en el codigo le pongo .open y listo...para hacer por eje un insert pongo Database1.Execute('insert bla bla bla'); y todo bien, ahora se me servira para insertar, modificar y eliminar...pero para seleccionar no se....por ahi esta algo q mencionaste llamado Tquery, podria ser ese verdad??...pero voy a intentar eso q me dijiste a ver q pasa.
chao
#5
Escrito 25 mayo 2009 - 05:29
Bueno hola.. sisi tenes razon con lo del titulo, perdon...
Ahora....estoy usando algo llamado TDATABASE para conectarme esta en BDE, y es rlo pongo sobre el formulario y le meto parametros y en el codigo le pongo .open y listo...para hacer por eje un insert pongo Database1.Execute('insert bla bla bla'); y todo bien, ahora se me servira para insertar, modificar y eliminar...pero para seleccionar no se....por ahi esta algo q mencionaste llamado Tquery, podria ser ese verdad??...pero voy a intentar eso q me dijiste a ver q pasa.
chao
Mi no entender

Saludos,
#6
Escrito 26 mayo 2009 - 12:41
logro conectarme a la base por medio de una cuestion llamada TDATABASE, cuando lo agrego al formulario, puedo modificarle algunos parametro para q se conecte a la base (osea le pongo user nombre de la base,etc....) Ahora...en el codigo del formulario le doy .open al Tdatabase y se conecta a la base, luego le doy tdatabase.execute('consulta'), y envia y ejecuta la consulta en la base....todo bien, pero!
Eso sirve para con un INSERT o DELETE o UPDATE...pero para un select no...entonces utd habló de un tquery q esta ubicado en BDE donde tambien esta ubicado TDATABASE....osea creo q este TQUERY q comentaste es lo q necesito para hacer los selects....eso es solo para aclarar
chao....
#7
Escrito 26 mayo 2009 - 12:50

Ahora entiendo.
Exacto, considero que es más recomandable optar por el uso de los TQuerys o si la situación lo amerita, de TTables. Además hay otros más, como ser TStoredProc, etc.
Estos componentes que menciono se conectan al TDataBase. El TDatabase debería ser empleado para establecer la comunicación y conectarse a la base de datos, es preferible emplear los dataset para el manejo de las instrucciones SQL y del uso y acceso a las tablas. Te recomiendo una lectura de la ayuda que proporciona Delphi sobre el uso de estos componentes.
Cualquier duda no dudes, valga la redundancia, en consultarnos.
Saludos,
#8
Escrito 26 mayo 2009 - 01:15
Delphius con respecto a lo que dices de utilizar querys y storeproc esta muy bien si estuvieramos hablando de algun motor relacional, pero el BDE no es asi el maneja tabla plana, para lo cual seria lo mismo que utilizaras TTable a TQuery ya que las consultas se ejecutan en el cliente y no en el servidor, por lo cual viajarian todos los datos de la misma manera.
#9
Escrito 26 mayo 2009 - 01:25
Además, el DBE ya viene quedando en desuso y de aconseja no seguir empleándolo.
Sería mejor que Sattua reconsidere emplear otros componentes.
Aunque si se trata de aquel trabajo que debes presentar, como nos comentaba en otro hilo, no creo que sea tan problemático. Después de todo es un trabajo y no un sistema final y en funcionamiento en alguna empresa.
Saludos,
#10
Escrito 28 mayo 2009 - 02:26
Esta es una gran comunidad espero seguir siendo parte de ella...cuando pueda aportare info a los demas lo hare con gusto...por ciento nose si existe..pero tengo un poquito de experiencia en ajax...si por ahi habren un espacio para ajax o para javascript con gusto los ayudo
chao

#11
Escrito 28 mayo 2009 - 04:19
Saludos.