Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    [delphi7] master detail query

    salve

    so bene come relazionare due tabelle, ma non due query....
    probabilmente il tutto si imposta dalla proprietà sql...
    in sostanza io ho due tabelle paradox una ordine e l'altra clienti, devo visualizzare i record della query ordini il cui ID_codicecliente è presente nel campo ID_codicecliente della query clienti....!
    la relazione è uno a molti....

    come si imposta da codice la relazione master/detail di una query?


    grazie mille
    Nique

  2. #2
    Aspetta un attimo

  3. #3
    nella query testata metti qualcosa di simile a:
    codice:
    Select
      TOrdin03."NUMERO",
      TOrdin03."DITTA",
      TOrdin03."RAGSOC",
      TOrdin03."PEZZI",
      TOrdin03."IMPORTO",
    From "C:\Programmi\Svemu\EasyFarm\Archivi\0001\TOrdin03.DBF"
    As TOrdin03
    e nel dettaglio inserisci:
    codice:
    Select
      ROrdin03."NUMORD",
      ROrdin03."DITTA",
      ROrdin03."MINSAN10",
      ROrdin03."DESART",
      ROrdin03."QUANTITA",
      ROrdin03."ALIVA",
      ROrdin03."PREZZO",
    From "C:\Programmi\Svemu\EasyFarm\Archivi\0001\ROrdin03.DBF"
    As ROrdin03
    Where
      "C:\Programmi\Svemu\EasyFarm\Archivi\0001\ROrdin03.DBF"."NUMORD" =:"NUMERO" AND
      "C:\Programmi\Svemu\EasyFarm\Archivi\0001\ROrdin03.DBF"."DITTA" =:"DITTA"
    e nella query dettaglio metti come DataSource il datasource del master che sai già fare.

    c'è anche un'altro modo per effettuare una query che ti unisce master e detail e li vedi come un'unica tabella, se vuoi ti vaccio un esempio.

    Vedi che delphi ha un'autocomposizione per queste cose e precisamente in "DataBase > From Wizard", scegli query e ti crea il codice che copi e incolli come ho fatto io :bubu:


    Ciao signorina.

    PS:
    Nei ringraziamenti del programma poi inserici anche me e Marco.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Si poteva risolvere anche impostando lo statement SQL della query in questo modo.

    codice:
    SELECT AliasTabella1.*, AliasTabella2.*
    FROM NomeTabella1 AliasTabella1 INNER JOIN NomeTabella2 AliasTabella2
    ON (NomeTabella1.ID = NomeTabella2.IDESTERNO);
    In poche parole, INNER JOIN permette di riunire due tabelle in una specificando i campi che devono corrispondere per costruire il record. I campi che dovranno essere inclusi nella tabella generata vengono specificati appena dopo l'istruzione SELECT.
    E' possibile definire alias per le tabelle, cioè "battezzare" le tabelle con nomi diversi da quelli effettivi (magari "T" per testata e "D" per dettaglio, tanto per scrivere meno).

    Quando possibile, è meglio evitare le relazioni Master/Detail, specialmente in questi casi risolvibili tramite SQL, solo per questioni di velocità di esecuzione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5

    [delphi7] master detail query

    Ragazzi ma siete i miei angeli custode.....

    che bravi......mammamia!!!!

    ora provo tutto..

    CERTO CHE LI METTO...I RINGRAZIAMENTI....

    UN MEGA BACIOS AD EMTRAMBI......

    Monique

  6. #6

    [delphi7] master detail query

    Salve.......:=)

    per costruire la stringa correttamente.....ho provato a visualizzare
    un showmessage...e mi sembra corretta la sintassi.....ma mi dice che
    faccio un errore....invalide use of keyword, token pazienti...

    prova:= ('Select * from pazienti INNERJOIN pazienti ON pazienti."Codice Cliente" = pazienti."Codice Cliente"');


    Facendo una query con access..la sintassi sql era piu o meno come questa qui sopra solo che al posto di innerjoin c'era leftjoin, nel mio caso dovrebbe andar bene innerjoin perchè io specifico l' sql direttamente nella table details....... La tabella master e details si chiamano nello stesso modo ossia pazienti...non ho usato l'alias, anche se lo terrò presente....

    A proposito...ma in questo caso anche devo specificare nella proprietà datasource della query details il datasource master...altrimenti che ne sa che voglio collegare proprio quella tabella?

    grazies besos

    .....

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Il DataSource non deve essere impostato...ma non riesco proprio a capire come fai ad avere due tabelle con lo stesso nome!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8

    delphi7] master detail query

    ehh lo so...il database non l'ho fatto io....
    io sto facendo una piccola applicazione che ne completa una piu grande
    già in giro presso studi da parecchio....il database di questo programma è formato da 4 file paradox, ogni file è adibito a qualcosa, ma tutti con lo stesso nome perchè quando apro il principale mi si aprono anche gli altri file a lui collegati....

    ecco perchè hanno lo stesso nome....

    cmq ciao di nuovo e grazie

  9. #9

    delphi7] master detail query

    ok ho fatto come mi ha suggerito Daniele....non sapevo tra l'altro
    che tramite il wirzard potevo verificare la sintassi sql che è molto comoda.....
    e funzia...! vorrei chiedervi un altro suggerimento se non mi mandate a quel paese......

    con access se relaziono due tabelle, con una relazione uno a molti..
    visualizzo tutti i record della tabella secondaria....
    invece in delphi, nella grid,....visualizzo i record della tabella secondaria man mano che seleziono i record della tabella principale....
    c'è un modo per visualizzare come in access? senza cambiare le relazioni?


    grazies
    NIQUE

  10. #10
    Originariamente inviato da alka

    Quando possibile, è meglio evitare le relazioni Master/Detail, specialmente in questi casi risolvibili tramite SQL, solo per questioni di velocità di esecuzione.
    Da non dimenticare!
    Buona osservazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.