Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-01-2005
Delphos Delphos is offline
Miembro
 
Registrado: jun 2003
Ubicación: Valencia (España)
Posts: 45
Poder: 0
Delphos Va por buen camino
Consulta de FIBPlus

Hola Foro.

Alquien sabe como se hacen consultas con parametros con pFIBQuery, podrian poner un ejemplo completo para asi poder ver de paso el tema de las transacciones y demas ya que tampoco tengo muy claro el componente pFIBDataset y el pFIBTransaction.

Muchas gracias de antemano.

Salu2.

Última edición por Delphos fecha: 23-01-2005 a las 22:53:17.
Responder Con Cita
  #2  
Antiguo 24-01-2005
Sinaloense Sinaloense is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Poder: 21
Sinaloense Va por buen camino
El Sql Generator del query hace todo por ti, solo debes agregar el parámetor:

Por ejemplo:

Código:
SELECT
    FOLIO,
    FECHA,
    CORTE,
    TANQUE,
    FECHAHORA,
    COMBUSTIBLE,
    NUEVOESTADO
FROM
    DPVGCTAN 
WHERE FECHA=:FECHA
AND CORTE=:CORTE
Y en el código:

Código:
     if Tr_Cortes.InTransaccion then
         Tr_Cortes.Commit;
     Tr_Cortes.StartTransaccion; //Esta es la transacción:      
     QL_Corte_Tanque.Params[0].Value:=Fecha;
     QL_Corte_Tanque.Params[1].AsInteger:=Corte;
     QL_Corte_Tanque.ExecQuery;
     ..
     ..
    Tr_Cortes.commit;

Si te das cuenta no utilize el ql_Corte_Tanque.Close antes de darle valor a los parámetros, esto es porque la transacción no está activa, y si la transacción no esta activa tampoco lo está el Query.

Después de habierto el quiery puedes accesar a los campos de la mandera tradicional. con un FieldByName por ejemplo.

Recuerda que los querys de FibPlus son unidireccionales y de solo lectura, si necesitas algo más avanzado usa mejor un dataset, que en el caso funciona igual.


Suerte.
Responder Con Cita
  #3  
Antiguo 24-01-2005
Delphos Delphos is offline
Miembro
 
Registrado: jun 2003
Ubicación: Valencia (España)
Posts: 45
Poder: 0
Delphos Va por buen camino
El ejemplo de antes funciona de maravilla muchas gracias.

Esta consulta tambien funciona pero ¿Esta bien estructurada, no?.

Ejemplo:
Código:
 
    SQL:='INSERT INTO Horarios (Servicio,TiempoI,TiempoF,Horas) VALUES
            (:Serv,:TInicio,:TFinal,:THoras)';
    If pFIBTransaction1.InTransaction then
       pFIBTransaction1.Commit;
    pFIBDataSet1.Open;
    pFIBDataSet1.InsertSQL.Clear;
    pFIBDataSet1.SQLs.InsertSQL.Add(SQL);
    pFIBDataSet1.QInsert.ParamByName('Serv').AsString := txtServ.text;
    pFIBDataSet1.QInsert.ParamByName('TInicio').AsString := TI;
    pFIBDataSet1.QInsert.ParamByName('TFinal').AsString := TF;
    pFIBDataSet1.QInsert.ParamByName('THoras').AsString := THM;
    pFIBDataSet1.QInsert.ExecQuery;
    pFIBTransaction1.Commit;
    pFIBDataSet1.Close;
Un saludo.

Última edición por Delphos fecha: 03-02-2005 a las 23:57:21.
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 12:23:01.


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