Cannot locate record in delphi ADO query
        Posted  
        
            by 
                Danatela
            
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Danatela
        
        
        
        Published on 2014-05-29T03:12:36Z
        Indexed on 
            2014/05/29
            3:26 UTC
        
        
        Read the original article
        Hit count: 207
        
I can't locate any record in TADOQuery using PK. First, I was trying to use standard Locate method:
PPUQuery.Locate('ID', SpPlansQuery['PPONREC'], []);
It always returns False, but manual search (passing the whole query matching ID with given PPONREC which is really slow) finds the desired row. I tried using loPartialKey and switched CursorLocation of query to clUseServer, but it didn't help.
Next, I tried to filter my PPUQuery:
PPUQuery.Filter := 'ID = ' + VarToStr(SpPlansQuery['PPONREC']);
PPUQuery.Filtered := True;
PPUQuery.First;
But after that the PPUQuery.Eof is True and PPUQuery.RecordCount equals 0.
Underlying database is Oracle 9 and the ID is of type INTEGER and is PK of table TPORDER_CMK. PPUQuery.SQL is:
SELECT tp.*, la.*, lm.*, ld.*, ld1.*, to_cmk.*
  FROM ppu_plan.tporder_cmk tp
       JOIN PPU_PLAN.LARTICLES la
          ON TP.ARTICLE = LA.ID
       JOIN PPU_PLAN.LMATERIAL lm
          ON TP.MATERIAL = lm.id
       JOIN PPU_PLAN.LCADEP ld
          ON TP.CADEP = LD.ID
       JOIN PPU_PLAN.LCADEP ld1
          ON TP.PRODUCER = LD1.ID
       JOIN PPU_PLAN.TORDER_CMK to_cmk
          ON TP.order_id=TO_cmk.ID
WHERE TP.PLAN_ID = :pplan_id
What should I try next and how to solve this problem?
© Stack Overflow or respective owner