Ir al contenido


Foto

Como consultar datos


  • Por favor identifícate para responder
10 respuestas en este tema

#1 sattua

sattua

    Member

  • Miembros
  • PipPip
  • 25 mensajes

Escrito 24 mayo 2009 - 08:01

ya en serio...yo simpre les preguntare a utds sobre delphi dando ejemplo en java para tratar de entendernos ya q no soy tan bueno en delphi como utds...ojo:

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...
  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 24 mayo 2009 - 09:21

Hola sattua,
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.


delphi
  1. MiQuery.SQL.Add('SELECT ...');
  2. 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:



delphi
  1. 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:



delphi
  1. 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:



delphi
  1. MiQuery.Open; // En el caso de que sea un SELECT
  2. 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:



delphi
  1. 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().



delphi
  1. 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,



delphi
  1. 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,
  • 0

#3 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 24 mayo 2009 - 09:25

Ha, se me olvidaba...

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,
  • 0

#4 sattua

sattua

    Member

  • Miembros
  • PipPip
  • 25 mensajes

Escrito 25 mayo 2009 - 12:49

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


  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

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,
  • 0

#6 sattua

sattua

    Member

  • Miembros
  • PipPip
  • 25 mensajes

Escrito 26 mayo 2009 - 12:41

osea:

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....
  • 0

#7 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 mayo 2009 - 12:50

Gracias por aclararme. :)

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,
  • 0

#8 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 mayo 2009 - 01:15

Hola, estas hablando de muchos datos y utilizaras el BDE??  yo de entrada no te lo recomiendo.

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.
  • 0

#9 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 26 mayo 2009 - 01:25

Tienes razón eduardo, no recordaba eso... como no uso DBE ya me habí­a olvidado.
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,
  • 0

#10 sattua

sattua

    Member

  • Miembros
  • PipPip
  • 25 mensajes

Escrito 28 mayo 2009 - 02:26

gracias por todos los consejos...al final use todo esp de DBE y funciono bien...como dicen en un trabajito pequeño q ya casi termine (la bronca es q tengo q hacer casos de uso, diagramas y toda esa locura jaja) pero la parte programada va bien.

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 (y)


  • 0

#11 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 28 mayo 2009 - 04:19

Hola Sattua, en realidad el foro PHP cubrí­a Ajax, pero hemos modificado el nombre para que sea más clara, ahora se llama "Foro PHP, Ajax, Javascript, Java y HTML".

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.