Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2004
azaagh azaagh is offline
Miembro
 
Registrado: jun 2004
Posts: 34
Poder: 0
azaagh Va por buen camino
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!!

PD: supongo que son dudas muy basicas, pero realmente se poco de delphi
explicarmelo lo mejor posible!!
Responder Con Cita
  #2  
Antiguo 07-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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 = ersona_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
Responder Con Cita
  #3  
Antiguo 07-06-2004
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
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
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #4  
Antiguo 07-06-2004
azaagh azaagh is offline
Miembro
 
Registrado: jun 2004
Posts: 34
Poder: 0
azaagh Va por buen camino
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
Responder Con Cita
  #5  
Antiguo 07-06-2004
Avatar de cbrrr
cbrrr cbrrr is offline
Miembro
 
Registrado: jun 2004
Posts: 57
Poder: 21
cbrrr Va por buen camino
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 = aram';
 .....
 
 //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
__________________
Si no tienes algo que decir más importante que el silencio, cállate
Responder Con Cita
  #6  
Antiguo 07-06-2004
azaagh azaagh is offline
Miembro
 
Registrado: jun 2004
Posts: 34
Poder: 0
azaagh Va por buen camino
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!! menudo coñazo soy!
Responder Con Cita
  #7  
Antiguo 07-06-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #8  
Antiguo 07-06-2004
Avatar de cbrrr
cbrrr cbrrr is offline
Miembro
 
Registrado: jun 2004
Posts: 57
Poder: 21
cbrrr Va por buen camino
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;
__________________
Si no tienes algo que decir más importante que el silencio, cállate
Responder Con Cita
  #9  
Antiguo 07-06-2004
azaagh azaagh is offline
Miembro
 
Registrado: jun 2004
Posts: 34
Poder: 0
azaagh Va por buen camino
mis dudas estan resueltas (al menos en esto)

gracias
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 08:28:27.


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
Copyright 1996-2007 Club Delphi