Gambas-it

Programmazione => Progetti degli utenti => Topic aperto da: milio - 30 Ottobre 2011, 02:53:55

Titolo: Query creator
Inserito da: milio - 30 Ottobre 2011, 02:53:55
Stavo iniziando a fare un programmino per poter creare in modo grafico GridBox e alla fine mi e' venuto fuori un qualcosa che puo' essere utile a chi non mastica tanto di codice Sql.
Ho praticamente creato un Editor Sql grafico stile Access.
Per adesso sputa solo codice sql 'elementare' ma in futuro....

allego sorgenti e una piccola immagine dimostrativa.

 :ciao:

Titolo: Re: Query creator
Inserito da: Golia - 30 Ottobre 2011, 15:10:04
Come al solito ti superi  :2birre:
Molto utile grazie  :2birre: :2birre: facciamo 10 birre và!!  ;)
Titolo: Re: Query creator
Inserito da: milio - 31 Ottobre 2011, 18:02:32
Nuova release:

Aggiunto possibilità di dare un alias al field
Aggiunto inserimento di subquery all'interno di un where
Corretto bug su cancellazione join
Titolo: Re: Query creator
Inserito da: andy60 - 31 Ottobre 2011, 18:07:10
hai decisamente una marcia in piu', complimenti!!! :2birre: :2birre: :2birre: :2birre:
Titolo: Re: Query creator
Inserito da: md9327 - 01 Novembre 2011, 22:51:01
Ciao Milio!!!

Che dire, sei veramente forte!!!

Non ho ancora dato uno sguardo al codice, ma già lo screenshot rende l'idea di cosa hai fatto.
Come forse saprai, stò lavorando nella costruzione del progetto pgDesigner3, e già nelle versioni precedenti avevo inserito una sorta di utility che permetteva di costruire query (non come la tua), da cui estrapolare e creare viste per i progetti creati dal programma. Volevo potenziare il discorso, ma al momento non sono ancora arrivato all'implementazione nella nuova versione, e dato che hai già buttato giù una cosa simile, mi piacerebbe che tu potessi in qualche modo aiutarmi nell'integrare la funzionalità nel programma.
Inoltre, e la cosa mi sfizia assai, vedo che hai anche implementato la parte grafica, ovvero la possibilità di vedere graficamente gli oggetti (tabelle), con anche la possibilità (suppongo dallo screen) di interagire con questi oggetti.
In pgDesigner3 ho messo in piedi una libreria grafica, che utilizza Paint, e che fornisce generiche funzioni per costruire e disegnare oggetti su una DrawingArea. Tramite questa libreria, ho costruito delle classi che mi permettono, appunto, di creare forme ad-hoc per rappresentare oggetti di database (es. tabelle, viste, relazioni, ecc.). Vedo con piacere che tu hai in qualche modo costruito un qualche cosa del genere, e mi piacerebbe avere con te uno scambio di idee, e magari collaborare nello sviluppo del progetto.
Dato il poco tempo a mia disposizione, fare tutto da solo è impresa alquanto lunga, oltre al fatto che tutto scaturisce solo dalla mia testa, senza avere altri punti di vista.
Che ne dici, si può fare?
Per il momento vedo di dare un'occhiata al tuo codice, magari trovo spunti e/o migliorie da applicare al mio progetto.
Fammi sapere!!!
Titolo: Re: Query creator
Inserito da: milio - 02 Novembre 2011, 00:22:46
@Andy

Sempre gentilissimo... accetto volentieri le tue  :2birre: :)

@Md9327

Ciao Milio!!!

Che dire, sei veramente forte!!!

Non ho ancora dato uno sguardo al codice, ma già lo screenshot rende l'idea di cosa hai fatto.
Come forse saprai, stò lavorando nella costruzione del progetto pgDesigner3, e già nelle versioni precedenti avevo inserito una sorta di utility che permetteva di costruire query (non come la tua), da cui estrapolare e creare viste per i progetti creati dal programma. Volevo potenziare il discorso, ma al momento non sono ancora arrivato all'implementazione nella nuova versione, e dato che hai già buttato giù una cosa simile, mi piacerebbe che tu potessi in qualche modo aiutarmi nell'integrare la funzionalità nel programma.


Wow! sei proprio messo male se vieni a chiedermi aiuto a me... :)
Non so che dire... Io programmo 'd'istinto' non seguo tanto 'le regole di buona programmazione' (Ceskho ndr :) )


Inoltre, e la cosa mi sfizia assai, vedo che hai anche implementato la parte grafica, ovvero la possibilità di vedere graficamente gli oggetti (tabelle), con anche la possibilità (suppongo dallo screen) di interagire con questi oggetti.
In pgDesigner3 ho messo in piedi una libreria grafica, che utilizza Paint, e che fornisce generiche funzioni per costruire e disegnare oggetti su una DrawingArea. Tramite questa libreria, ho costruito delle classi che mi permettono, appunto, di creare forme ad-hoc per rappresentare oggetti di database (es. tabelle, viste, relazioni, ecc.). Vedo con piacere che tu hai in qualche modo costruito un qualche cosa del genere, e mi piacerebbe avere con te uno scambio di idee, e magari collaborare nello sviluppo del progetto.
Dato il poco tempo a mia disposizione, fare tutto da solo è impresa alquanto lunga, oltre al fatto che tutto scaturisce solo dalla mia testa, senza avere altri punti di vista.
Che ne dici, si può fare?

Io tutto quello che posso fare e' crearti qualche componente che interagisca con il tuo progetto...
Di grafica non ne uso mai: infatti il mio progetto si basa su oggetti standar quali pannel, button, label ecc... l'unica cosa che ho dovuto utilizzare per il collegamento delle join sono delle drawingarea che disegnano la linea, ma vengono anche loro ridimensionate allo spostamento delle tabelle collegate.



Per il momento vedo di dare un'occhiata al tuo codice, magari trovo spunti e/o migliorie da applicare al mio progetto.
Fammi sapere!!!

Sappi che il progetto l'ho buttato giu' alla 'carlona'... mi serviva un qualcosa per creare velocemente query da integrare al progetto di GridBox Creator...

Comunque le collaborazioni sono sempre ben accette.. :)

Titolo: Re: Query creator
Inserito da: andy60 - 02 Novembre 2011, 09:32:36
atmosfera di grande collaborazione, mi piace moltissimo, se posso , nei limiti delle mie capacità (basse) vorrei rendermi utile!!
Titolo: Re: Query creator
Inserito da: md9327 - 02 Novembre 2011, 16:06:45
Che sono messo male, a dirmelo sei il secondo, il primo sono io stesso che me lo dico...  ;D
Il programmare "d'istinto" non è tua peculiarità, anche io butto giù quello che ho in testa e ci lavoro direttamente sopra mano mano. Il mettere prima qualcosa su carta, o studiato prima mi viene a noia, oltre che mi porta fuori strada. E' ovvio che questo comporta molto più lavoro, ma ti fà conoscere meglio le cose, fronteggiandole e risolvendole al volo.
Inoltre, la "buona programmazione" è un concetto, ma difficilmente attuabile nella realtà. E poi dipende anche da gusti e opinioni personali, a mio avviso, e non si può decidere con una legge divina come scrivere un programma. Spesso e volentieri sei legato anche ad aspetti non dipendenti dalla tua volontà o dalle tue conoscenze. Un esempio è proprio Gambas, che non si può dire che sia un linguaggio perfetto, come anche altri più blasonati, per cui devi sottometterti a certe condizioni... Però mi piace anche per questo, perchè mi costringe a pensare a sotterfugi per raggiungere lo scopo, che magari sarebbe più semplice con un altro linguaggio.

Ad ogni modo...

Grazie a te ho potuto approfondire il discorso sui componenti, e l'avevo pure adottato, ma in questo progetto ho desiderio di mantenere raggruppato il codice, per cui...
Creare componenti, o comunque classi ad-hoc può essere un aiuto. In particolare avrei la necessità di integrare un oggetto che potesse permettere di interagire con un database. Magari l'integrazione con il programma si può vedere in seguito, ma lavere una form, o un pannello, che integrasse le funzionalità base per poter interrogare, creare query e/o modificare anche dati (se possibile), sarebbe una bella cosetta da aggiungere al programma. Io avevo già buttato giù qualcosa di funzionante, ma ha funzionalità limitate, e allo scopo di creare una vista integrando vari campi e/o tabelle da un db.
Se può interressarti, anche la libreria grafica che ho creato potrebbe essere appliata e perfezionata, e già un'idea o un concetto diverso dal mio potrebbe essere utile.
Per quanto possibile, nell'ultima versione che stò scrivendo, stò cercando di utilizzare logiche e codice il più avanzato possibile, e anche cercando di strutturare la cosa il più possibile vicino al concetto di oggetto. Non tanto perchè è bello, ma soprattutto per raggiungere le massime possibilità della nuova versione di Gambas3.

Detto questo, ho anche dato un'occhio al tio codice, e in effetti hai usato il sistema che avevo usato a suo tempo con la prima versione di pgDesigner. Ho poi abbandonato il discorso in quanto ho riscontrato alla lunga dei limiti, per cui sono ritornato alla grafica pure. Il fatto poi che in Gambas3 hanno finalmente apportato quei miglioramenti che mi aspettavo in questo ambito, mi hanno convinto e per cui ho intrapreso questa strada. Tieni conto che mi ero messo a studiare a fondo le OpenGL, iche poi ho abbandonato ma mi è servito un mucchio nello studio dei concetti di base della grafica pura.

Insomma, se hai modo, il tuo aiuto sarebbe un bel "aiuto" per me...

(e questo vale anche per andy...)  :D
Titolo: Re: Query creator
Inserito da: andy60 - 02 Novembre 2011, 20:27:16
compatibilmente con tutti i casini del periodo posso rendermi utile, non so a che ora, fatemi sapere cosa serve..
Titolo: Re: Query creator
Inserito da: milio - 03 Novembre 2011, 11:39:13
In particolare avrei la necessità di integrare un oggetto che potesse permettere di interagire con un database. Magari l'integrazione con il programma si può vedere in seguito, ma l'avere una form, o un pannello, che integrasse le funzionalità base per poter interrogare, creare query e/o modificare anche dati (se possibile), sarebbe una bella cosetta da aggiungere al programma. Io avevo già buttato giù qualcosa di funzionante, ma ha funzionalità limitate, e allo scopo di creare una vista integrando vari campi e/o tabelle da un db.

Allora continuo su questo progetto (anche perche' interessa anche a me). Potresti anche dare un occhio al progetto GridBox per la modifica di dati su db....

Intanto rilascio nuova release:

Aggiunto creazione Viste (si integrano nella query ma non vengono create sul db)
Corretto alcuni bug sul drag&drop
Aggiunto proprietà datatype in modo da avere delle join corrette.
Iniziato la costruzione di codice per l'ordinamento.

Titolo: Re: Query creator
Inserito da: andy60 - 03 Novembre 2011, 23:45:56
mi stai facendo pensare seriamente ad GAccess!! :P
Titolo: Re: Query creator
Inserito da: milio - 04 Novembre 2011, 00:04:47
Speriamo che non diventi una Ca-GAccess!  :rotfl:
Titolo: Re: Query creator
Inserito da: andy60 - 04 Novembre 2011, 08:44:01
Speriamo che non diventi una Ca-GAccess!  :rotfl:

 :rotfl: :rotfl: :rotfl: :rotfl:
Titolo: Re: Query creator
Inserito da: md9327 - 04 Novembre 2011, 12:15:04
Ehehehehe....

Scherzi a parte, due info, per me e per te, tanto per avere un'idea:

- database indipendente? Ovvero usarlo per pgsql, mysql, sqlite e odbc...
- collegamento al database esterno all'oggetto, in modo da dividere le attività e le logiche. In questo caso tutta la logica di connessione può essere fatta tramite apposita libreria, o una personalizzata a seconda delle proprie esigenze. Alla classe verrà passato solo l'oggetto Connection, o subclass.
- funzionalità di estrazione di una stringa con la query completa, così da utilizzarla per creare eventuali viste
- funzionalità di estrazione di liste degli elementi, ovvero le classiche <fields>, <from>, <where>, <having>

Quanto sopra potrebbe essere utile per integrare il componente in qualsiasi progetto, almeno era quello che avevo in mente...

Spero di averti dato qualche spunto...  :D
Titolo: Re: Query creator
Inserito da: milio - 07 Novembre 2011, 23:19:32
@Md####

E' praticamente quello che sto realizzando :)


Nuova release:

Aggiunto funzioni per l'Order By.
Aggiunto tasto per 'Quotare' la query in modo da inserirla agevolmente in codice gambas.
Aggiunto anteprima per testare la query (ovviamente con l'aiuto di GridBox  ;) ).

Titolo: Re: Query creator
Inserito da: andy60 - 08 Novembre 2011, 06:55:20
@Md####

E' praticamente quello che sto realizzando :)


Nuova release:

Aggiunto funzioni per l'Order By.
Aggiunto tasto per 'Quotare' la query in modo da inserirla agevolmente in codice gambas.
Aggiunto anteprima per testare la query (ovviamente con l'aiuto di GridBox  ;) ).



scarico e provo!! :2birre:
Titolo: Re: Query creator
Inserito da: milio - 08 Novembre 2011, 16:06:26
Nuova release:

Aggiunto creazione classe Result avanzata.

Questo era un mio vecchio lavoro che mi e' sembrato capitar a fagiolo per questo progetto.
Esso va a creare una classe 'di contorno' di un result di una query integrando le proprietà con i nomi dei campi, gestione eventi al cambio del record, proprietà List per eventuali miei SearchBox e altro ancora...

E naturalmente se vi viene in mente altro si puo' aggiungere senza problemi :)

Titolo: Re: Query creator
Inserito da: Ceskho - 08 Novembre 2011, 16:53:00
Nuova release:

Aggiunto creazione classe Result avanzata.

Questo era un mio vecchio lavoro che mi e' sembrato capitar a fagiolo per questo progetto.
Esso va a creare una classe 'di contorno' di un result di una query integrando le proprietà con i nomi dei campi, gestione eventi al cambio del record, proprietà List per eventuali miei SearchBox e altro ancora...

E naturalmente se vi viene in mente altro si puo' aggiungere senza problemi :)



Su questa cosa mi hai fregato l'idea. Stavo per iniziare un progettino simile da portare avanti nel tempo libero ma a quanto pare non se ne sente più il bisogno...:)
Dedicherò le mie forze ad altro
Titolo: Re: Query creator
Inserito da: andy60 - 08 Novembre 2011, 21:31:36
Nuova release:

Aggiunto creazione classe Result avanzata.

Questo era un mio vecchio lavoro che mi e' sembrato capitar a fagiolo per questo progetto.
Esso va a creare una classe 'di contorno' di un result di una query integrando le proprietà con i nomi dei campi, gestione eventi al cambio del record, proprietà List per eventuali miei SearchBox e altro ancora...

E naturalmente se vi viene in mente altro si puo' aggiungere senza problemi :)



Su questa cosa mi hai fregato l'idea. Stavo per iniziare un progettino simile da portare avanti nel tempo libero ma a quanto pare non se ne sente più il bisogno...:)
Dedicherò le mie forse ad altro


alla convention? :2birre:
Titolo: Re: Query creator
Inserito da: Ceskho - 09 Novembre 2011, 09:47:05
Nuova release:

Aggiunto creazione classe Result avanzata.

Questo era un mio vecchio lavoro che mi e' sembrato capitar a fagiolo per questo progetto.
Esso va a creare una classe 'di contorno' di un result di una query integrando le proprietà con i nomi dei campi, gestione eventi al cambio del record, proprietà List per eventuali miei SearchBox e altro ancora...

E naturalmente se vi viene in mente altro si puo' aggiungere senza problemi :)



Su questa cosa mi hai fregato l'idea. Stavo per iniziare un progettino simile da portare avanti nel tempo libero ma a quanto pare non se ne sente più il bisogno...:)
Dedicherò le mie forse ad altro


alla convention? :2birre:

Alla mia ragazza :rotfl:
Titolo: Re: Query creator
Inserito da: andy60 - 09 Novembre 2011, 17:41:20
sacrosanto... :P
Titolo: Re: Query creator
Inserito da: milio - 24 Novembre 2011, 11:10:15
Nuova release:

- Aggiunto Tasto e funzioni per il Group by
- Aggiunto GridBox Creator

Fatemi sapere... :)
Titolo: Re: Query creator
Inserito da: milio - 24 Novembre 2011, 15:44:45
Nuova release:

-Corretto alcuni bug sulla visualizzazione della query
-Corretto bug su group by di SubQuery
-Ridisegnato il menu' della connessione: adesso e' inglobato nel toolpanel... mi sembra piu' pratico.
-Corretto join tra campi numerici. Ho fatto in modo di fare join solo su tipo campi compatibili
Titolo: Re: Query creator
Inserito da: milio - 24 Novembre 2011, 17:06:35
Piccola query per recuperare il massimo valore di ogni articolo nei vari listini...

Figura self5 in progettazione

Figura self6 risultato

Inizia a darmi delle soddisfazioni!  :2birre:
Titolo: Re: Query creator
Inserito da: Golia - 24 Novembre 2011, 23:44:52
Uno spettacolo!!  :2birre: :2birre:
Titolo: Re: Query creator
Inserito da: milio - 24 Novembre 2011, 23:52:35
Grazie al BugBuster Golia ho risolto un baco sul GridBox creator con connessione di tipo Sqlite...

grazie per la tua sempre attiva presenza  :ok:  :2birre:
Titolo: Re: Query creator
Inserito da: andy60 - 26 Novembre 2011, 07:59:56
Siamo molto vicini a fare un dbaccess style, manca poco,comincio le forms? :P
Titolo: Re: Query creator
Inserito da: md9327 - 27 Novembre 2011, 11:26:15
Stò lavorando sulla base di pgDesigner ma, appena ho un attimo, vedo di studiarmi meglio la classe di milio.

A proposito, milio, se hai tempo prova a dare un'occhio al query manager che avevo implementato in pgDesigner2... Non c'è la parte grafica, ma le funzioni di base ci sono quasi tutte.
Titolo: Re: Query creator
Inserito da: andy60 - 04 Dicembre 2011, 11:08:43
@milio

Premetto che non ho approfondito: sarebbe fantaastico se implementassi anche le query di creazione tabella, in modo da aggregare piu' tabelle.
Titolo: Re: Query creator
Inserito da: milio - 04 Dicembre 2011, 21:54:50
cosa intendi per 'aggregare piu' tabelle'?
Titolo: Re: Query creator
Inserito da: andy60 - 04 Dicembre 2011, 23:20:32
cosa intendi per 'aggregare piu' tabelle'?

http://www.techonthenet.com/sql/tables/create_table2.php

Titolo: Re: Query creator
Inserito da: Golia - 04 Dicembre 2011, 23:26:06
Da un database esistente aggiungere campi e intere tabelle, o addirittura creare un database nuovo

Cè già stato uno che ci aveva pensato  :-[ , e ha detto che cominciava a farlo  :-[  :ciao:
Titolo: Re: Query creator
Inserito da: milio - 03 Gennaio 2012, 09:33:38
Ho ripreso in sti giorni ad usare il pc...  :-[

Nuova release:

- Corretto alcuni bug sulla sintassi delle query
- Aggiunto funzioni per il Left Join e il Rigth Join

 :ciao:
Titolo: Re: Query creator
Inserito da: andy60 - 03 Gennaio 2012, 12:20:54
Ho ripreso in sti giorni ad usare il pc...  :-[

Nuova release:

- Corretto alcuni bug sulla sintassi delle query
- Aggiunto funzioni per il Left Join e il Rigth Join

 :ciao:

bentornato  :2birre:, provo subito.

ps. articoli su gridbox
Titolo: Re: Query creator
Inserito da: milio - 16 Aprile 2012, 22:37:38
Nuova release...

Aggiornata GridBox
Corretto bug su GFormEditor
Migliorata gestione del campo espressione

Titolo: Re: Query creator
Inserito da: milio - 20 Aprile 2012, 16:44:23
Volevo rendervi partecipi di una mia query fatta oggi con QueryCreator...

Il tutto da come risultato, in una sola vista, le letture del gasolio giornaliere con rispettivi totali mensili e operatore rifornimento dei nostri mezzi.
Dati 'racimolati' da 4 diverse tabelle e con 4 subquery

Non avendo ancora fatto in modo di salvare il progetto  :'(, posto qui due immagini ricordo... :)

Titolo: Re: Query creator
Inserito da: doublemm - 20 Aprile 2012, 18:10:44
ciao, ho gambas 3.1, quando cerco di relazionare due campi di due tabelle mi da alle seguente riga:

Paint.Brush = Paint.Color($iColor) (è la riga 225 d Gjoin)

il seguente errore:

no current device
Titolo: Re: Query creator
Inserito da: Golia - 20 Aprile 2012, 20:43:58
Ciao
Mi da lo stesso errore con ubuntu 10.10 e gambas aggiornato di recente
Con mint 12 e gambas aggiornato di recente nessun errore.
Che sistema hai?
Titolo: Re: Query creator
Inserito da: doublemm - 21 Aprile 2012, 11:15:48
ubuntu 10.04 al lavoro. a casa ubuntu 11.04 gambas 3.0 e funziona
Titolo: Re: Query creator
Inserito da: milio - 05 Maggio 2012, 09:20:47
Migliorato filtro per ricerche su GridBox...


Titolo: Re: Query creator
Inserito da: andy60 - 07 Maggio 2012, 07:39:15
Migliorato filtro per ricerche su GridBox...




thx
Titolo: Re: Query creator
Inserito da: milio - 14 Giugno 2012, 23:17:55
Nuova release...

Dalle pensate geniali di Golia (che mi fanno perdere ore e ore di sonno! :) ), e' saltato fuori dal cilindro una nuova release con integrato un editor di form che ingloba GridBox, ObjLink e GridBoxNavigator per la creazione di maschere per inserimento dati, perfettamente funzionanti e gia' pronti all'uso...
il Golia si e' cimentato anche nel montaggio di un video che mostra l'intero processo di costruzione del form...

Varie migliorie sono state applicate anche alla GridBox....

Si pensava a questo punto di portare avanti un solo progetto GridBox/QueryCreator.... penso, appunto, che questo sia l'ultimo post per questa discussione... si andra' avanti con il solo progetto GridBox con integrato il tutto...

Link video:

http://www.youtube.com/watch?v=bCMEBcpmNv4&feature=youtu.be