* * * *

Privacy Policy

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Luglio 10, 2020, 08:39:17 am

Inserisci il nome utente, la password e la durata della sessione.

23 Visitatori, 0 Utenti

Autore Topic: MYSQL tabella molti a molti  (Letto 7132 volte)

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
MYSQL tabella molti a molti
« il: Luglio 28, 2016, 09:18:12 am »
Ciao a tutti,è un po' che non mi faccio vivo ;D
volevo capire una cosa
sto usando zeosdb e mysql, ho 3 tabelle (tabella Output, Tabella Programma, Tabella OutProgramma,  tutte con proprietà CachedUpdate impostate a TRUE) la tabella OutProgramma è una tabella con relazione molti a molti, ovvero dovrebbe avere al suo interno le chiavi primarie della TABELLA Output e della TABELLA Programma.(il mio intento è quello di attivare degli output in base al programma scelto)
Le tabelle sono ovviamente collegate alle rispettive ZTable di Zeos, inoltre la tabella OutProgramma ha un relazione Master/detail con la tabella Programma di modo da poter visualizzare gli output in una dbgrid inerenti a quel solo programma e ovviamente aggiungerne o toglierne)
Per salvare il tutto prima eseguo l'applyupdate sulla tabella programmi e poi sulla tabella OutProgramma ma su quest'ultima ricevo l'errore da parte del db  che dice che la chiave primaria nella tabella OutProgramma non può essere nulla.
Questo avviene solo in fase di primo inserimento quando non esiste ancora l'indice della Tabella Programma. Ma non dovrebbe essere inserito in automatico da ZEOS?
Su di un altro programma ho fatto la stessa cosa e non mi ha dato problemi, ho cercato nelle varie impostazioni se ho settato qualcosa in modo doverso ma non riesco proprio a capire dove sta la differenza.
Spero di essermi spiegato

Grazie a tutti come sempre
Diego

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 2865
  • Karma: +9/-0
Re:MYSQL tabella molti a molti
« Risposta #1 il: Luglio 28, 2016, 09:31:59 am »
Domanda stupida. Come fai l'inserimento?
Ieri è passato, domani è futuro, oggi è un dono...

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #2 il: Luglio 28, 2016, 10:47:04 am »
che fosse stupida non dubitavo  ;D
uso l'insert, poi inserisco il valore nel campo riferito all'output con il fieldbyname e poi faccio il post.
supponendo che il campo riferito al programma venga inserito automaticamente(in un altro programma che ho fatto me lo fa)
« Ultima modifica: Luglio 28, 2016, 10:52:24 am da Diego1981 »

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 2865
  • Karma: +9/-0
Re:MYSQL tabella molti a molti
« Risposta #3 il: Luglio 28, 2016, 11:55:59 am »
La domanda stupida era la mia e non la tua  ;)

Hai un esempio che replica l'errore in modo che possiamo darti una mano a capire come sistemare?
Ieri è passato, domani è futuro, oggi è un dono...

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #4 il: Luglio 28, 2016, 12:41:38 pm »
come posso fare a mostrarti qualcosa, essendo tutti componenti visuali non ho codice da mostrarti a parte quelle due righe che ti ho scritto prima :-\

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 2865
  • Karma: +9/-0
Re:MYSQL tabella molti a molti
« Risposta #5 il: Luglio 28, 2016, 10:05:15 pm »
La struttura delle tabelle?
Ieri è passato, domani è futuro, oggi è un dono...

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #6 il: Luglio 29, 2016, 08:06:05 am »
può andare bene una parte del diagramma EER?

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2284
  • Karma: +10/-2
Re:MYSQL tabella molti a molti
« Risposta #7 il: Luglio 29, 2016, 10:06:06 am »
che fosse stupida non dubitavo  ;D
uso l'insert, poi inserisco il valore nel campo riferito all'output con il fieldbyname e poi faccio il post.
supponendo che il campo riferito al programma venga inserito automaticamente(in un altro programma che ho fatto me lo fa)

sicuro che nell'altro programma non ci sia un evento tipo OnInsert dove imposti il valore del campo?
Imagination is more important than knowledge (A.Einstein)

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #8 il: Luglio 29, 2016, 10:45:43 pm »
per un attimo ho temuto il peggio  ;D ;D ;D ;D (una figuraccia)
no nell'altro programma non ho inserito nessun evento nelle ztable.
Non riesco proprio a capire la differenza tra il programma che funziona e questo.
Anche nell'altro programma ho inserito la funzione Master/Detail e credo che sia proprio questo a far si che non ci sia bisogno di utilizzare nessun evento per l'inserimento dell'indice della tabella programma purchè l'applyupdate venga prima applicato su quella tabella...almeno penso


SB

  • Scrittore
  • Full Member
  • *****
  • Post: 215
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #9 il: Agosto 01, 2016, 08:02:21 am »
Ciao a tutti,è un po' che non mi faccio vivo ;D
volevo capire una cosa
sto usando zeosdb e mysql, ho 3 tabelle (tabella Output, Tabella Programma, Tabella OutProgramma,  tutte con proprietà CachedUpdate impostate a TRUE) la tabella OutProgramma è una tabella con relazione molti a molti, ovvero dovrebbe avere al suo interno le chiavi primarie della TABELLA Output e della TABELLA Programma.(il mio intento è quello di attivare degli output in base al programma scelto)
Le tabelle sono ovviamente collegate alle rispettive ZTable di Zeos, inoltre la tabella OutProgramma ha un relazione Master/detail con la tabella Programma di modo da poter visualizzare gli output in una dbgrid inerenti a quel solo programma e ovviamente aggiungerne o toglierne)
Per salvare il tutto prima eseguo l'applyupdate sulla tabella programmi e poi sulla tabella OutProgramma ma su quest'ultima ricevo l'errore da parte del db  che dice che la chiave primaria nella tabella OutProgramma non può essere nulla.
Questo avviene solo in fase di primo inserimento quando non esiste ancora l'indice della Tabella Programma. Ma non dovrebbe essere inserito in automatico da ZEOS?
Su di un altro programma ho fatto la stessa cosa e non mi ha dato problemi, ho cercato nelle varie impostazioni se ho settato qualcosa in modo doverso ma non riesco proprio a capire dove sta la differenza.
Spero di essermi spiegato

Grazie a tutti come sempre
Diego

Prima di scrivere nella tabella OutProgramma ti sei preoccupato di salvare il record nella tabella Output? Altrimenti per forza ti dà un errore di chiave primaria mancante...

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #10 il: Agosto 04, 2016, 07:25:14 am »
Ciao SB
si, prima eseguo l'applyupdate sulla tabella programma e poi sull'output programma.
grazie

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #11 il: Agosto 05, 2016, 11:31:16 am »
Ciao ragazzi
visto che potrebbe essere utile a qualcun'altro, forse ho trovato la differenza e anche un articolo sul sito zeos (http://zeoslib.sourceforge.net/viewtopic.php?t=1269)
La differenza tra il programma che mi funziona e questo che non funziona sta nel fatto che la primary key in quello che funzione NON è in autoincrement mentre in questo che non funziona si e leggendo dall'articolo sembra che questo crei problemi

buona giornata
Diego

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 2865
  • Karma: +9/-0
Re:MYSQL tabella molti a molti
« Risposta #12 il: Agosto 05, 2016, 11:32:47 am »
Ciao ragazzi
visto che potrebbe essere utile a qualcun'altro, forse ho trovato la differenza e anche un articolo sul sito zeos (http://zeoslib.sourceforge.net/viewtopic.php?t=1269)
La differenza tra il programma che mi funziona e questo che non funziona sta nel fatto che la primary key in quello che funzione NON è in autoincrement mentre in questo che non funziona si e leggendo dall'articolo sembra che questo crei problemi

buona giornata
Diego

Buono a sapersi per il futuro. Grazie
Ieri è passato, domani è futuro, oggi è un dono...

SB

  • Scrittore
  • Full Member
  • *****
  • Post: 215
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #13 il: Agosto 07, 2016, 08:17:50 am »
Ciao ragazzi
visto che potrebbe essere utile a qualcun'altro, forse ho trovato la differenza e anche un articolo sul sito zeos (http://zeoslib.sourceforge.net/viewtopic.php?t=1269)
La differenza tra il programma che mi funziona e questo che non funziona sta nel fatto che la primary key in quello che funzione NON è in autoincrement mentre in questo che non funziona si e leggendo dall'articolo sembra che questo crei problemi

buona giornata
Diego

Basandomi su quello che hai scritto (e qualche dettaglio in più sarebbe stato utile) ribadisco che il problema, secondo me, sta nell'ordine di aggiornamento delle tabelle (come suggerito anche nel post da te citato)
Il discorso della primary key non è determinante e mette solo in evidenza il problema

Diego1981

  • Full Member
  • ***
  • Post: 152
  • Karma: +0/-0
Re:MYSQL tabella molti a molti
« Risposta #14 il: Agosto 08, 2016, 11:32:36 am »
Ciao SB
nn hai tutti i torti, però se inserisco la primary key nella tabella master (dopo averla rilevata dal DB con il valore di Auto_increment) non ho problemi mentre se applico solamente l' applyupdate (prima sulla tabella master e poi su quella detail/salve) non va ad inserire tale valore e ritorna l'errore di mancato inserimente della chiave esterna.
Spero di essere stato un po' più chiaro
grazie

 

Recenti

How To

Utenti
  • Utenti in totale: 676
  • Latest: Twowal
Stats
  • Post in totale: 13754
  • Topic in totale: 1726
  • Online Today: 39
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 23
Total: 23

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.