* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

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.
Aprile 20, 2024, 12:26:15 am

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

483 Visitatori, 0 Utenti

Autore Topic: Firebird + Zeos  (Letto 26317 volte)

Serpente80

  • Newbie
  • *
  • Post: 27
  • Karma: +0/-0
Re:Firebird + Zeos
« Risposta #15 il: Febbraio 24, 2013, 05:21:32 pm »
Mica hai qualche esempio da mostrare ? Te ne sarei eternamente grato.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:Firebird + Zeos
« Risposta #16 il: Febbraio 24, 2013, 05:36:43 pm »
Serpente ma tu non vorrai vedere delle combobox all'interno della dbgrid tipo in access?! Cioè che grazie alle relazioni automaticamente ti imposta le combobox e via discorrendo?!
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Firebird + Zeos
« Risposta #17 il: Febbraio 24, 2013, 07:05:33 pm »
xinyiman... in Delphi quando dicevi che un campo era di lookup su di un'altra entità ti ti forniva la combobox ... sospetto che sia quello che sta chiedendo.
Data una DBGrid, impostati i campi di lookup, messi in relazione tra di loro:come mai non esce la combo di conseguenza?
Serpente.
Allora devi creare un campo "virtuale" nella tua DataSet.
Al wizard devi indicare che è un campo di Lookup.
Imposti le info che servono e ottieni il comportamento delle combo nel caso di campi di lookup.
(Visual Studio ... .Net? Se è .Net il papà di questo linguaggio è lo stesso di Delphi ... quindi il 90% delle cose sono simili, magari si ottengono con un giro del fumo diverso da quello in cui sei abituato).

Stilgar
« Ultima modifica: Febbraio 24, 2013, 07:08:18 pm da Stilgar »
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Serpente80

  • Newbie
  • *
  • Post: 27
  • Karma: +0/-0
Re:Firebird + Zeos
« Risposta #18 il: Febbraio 25, 2013, 11:15:12 am »
No, non parlavo del lookupcombobox.
Riformulo ...
Ho un DB con 3 tabelle: CLIENTI,ARTICOLI e SCHEDE.
La tabella schede deve "unire" gli ARTICOLI di un dato CLIENTE.
Ho questo form:

Posso gestire le 3 tabelle utilizzando una solo query/datasourse o me ne serve una per ogni tabella ?
C'è un modo "automatico" per far capire al DB che a quella SCHEDA deve associare un determinato cliente e tot articoli ?
« Ultima modifica: Febbraio 25, 2013, 11:54:22 am da Serpente80 »

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Firebird + Zeos
« Risposta #19 il: Febbraio 25, 2013, 11:44:38 am »
Se mi dai la struttura delle tabelle con le chiavi esterne ti posso aiutare.
Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Serpente80

  • Newbie
  • *
  • Post: 27
  • Karma: +0/-0
Re:Firebird + Zeos
« Risposta #20 il: Febbraio 25, 2013, 11:53:01 am »
Ecco:




Se non sono chiare te le rimando.

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Firebird + Zeos
« Risposta #21 il: Febbraio 25, 2013, 03:05:23 pm »
Bene ... nelle alter table hai i campi che devi impostare come chiavi di "match" tra le tabella slave (articoli e cliente) alla master (scheda).
Solo che devi "girare" il rapporto.

Quindi per fare un esempio:
Imposti schede come master della clienti.
Imposti Schede.IDCliente come campo di riferimento da mettere in relazione Cliente.IDDCliente.
Prova e fammi sapere.
Stilgar
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Firebird + Zeos
« Risposta #22 il: Febbraio 25, 2013, 03:40:18 pm »
c'è qualcosa che non mi convince tra la gui e la definizione delle tabelle

Da quello che vedo, la tabella SCHEDE ha una relazione 1:1 sia con CLIENTI che con ARTICOLI (infatti la PK di SCHEDE è IDSCHEDE).

Nell'immagine del form però c'è una griglia e quando leggo "La tabella schede deve "unire" gli ARTICOLI di un dato CLIENTE" mi viene da pensare che in realtà la relazione tra SCHEDE e ARTICOLI dovrebbe essere 1:N.
In questo caso la PK di SCHEDE dovrebbe essere IDSCHEDE + IDARTICOLO.

Le intenzioni potrebbero anche essere altre ma se si vuole che un IDSCHEDE rappresenti un legame con tutti gli articoli secondo me bisogna aggiungere IDARTICOLO alla PK
Imagination is more important than knowledge (A.Einstein)

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Firebird + Zeos
« Risposta #23 il: Febbraio 25, 2013, 04:18:24 pm »
nomore, schede è la rappresentazione di una relazione n a m con attributi.
Nulla di assurdo ;)
IDScheda è una chiave artificiale e non naturale ;)
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Serpente80

  • Newbie
  • *
  • Post: 27
  • Karma: +0/-0
Re:Firebird + Zeos
« Risposta #24 il: Febbraio 25, 2013, 04:26:41 pm »
State parlando arabo  :'(

Stilgar

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2382
  • Karma: +10/-0
Re:Firebird + Zeos
« Risposta #25 il: Febbraio 25, 2013, 04:45:12 pm »
albrulabtasa.  .... forse è più chiaro :D

Serpente. Allora la questione è semplice.
Vuoi legare una entità (tabella) ad un'altra.
Questo via DDL lo fai con i costrutti di foreign key.
Nel caso di rapporti 1 a N basta una semplice chiave esterna e la questione è terminata.
Nel caso di rapporti N a M devi appoggiarti ad una tabella di legame.
Nel tuo caso la tabella SCHEDE è la tabella di legame.
Questa contiene le chiavi esterne sulle entità di riferimento (CLIENTE E ARTICOLO).

La cosa non è sbagliata e nemmeno senza senso.
Un cliente può comperare più articoli.
Un articolo può essere comperato da più clienti.
A questa relazione intermedia metti altre infomazioni (N a M con attributi).

Stilgar
EDIT PS:
Le speculazioni che facevamo con Nomore sono legate alla chiave e agli indici, per questioni di velocità nelle ricerche e altre amenità che si possono considerare anche in un secondo momento.
Ri-Stilgar
« Ultima modifica: Febbraio 25, 2013, 04:47:07 pm da Stilgar »
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

Serpente80

  • Newbie
  • *
  • Post: 27
  • Karma: +0/-0
Re:Firebird + Zeos
« Risposta #26 il: Febbraio 25, 2013, 04:53:14 pm »
Spè, una cosa per volta  ;D
N ed M stanno per ?
Come rendo Master la tabella SCHEDE ?
Cosa dovrei modificare nel DB ?
Ve l'ho detto che non ho mai avuto a che fare seriamente coi DB relazionali  :(

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Firebird + Zeos
« Risposta #27 il: Febbraio 25, 2013, 05:22:35 pm »
nomore, schede è la rappresentazione di una relazione n a m con attributi.
Nulla di assurdo ;)
IDScheda è una chiave artificiale e non naturale ;)

nel database l'intenzione sembra quella ma la gui, d'altro canto, mi sembra che nasca con un'altra idea
potrebbe essere se nell'immagine del form, i campi DATA e CLIENTE, quelli fuori dalla griglia in realtà non sono campi ma semplici TEdit da usare come filtri di ricerca per farci una select

poi una relazione N:M non dovrebbe permettere l'esistenza di situazioni ambigue tipo

SchedaClienteArticoloDataNote
1758GOLF01/01/2013nota 1
2758GOLF01/01/2013nota 2
3758GOLF01/01/2013nota 1

ok, è illogico caricare come sopra, ma è possibile, quindi: se vengono caricati record così, cosa ci si fa? :)

@Serpente
scusa la curiosità, ma cosa dovresti rappresentare con la tabella SCHEDE?
Imagination is more important than knowledge (A.Einstein)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2870
  • Karma: +20/-4
Re:Firebird + Zeos
« Risposta #28 il: Febbraio 25, 2013, 05:27:09 pm »
Spè, una cosa per volta  ;D
N ed M stanno per ?
Come rendo Master la tabella SCHEDE ?
Cosa dovrei modificare nel DB ?
Ve l'ho detto che non ho mai avuto a che fare seriamente coi DB relazionali  :(

anche tu una cosa per volta :D
come dicevo nell'altro post, scpiegaci meglio cosa vuoi fare con SCHEDE
Imagination is more important than knowledge (A.Einstein)

Serpente80

  • Newbie
  • *
  • Post: 27
  • Karma: +0/-0
Re:Firebird + Zeos
« Risposta #29 il: Febbraio 25, 2013, 05:31:27 pm »
Come dicevo,
Il form SCHEDA deve contenere la data dell'ordine, le note, i dati del cliente e gli articoli nella dbgrid.
Ma non date troppo retta alla struttura del mio DB, che potrei aver cannato totalmente.

 

Recenti

How To

Utenti
  • Utenti in totale: 785
  • Latest: gmax
Stats
  • Post in totale: 18772
  • Topic in totale: 2233
  • Online Today: 488
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 483
Total: 483

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.