#4 Funzionamento delle link

Bug_report
open
7
2007-10-24
2007-10-24
Fletcher Lynd
No

Ciao,
Vorrei sottoporre quello che secondo me è un malfunzionamento nella logica delle link.
Scrivo in italiano perché il discorso è un po' complicato.
In pratica la situazione è questa:

- tab 1 (risorse)
- tab 2 (contratti)

Nell'esempio allegato evidenzierei i record relativi alla risorsa 58:

tab 1 :
id 58

tab 2 :
id 58 data_stipula 20070101 id_contratto 2
id 58 data_stipula 20070701 id_contratto 1

la tab 2 è linkata alla tab 1 con chiave data_stipula descending e solo con id_risorsa nelle cnd di link, per cui mi aspetterei che venga sempre e comunque recuperato il secondo record della tab 2.

Nel programma è presente un combo di selezione 'id_contratto', che agisce sul range nel campo id_contratto della tabella linkata.

Selezionando uno dei due valori interessati (1 o 2, nell'esempio DIP e COPRO), la link recupera l'uno o l'altro dei due record, anziché sempre lo stesso.

Volevo allegare una piccola applicazione di esempio, ma il limite di 256KB in upload mi rende la cosa impossibile.

Attendo fiducioso.

Fletcher.

Discussion

  • Fletcher  Lynd
    Fletcher Lynd
    2007-10-24

    Logged In: YES
    user_id=1919678
    Originator: YES

    Chiedo scusa, a forza di provare ho fatto un po' confusione con i record, i dati riportati sopra si riferiscono ai record associati alla risorsa 195 e la seconda data è 20070601.
    Il risultato comunque è lo stesso.

     
  • Logged In: YES
    user_id=1877916
    Originator: NO

    Thank you for your post.
    Submitted informations will be processed as soon as possible.

    From now on you can track here your request status.

    --
    Janox Support Team

     
  • Logged In: YES
    user_id=1877916
    Originator: NO

    Il problema è stato verificato: esiste, effettivamente, una casistica di comportamenti "anomali" delle LINK.

    L'anomalia si presenta in questa situazione:
    --------------------------------------------
    I criteri di una LINK non restituiscono un record unico ma (come nel caso segnalato) una serie di record ordinati;
    si impostano dei criteri di RANGE aggiuntivi sui campi linkati.

    Il comportamento aspettato sarebbe:
    -----------------------------------
    Il primo record (per ordinamento) ritornato dalla LINK viene aggiunto al record della main table;
    tutto il record (così formato) viene filtrato dai criteri di RANGE e aggiunto o meno al recordset.

    Il comportamento manifesto è:
    -----------------------------
    I criteri di LINK e di RANGE vengono passati indistintamente al database;
    (CORRETTO) nel caso che nessun record soddisfi i criteri l'intero record (della main table) viene escluso dal recordset;
    (SBAGLIATO) nel caso che uno o più record soddisfino i criteri viene riportato il primo record nel recordset, ma il primo per i criteri di LINK E (AND) per i criteri di RANGE.

    Analisi di soluzione:
    ---------------------
    Il problema è, per la sua natura intima con il funzionamento di base delle classi, molto delicato e andrà discusso in fase di analisi.

    Possibili work-around:
    ----------------------
    1. Utilizzare un calcolato dipendente dai valori dei campi linkati per eseguire le RANGE.
    2. (Solo in caso di esecuzioni) Spostare le logiche di filtraggio dalle RANGE alle istruzioni eseguite sul recordset.

     
    • priority: 5 --> 7