Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ayuda trabajar con datos del dataset (https://www.clubdelphi.com/foros/showthread.php?t=79593)

jans.albornoz 19-07-2012 20:47:27

ayuda trabajar con datos del dataset
 
Hola soy nuevo en el foro y estoy comenzando a desarrollar un proyecto con Delphi.
He buscado en foros la manera de conectarme a una base de datos con una consulta sql y poder realizar operaciones matemáticas y lógicas con los datos que me arroje la consulta, es decir el dataset, pero no he encontrado la forma de hacerlo en delphi, estoy conociendo el lenguaje ya que anteriormente lo hacía con asp.net o php.
Agradecería algún ejemplo que me sirva de guia

Casimiro Notevi 19-07-2012 20:57:46

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

kapcomx 19-07-2012 22:02:01

zeos
 
Si vas a trabajar con MYSQL te recomiendo el uso de Zeos, aunque no se que version de Delphi tengas...:cool:

jans.albornoz 19-07-2012 22:22:15

Cita:

Empezado por kapcomx (Mensaje 437800)
Si vas a trabajar con MYSQL te recomiendo el uso de Zeos, aunque no se que version de Delphi tengas...:cool:

Todavía no elijo el motor de base de datos, están evaluando el tema de licencias y servidores, por ahora estoy con un prototipo en access y estoy evaluando la versión de prueba de "Embarcadero Rad Studio XE2" para posterior compra de licencia, creo que tiene la ultima versión de delphi

kapcomx 19-07-2012 22:31:43

interbase
 
Actualmente estoy trabajando con XE2 y nos va muy bien con interbase, aun que te soy sincero casi nunca o no recuerdo haber utilizado Acces con Delphi pero creo que en XE2 viene una paleta de componentes dbgo que tienen los componentes ADO, que son los que pueden conectarte con ACCESS.

Saludos..

jans.albornoz 19-07-2012 22:47:49

Cita:

Empezado por kapcomx (Mensaje 437805)
Actualmente estoy trabajando con XE2 y nos va muy bien con interbase, aun que te soy sincero casi nunca o no recuerdo haber utilizado Acces con Delphi pero creo que en XE2 viene una paleta de componentes dbgo que tienen los componentes ADO, que son los que pueden conectarte con ACCESS.

Saludos..

si lo encontré y me conecto a la base de datos y pude llenar una grilla con datos, pero lo que necesito es hacer una consulta a una tabla y otra consulta a otra tabla con factores, después hacer unas operaciones con las matrices de los dos "dataset". El problema que tengo es que como me sale todo automático, no encuentro la forma de recorrer el dataset con los valores y hacer los cálculos que necesito para después poder mostrarlos en la grilla.
Quiero poder hacer esto por código:
- conectarme a la base de datos
- hacer una consulta sql
- recorrer el dataset con los resultados que me arrojo la consulta
- mostrar en la grilla o de alguna otra forma los datos ya trabajados

kapcomx 19-07-2012 23:06:48

recorrer
 
Cita:

Empezado por jans.albornoz (Mensaje 437806)
- recorrer el dataset con los resultados que me arrojo la consulta

ok, si lo que quieres es hacer un recorrido puedes usar un ciclo while

Código Delphi [-]
dataset1.first;
while not (dataset1.eof) do 
begin
variable:= variable + dataset1campox.value; //

dataset1.next; 
end;

y para visualizar los campos puedes usar un stringgrid

Espero te sirva...:cool:

jans.albornoz 19-07-2012 23:12:16

Cita:

Empezado por kapcomx (Mensaje 437809)
ok, si lo que quieres es hacer un recorrido puedes usar un ciclo while

Código Delphi [-]
dataset1.first;
while not (dataset1.eof) do 
begin
variable:= variable + dataset1campox.value; //

dataset1.next; 
end;

y para visualizar los campos puedes usar un stringgrid

Espero te sirva...:cool:

ok, gracias, lo voy a probar y te cuento si me resulta

MartinS 20-07-2012 04:12:39

Hola:
Yo hace casi un año que uso Firebird y realmente va muy bien (es excelente y free)
Tenes este tutorial del compañero Caral que te va a servir en cuanto a componentes para la conexion, su configuracion y el acceso a los datos.-

Saludos.-

jans.albornoz 23-07-2012 15:16:36

Cita:

Empezado por MartinS (Mensaje 437822)
Hola:
Yo hace casi un año que uso Firebird y realmente va muy bien (es excelente y free)
Tenes este tutorial del compañero Caral que te va a servir en cuanto a componentes para la conexion, su configuracion y el acceso a los datos.-

Saludos.-

Gracias por el dato, lo tendré en cuenta, el año pasado estuve haciendo unas pruebas con firebird y se nota un buen motor de base de datos

jans.albornoz 23-07-2012 23:24:33

Cita:

Empezado por kapcomx (Mensaje 437809)
ok, si lo que quieres es hacer un recorrido puedes usar un ciclo while

Código Delphi [-]
dataset1.first;
while not (dataset1.eof) do 
begin
variable:= variable + dataset1campox.value; //

dataset1.next; 
end;

y para visualizar los campos puedes usar un stringgrid

Espero te sirva...:cool:

no me resulta el orden para poder enlazar mi consulta con la conexión y el DataSet.
Como debe ser el orden y la vinculación de estos elementos ya que aca veo que se hace en las propiedades y me pierdo un poco, yo estaba acostumbrado a hacerlo en asp.net donde tenia la conexion, ejecutaba una consulta sql a esa conexion y de eso obtenia un dataset, trato de hacer este orden pero no me resulta.

ecfisa 24-07-2012 00:01:05

Cita:

Empezado por jans.albornoz (Mensaje 437989)
no me resulta el orden para poder enlazar mi consulta con la conexión y el DataSet.
Como debe ser el orden y la vinculación de estos elementos ya que aca veo que se hace en las propiedades y me pierdo un poco, yo estaba acostumbrado a hacerlo en asp.net donde tenia la conexion, ejecutaba una consulta sql a esa conexion y de eso obtenia un dataset, trato de hacer este orden pero no me resulta.

Hola jans.albornoz.

Revisa este hilo: [ ¿cómo conectar base de datos access con un ado en delphi pasos? ]

Saludos.

jans.albornoz 24-07-2012 03:21:27


gracias me sirvió bastante, ya tengo conexión =)

jans.albornoz 24-07-2012 20:57:43

ya encontré solución a mi problema, gracias a todos los que me aportaron con algo. dejo el código por a alguien mas tiene la misma duda

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
suma, cantidad , largo, diametro, numeroTrozos, ritmo, sumaRitmo, sumanumeroTrozos, result : real ;
T, factorRitmo, codigoTrozoAbas, codigoTrozoFac: string;
begin
abastecimiento.Active:=true;
dbgrid1.Visible:=true;
adoquery1.Active:=true;
sumaRitmo := 0;
sumanumeroTrozos := 0;
with abastecimiento do
    begin
       first;
       while not eof do
         begin
         codigoTrozoAbas:= FieldByName('codigoTrozo').AsString;
             cantidad:= FieldByName('cantidad').AsInteger;
             largo:= FieldByName('largo').AsInteger;
             diametro:= FieldByName('diametro').AsInteger ;
             numeroTrozos:= (cantidad * 10000) / (largo * diametro * diametro );
              sumanumeroTrozos:=  sumanumeroTrozos +   numeroTrozos;
             with ADOQuery1 do
                begin
                   first;
                   while not eof do
                      begin
                      codigoTrozoFac := FieldByName('codigoTrozo').AsString;
                        if codigoTrozoAbas = codigoTrozoFac then
                        begin
                        ritmo:= FieldByName('factorRitmo').AsFloat;
                        sumaRitmo:=  sumaRitmo + (ritmo * numeroTrozos);
                       end;

                         next;
                      end;
                end;
             next;
         end;
    end;
    result :=   sumaRitmo /   sumanumeroTrozos;
    factorRitmo:= floattostr(result);
     ListBox1.Items.Add(factorRitmo);
end;


La franja horaria es GMT +2. Ahora son las 05:18:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi