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)
-   -   Consultas SQL para Paradox (https://www.clubdelphi.com/foros/showthread.php?t=11155)

azaagh 07-06-2004 19:10:40

Consultas SQL para Paradox
 
hola a todos, este es mi primer mensaje en el foro....puede que lo que os vaya a preguntar os parezca algo basico, pero no controlo mucho el delphi...

bueno, vamos al lio.... yo tengo las bases de datos echas en paradox....
y necesito realizar consultas SQL de calculo mediante codigo (por ejemplo funciones como sum, count....), pero no se como hacerlo...y necesitaria que alguien me explicara como hacerlo detalladamente...

otra duda que estoy teniendo estos dias y que no he encontrado la respuesta son:
-como podria hacer para introducir parametros (variables) en una consulta SQL?? (en plan funciones)

-no hay forma de usar procedimientos y funciones sql???

Espero vuestras respuestas!!! mas bien las necesito!! :p

PD: supongo que son dudas muy basicas, pero realmente se poco de delphi
explicarmelo lo mejor posible!! :D

roman 07-06-2004 19:18:51

Lo mejor sin duda será que consultes la ayuda de Delphi acerca de componentes de acceso a bases de datos para adquirir las nociones básicas.

A grandes rasgos necesitas una componente TQuery. A su propiedad DataBaseName le asignas el alias de tu base de datos y a la propiedad SQL le asignas el texto de la consulta SQL.

Para ejecutar la consulta usas el método Open si se trata de consultas que regresen registros como SELECT y el método ExecSQL en caso de consultas de tipo UPDATE, DELETE, INSERT, etc.

Puedes usar parámetros para valores de campos anteponiendo ":" al nombre del parámetro, como en:

Código SQL [-]
select * from personas
where id = :persona_id

Para sustituir el valor del parámetro usas el método ParamByName del TQuery:

Código Delphi [-]
Query1.ParamByName('persona_id').AsInteger := 84;

No entiendo a qué te refieres con usar procedimientos y funciones en SQL.

// Saludos

eduarcol 07-06-2004 19:20:06

Pues solo darte la bienvenida a los foros e invitarte a leer la guia de estilo ya que varias preguntas no pueden realizarse en el mismo hilo.

Con respecto a escribir las consulta SQL debes hacerlo en una TQuery

Suerte y Saludos

azaagh 07-06-2004 21:47:38

roman, me ha quedado bastante claro lo que tu me has dicho...lo de los dos puntos antes del nombre de la variable y tal...

yo es que soy mas de oracle...y estoy acostumbrado a usar procedimientos y funciones... hay alguna forma de almacenar consultas SQL y usarlas mediante codigo? como ejecuto una consulta desde codigo?? todavia tengo muchas dudas...

yo en oracle hacia mas o menos esto
Código SQL [-]
declare
a NUMBER
begin
a := SELECT sum(numero) FROM tabla1 WHERE id > 6;
-- por ejemplo
pero esta misma accion no se como se hace en delphi

cbrrr 07-06-2004 22:00:43

Puedes declararte unas constantes con las consultas (si estas son fijas) o bien montarlas en tiempo de ejecución o, incluso, dejarlas escritas en diseño en la propiedad SQL del TQuery

Aquí te pongo algún ejemplo a ver si te sirve

Código Delphi [-]
 // motan una consulta
 Query.SQL.Clear;
 Query.SQL.Add('select * from tabla');
 Query.SQL.Add('WHERE id > 6');
 try
   Query.Open;
   if Query.IsNull then
     // no hay valores de retorno
   else
     // hay valores de retorno
 except
   // control de error en la sentencia SQL
 end;

Código Delphi [-]
 // si lo tenemos en constantes
 const
   SQL1 = 'select * from tabla where condicion = :param';
 .....
 
 //en algun procedure....
 begin
   Query.SQL.Text := SQL1;
   Query.ParamByName('param').AsInteger := 6;
   try
     Query.Open;
     if Query.IsNull then
       // no hay valores de retorno
     else
       // hay valores de retorno
   except
      // control de error en la sentencia SQL
   end;
 end;

Espero que los ejemplos te sirvan

azaagh 07-06-2004 22:25:04

gracias por tus ejemplos...

durante todo el dia, e leido varios manuales, pero en todos a nivel de componentes y eventos...:(

todavia me queda una duda.... como meto el resultado de la consulta en una variable???

gracias de antemano!! :D menudo coñazo soy!

roman 07-06-2004 22:29:00

Cita:

Empezado por azaagh
todavia me queda una duda.... como meto el resultado de la consulta en una variable???

El resultado de una consulta no es una valor únicamente sino un conjunto de registros cada uno con varios campos.

Debes recorrer los registros con un ciclo y acceder a cada campo con FieldByName:

Código Delphi [-]
while not Query.Eof do
begin
  Variable := Query.FieldByName('nombre del campo').AsXXX;
  Query.Next;
end;

donde XXX será Integer, String, Boolean, etc, dependiendo del tipo de datos del campo.

// Saludos

cbrrr 07-06-2004 22:33:04

Podria ser algo así......

Código Delphi [-]
 var
   i: integer;
 begin
   i := 0; // inicializamos variable  
   Query.SQL.Clear;
  Query.SQL.Add('select * from tabla');
  Query.SQL.Add('WHERE id > 6');
  try
    Query.Open;
    if not Query.IsNull then
      i := Query.FieldByName('MiCampo').AsInteger;
  except
    // control de error en la sentencia SQL
  end;
end;

azaagh 07-06-2004 22:36:14

mis dudas estan resueltas (al menos en esto) :D

gracias


La franja horaria es GMT +2. Ahora son las 09:02:22.

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