Autore Topic: Query creator  (Letto 6238 volte)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Query creator
« il: 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:


Offline Golia

  • Senatore Gambero
  • ******
  • Post: 1.298
  • no xe mai massa tardi
    • Mostra profilo
Re: Query creator
« Risposta #1 il: 30 Ottobre 2011, 15:10:04 »
Come al solito ti superi  :2birre:
Molto utile grazie  :2birre: :2birre: facciamo 10 birre và!!  ;)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Query creator
« Risposta #2 il: 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

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Query creator
« Risposta #3 il: 31 Ottobre 2011, 18:07:10 »
hai decisamente una marcia in piu', complimenti!!! :2birre: :2birre: :2birre: :2birre:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Query creator
« Risposta #4 il: 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!!!

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Query creator
« Risposta #5 il: 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.. :)


Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Query creator
« Risposta #6 il: 02 Novembre 2011, 09:32:36 »
atmosfera di grande collaborazione, mi piace moltissimo, se posso , nei limiti delle mie capacità (basse) vorrei rendermi utile!!

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Query creator
« Risposta #7 il: 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

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Query creator
« Risposta #8 il: 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..

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Query creator
« Risposta #9 il: 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.


Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Query creator
« Risposta #10 il: 03 Novembre 2011, 23:45:56 »
mi stai facendo pensare seriamente ad GAccess!! :P

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Query creator
« Risposta #11 il: 04 Novembre 2011, 00:04:47 »
Speriamo che non diventi una Ca-GAccess!  :rotfl:

Offline andy60

  • Senatore Gambero
  • ******
  • Post: 1.255
    • Mostra profilo
    • https://www.linkedin.com/in/andbertini
Re: Query creator
« Risposta #12 il: 04 Novembre 2011, 08:44:01 »
Speriamo che non diventi una Ca-GAccess!  :rotfl:

 :rotfl: :rotfl: :rotfl: :rotfl:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Query creator
« Risposta #13 il: 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

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: Query creator
« Risposta #14 il: 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  ;) ).