Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   Incrementar el id del detalle en master/detail... (https://www.clubdelphi.com/foros/showthread.php?t=33411)

Arturo 05-07-2006 23:58:26

Incrementar el id del detalle en master/detail...
 
saludos
como puedo obtener el valor de un campo pero del componentes clientdataset, con la finalidad de incrementar en uno a un campo llamado renglon de una tabla detalle, es decir estoy trabajando con un master/detail
(requisicion y requisicion_detalle) y para la tabla detalle en el evento onnewrecord le paso el valor id del master al detalle, luego hago una sentencia obteniendo el maximo del campo renglon para incrementarle uno.

Código:

el campo renglon solo lo uso para identificacion de cuantos registros llevo por ejemplo:
requision_det
ID  DET_RENGLON  cant    Id_articulo
1    1                    2          2004-12
1    2                    5          2004-11

este es mi sql
Código PHP:

SqlQuery.sql.Add('select max(REQ_DET_RENGLON) from requision_det where REQ_DET_ID=:Numero');
...
Pero con esto obtengo el valor de la tabla no del ClientDatasetes decir un numero antes por que estan en memoria y con la sentencia hace el select del que ya esta en la base grabado

Uso dbexpress, SqlQuery, datasetprovider, clientdataset, mysql
Y los incrementos tengo un sqlquery q- le voy agregando la consulta segun se vaya necesitando.

Gracias

nemesio 06-07-2006 00:11:37

La propiedad RecordCount del Query te da la cantidad de Items que tienes, si le agregas uno obtendrás el Número que deseas.

Arturo 07-07-2006 19:24:09

Muy bien tip usando recordcount pero hay un problema si por ejemplo yo tengo los registros 1,2,3 y borro el 2 al hacer un recordcount me regresa que tengo solo 2 registros y le aumento uno me da el 3 que ya esta registrado el 3 esoy refiriendo al componte clientdataset.

entonces para esto agre las siguientes lineas pero al agregar un registro me pide que del anterior regsitro ingrese el id del articulo cuando ya esta ingresado.

Código PHP:

intUltimo:=CDSreqDet.RecordCount;
 If 
intUltimo=0 then
   intUltimo
:=1
    
else begin
     intUltimo
:=intUltimo 1;
     if 
not CDSreqDet.Locate('REQ_DET_RENGLON'intUltimo, [] ) then  aqui
       CDSreqDetREQ_DET_RENGLON
.Value:=intUltimo
      
else
        if 
intUltimoCDSreqDetREQ_DET_RENGLON.Value then
            intUltimo
:=intUltimo+1;
     
end
 
end;
    
CDSreqDetREQ_DET_RENGLON.Value:=intUltimo 

en pocas palabras si tengo ya el registro 3 el siguiente es el 4.
gracias, espero haberme explicado, ya que me da ese error, algun otro tip


La franja horaria es GMT +2. Ahora son las 14:25:25.

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