Newsgroup: it.comp.java
Titolo: hsql

Qualcuno del ng usa hsql?



Questa funziona:

String sql="Select * from \"fornitori\"";



questa no:

String sql="Select * from \"fornitori\" order by Ditta";



Questa no:

String sql="Select * from \"fornitori\" Where Tip='L'";



entrambe segnalate come errore di sintassi o object not found Ditta 

oppure Tip



Eppure sono campi entrambi presenti in tabella.

Qualche suggerimento?



-- 

Gulp®

(forse mi sono perso qualcosa :))


 Qualche suggerimento?



Togli i doppi apici attorno al nome della tabella.










forse il nome campo è case-sensitive? ditta e non Ditta?



-- 

(..) la rivoluzione non è un pranzo di gala, non è una festa letteraria, 

non è un disegno o un ricamo; non si può

fare con tanta eleganza, con tanta serenità e delicatezza, con tanta 

grazia e cortesia. La rivoluzione è un atto

di violenza, è l'azione implacabile di una classe che abbatte il potere 

di un'altra classe. (Mao Tze-tung)


 forse il nome campo è case-sensitive? ditta e non Ditta?



per evitare il case sensitive ora ho cambiato tutto in maiuscolo il nome 

dei campi, ma il risultato non cambia.



Il 16/10/15 21:20, 4ndre4 ha scritto:


Questa funziona:



String sql="Select * from \"fornitori\"";



D'altra parte la guida indica la sintassi \"fornitori\" come corretta.



 D'altra parte la guida indica la sintassi \"fornitori\" come corretta.



Secondo 
http://www.hsqldb.org/doc/guide/ch09.html#select-section
, il nome della tabella non vuole i doppi apici (che, comunque, non sono SQL standard).



Uno statement come: 



select from fornitori order by ditta



e` SQL standard, se 'ditta' e` un nome di campo esistente. Non puo` darti syntax error.


 forse il nome campo è case-sensitive? ditta e non Ditta?



SQL e` case-insensitive. Dovresti saperlo, genio.


 select from fornitori order by ditta



ovviamente intendevo select * from fornitori...




 il nome della tabella non vuole i doppi apici (che, comunque, non sono SQL standard).

Questo non e' vero i doppi apici sono ammessi, almeno fin dallo standard 

SQL92.

D'altra parte nel link che hai indicato, specifico per hsqldb, ad un 

certo punto dice: (cito)



Quoted identifiers can be used as names (for tables, columns, 

constraints or indexes). Quoted identifiers start and end with " (one 

doublequote). A quoted identifier can contain any Unicode character, 

including space. In a quoted identifier use "" (two doublequotes) to 

create a " (one doublequote). With quoted identifiers it is possible to 

create mixed-case table and column names. Example:



     CREATE TABLE "Address" ("Nr" INTEGER,"Name" VARCHAR);

     SELECT "Nr", "Name" FROM "Address";





Non farci caso, e' come una bussola che segna il sud al posto del nord. 

Basta saperlo e non sbagli direzione.




Non e' che per caso anche i nomi dei campi sono stati definiti coi doppi 

apici?

In SQL i doppi apici non sono semplici separatori, fanno parte del nome. 

Vanno usati (con cautela) quando vuoi rendere il nome case-sensitive o 

quando nel nome vuoi utilizzare qualche carattere speciale. Pratica 

assolutamente da deprecare, soprattutto quando il nome diventa anche 

sensibile al cambio di code-page. Ci sono esempi famosi, come ad esempio 

il carattere £ (lira sterlina) che traslando dalla code-page italiana 

alla code-page inglese diventa # (cancelletto).


   Dovresti saperlo, genio.



...che in MySQL c'è un flag che lo abilita/disabilta.....GENIO!

HAI PROPRIO IL CAZZO PIU LUNGO DI TUTTI ....mamma mia è quasi lungo come 

quello del dottorazzo!





CVD

E' che invece *TU* non hai capito cosa serve il flag e perche' solo in 

MySql e pochi altri c'e'.

In ogni caso in questo thread si parlava di hsql, non di mysql o altri.

Hai perso una buona occasione per non mostrare ulteriormente la tua 

pochezza.


 alla code-page inglese diventa # (cancelletto).



Allora seguendo il consiglio di alcuni del ng ho abbandonato Access, da 

molti considerato una db antidiluviano, per passsare ad altro db.Ho 

scelto hsqldb che, ho letto, può avere una portabilità da un pc 

all'altro,senza problemi.

Le tabelle con cui sto lavorando arrivano da Access---> Conversione in 

odb (a mezzo Openoffice)

e quindi trasformazione 

(
http://programmaremobile.blogspot.it/2009/01/java-and-openoffice-base-db-through.html
) 

in -->hsqldb



Funzionano tutte, clienti, anamnesi, listino ecc. e con query diverse, 

ad es. questa:



"Select COGNOME,NOME,INDIRIZZO,LUOGO,TELEFONO,CELLULARE,DATANASCITA,CF 

from \"clienti\" Where " + nomecampo + "='" + Uty.Aposdouble(dacercare) 

+ "' order by COGNOME,NOME,LUOGO"



La tabella fornitori è composta da vari campi tutti Testo VARCHAR, che 

nel nome hanno solo quello che vedete qui sotto:



DITTA,TIP,CONTATTO,INDIRIZZO,PARTITAIVA,TELEFONO



Dove DITTA è chiave primaria.



A quelli che mi hanno scritto di eliminare gli apici in \"clienti\"

penso risponda questa query funzionante:

String sql="Select * from \"fornitori\"";

che comunque non funziona più se aggiungo Where TIP='L'"



Comunque non è che non provo a seguire i suggerimenti, ma non sono 

riuscito a far digerire il nome della tabella senza le backslash e gli 

apici.

Questo è il collegamento:conn = 

DriverManager.getConnection("jdbc:hsqldb:file:" + Path + 

"/dbase/opto","sa","");



Non capisco proprio dove sta il problema.



 Qualcuno del ng usa hsql?



http://stackoverflow.com/questions/4990864/best-sql-browser-for-hsqldb




nel dettaglio:

http://www.sql-workbench.net/databases.html


oppure:

http://squirrel-sql.sourceforge.net/




in altre parole, scaricati un sql browser e prova/verifica lì le tue query.

le persone normali fanno così, aiutare uno che brancola alla cieca è

impossibile.


Il 17/10/15 13:59, rootkit ha scritto:


Ti ringrazio per la gentilezza dei link.

Ti posso consigliare un po' di zucchero? :)




Diciamo che rootkit dolce non e',  ma, a parte quando posta le ricette 

di Artusi, cazzate non ne dice.


 di Artusi, cazzate non ne dice.



oddio, le ricette dell'artusi spesso sono più serie :-)


 Ti posso consigliare un po' di zucchero? :)



no grazie non gradisco.

ma oltre a guardare i link spero passi il messaggio che esistono strumenti

semplici per navigare la struttura del db, anche per hsqldb. 

che tu ci creda o no il consiglio di sgrossare da errori grossolani e su cui 

nessuno può aiutarti, come nomi colonna non validi e simili, non è una

provocazione.

anche quelli che ne sanno a pacchi usano gli strumenti, non si capisce

perché tu invece vuoi programmare alla cieca.


Il 17/10/15 16:04, rootkit ha scritto:


Guarda che i consigli li seguo e cerco di migliorare, ma il mio 

obiettivo non è diventare un guru del java,ma molto pragmaticamente 

traslare in java un vecchio programma scritto in visual-basic che mi 

serve in studio. Se questo programma conta dieci query...capisci che ci 

può anche stare un po' di "pigrizia".

Grazie comunque sempre per il vostro aiuto.



... e poi pensa che a quasi 60 anni, mi sono anche messo a studiare 

l'inglese...  :)

Secondo te ho speranze?  :) :)



Comunque ho risolto...anche se la soluzione è ancora un mistero.

Dunque, nella tabella ho rinominato il campo TIP in TIPO e invece che 

usare l'asterisco in Select ho piazzato i nomi dei campi... magia!



Sarà questo? Non lo so.

Ora questa va:

String sql="Select DITTA,TIPO from \"fornitori\" Where TIPO='L' order by 

DITTA";



Grazie ancora per l'aiuto.



 SQL92.



Ho letto. Hai ragione. E` che non ho mai avuto la necessita` di usarli ne` con Oracle, MS SQL Server, Postgres, MySQL, Firebird. Credo, comunque, che il db, per essere SQL-compliant debba supportare il nome della tabella anche senza doppi apici.






 ...che in MySQL c'è un flag che lo abilita/disabilta.....GENIO!



Sta usando HSQL, GENIO ipopenico.




 from \"clienti\" Where " + nomecampo + "='" + Uty.Aposdouble(dacercare) 



Le query SQL *NON* si scrivono concatenando i valori dei campi. E` il modo migliore per cadere vittime di SQL Injection. Impara ad usare i parametri.


 usare l'asterisco in Select ho piazzato i nomi dei campi... magia!



Cioe`, quello non era un typo? Il tuo campo tipo si chiamava veramente 'TIP'?




 Sarà questo? Non lo so.



E allora come cazzo fai a dire che hai risolto? Quando uno dice "ho risolto", deva aver capito al root cause di un problema!






 può anche stare un po' di "pigrizia".



Certo, tanto ci sono gli altri che ti risolvono i problemi...








 Secondo te ho speranze?  :) :)



guarda che non sono poi tanto più indietro di te, con gli anni intendo.

anche a me la prossima data scadenza della patente sarà dopo 5 anni.



se alla mia età mi smazzo ancora con piacere articoli su tecnologie di

frontiera e mi diletto a sperimentare i linguaggi/le tecniche che non 

conosco, direi che ce la puoi fare. questione di voglia e motivazione,

oserei dire.






 di "pigrizia".



No, non ci puo` stare



Enrico


Il 17/10/15 17:18, 4ndre4 ha scritto:


Ah,ah.  :)



Caro mio, io sono un medico e sai quante volte anche oggi, con tutti i 

progressi che abbiamo fatto, ci si accontenta della guarigione 

ipotizzando una diagnosi?

Sei sicuro che l'ultima febbre con dolore alle ossa che hai avuto sia 

stata influenza?



Il 17/10/15 17:14, 4ndre4 ha scritto:


dai valore a nomecampo!



Non vedi che è una variabile?







Perchè pensi che tutti i programmi debbano funzionare online?



 può anche stare un po' di "pigrizia".



ma sì, è evidente che non vuoi diventare un guru del java. ma neanche i

suggerimenti puntano a questo. dico però che realizzare un progetto a

forza di "hint" è la strada più lunga e faticosa per farlo. guarda qui,

su un problema che ti avrebbe dovuto impegnare al più cinque minuti

ci sei rimasto a candire due giorni, e la prossima volta sarai punto e

a capo perché non hai capito ne il problema e ne la soluzione.

se ci può stare la pigrizia? vedi un po' te. tutto questo suona come

quello che per la pigrizia di non montare delle ruote rotonde si

ostina a spingere un carretto con le ruote quadrate, pensando ad ogni

minimo ostacolo (a quel punto insormontabile) di cercare qualcuno che lo

aiuti nello spingere quel mezzo del tutto inadatto al moto. 




Il 18/10/15 14:20, rootkit ha scritto:



Guarda rootkit, non c'era da analizzare un listato intero. Quella che 

rimane da analizzare è solo una riga di query e, per stavolta non ho 

ricevuto hit particolari, diciamo che non ho risolto...diciamo che 

funziona ok?

L'unica spiegazione che mi son dato è che i passaggi access--> 

openoffice database---> hsql non siano il top e si sia persa qualcosa 

per strada. Per rinominare un campo, come ho fatto, ho dovuto ripartire 

da openoffice e rifare il passaggio a hsql. Poi tutto ha funzionato.

Ne viene che la query in questione non aveva responsabilità alcuna, 

d'altra parte non è che sta benedetta query fosse un mostro di sintassi.

Io ho fatto l'errore di pensare che il problema fosse legato alla query, 

ma in questo ng mi son venuti dietro in molti suggerendo apici o non 

apici, slash o non slash, strumenti di analisi della sintassi ecc. ecc.



Comunque, e l'ho scritto ancora, ciò che mi sorprende è il clima di 

intolleranza presente in questo ng, un clima strano che aleggia anche 

tra di voi, che vi beccate continuamente e anche in modo pesante.

Non capisco... forse il gruppo è riservato solo a professionisti del 

settore, forse i principianti non sono ben accetti....ma non mi sembra 

che il manifesto del ng non parli in questo senso.

La preparazione di un partecipante si può ben capire dal tipo di domande 

che fa e quando uno ammette di non essere un programmatore 

professionista, nè uno studente di informatica, ma semplicemente un 

dilettante autodidatta, con tutti i limiti, anche di metodo che questo 

può comportare, ci si aspetterebbe un minimo di tolleranza in più, 

invece, non dico con tutti, ma si ha spesso la sensazione di dar fastidio.



 Caro mio, io sono un medico

CUT



Ecco, siamo arrivati al nocciolo!



Non te la prendere, ma se sei un *medico*, allora fai il *medico*.



Se ti serve un software, allora chiama un *programmatore* che te lo

realizzerà.








 invece, non dico con tutti, ma si ha spesso la sensazione di dar fastidio.



Vedi sopra.








 Non vedi che è una variabile?



E tu non vedi che nel tuo codice stai concatenando il valore di un campo? Non parlo del nome, parlo del valore del campo. E` una tecnica che NON si usa. Si usano i parametri.






 Perchè pensi che tutti i programmi debbano funzionare online?



Ma che cazzo dici? Perche`, tu pensi che la SQL injection valga solo per il web?




 ipotizzando una diagnosi?



Ma che cazzo stai dicendo? Ma che dici??! Cosa c'entra la medicina? SVEGLIAAA, stai risolvendo dei problemi di programmazione, non puoi accettare la "guarigione" sulla base di tue "diagnosi" sballate. Per i bug informatici, si cerca la causa esatta, non ci si basa su idee vaghe. Non puoi dire che hai risolto un problema, se non sei riuscito a trovarne la causa principale.




 realizzerà.



Il bello e` che lui pensa di applicare alla programmazione i principi della medicina. Bah...




 si ha spesso la sensazione di dar fastidio.



Nel tuo caso, non sei cosi` lontano dal vero.


 che il manifesto del ng non parli in questo senso.



su usenet è una questione storicamente dibattuta. 

il meccanismo di autosostentamento dei newsgroup si basa sul mantenere 

un certo livello di discussione, in mancanza di questo la gente lo abbandona 

e il gruppo muore. alla fine resta solo chi fa le domande e nessuno che

da le risposte, che è un po' quello che è già successo se si fa eccezione

per il gagliardelli che ha davvero la pazienza di giobbe :-)



e non è vero che i principianti non sono bene accetti, spiegare i concetti

è una cosa che si fa anche volentieri; sono le domande di pigro utilitarismo

il problema. lo so anch'io che il debug del codice è una palla mostruosa ed

è più comodo farlo fare agli altri ma non è così che gira il mondo. ognuno

si debugga il proprio codice e nel caso se ha dei dubbi chiede. ma non è che

può prendere pezzi di codice e dire "ragazzi, qui un va una sega trovatemi

i problemi".


 i problemi".



sei sicuro che mi sia comportato così?



Guarda, 4ndre4 ha scritto:

Uno statement come: select from fornitori order by ditta

e` SQL standard, se 'ditta' e` un nome di campo esistente. Non puo` 

darti syntax error.

Gagliardelli:

Non e' che per caso anche i nomi dei campi sono stati definiti coi doppi 

apici?



Nel frattempo sono seguite una marea di altri messaggi e anche altri, 

come me, si sono incaponiti sulla query con vari suggerimenti.



Bene i campi non erano definiti con doppi apici però questo mi ha fatto 

pensare che 4ndre4 e Gagliardelli avevano ragione e alla seconda parte 

del messaggio di errore: "object not found" e quindi più ai nomi dei 

campi che ad altro.



Sono andato a rifarmi i passaggi della tabella da un database all'altro 

e probabilmente li stava il problema e,infatti la stessa query ora 

funziona. In questo caso specifico, il problema non me lo sono forse 

risolto da me traendo solo spunto dai suggerimenti?

In tutto questo cosa c'è che non va del mio comportamento?



Qualcuno ha risposto qui che quando dico che forse do fastidio, ci sono 

andato vicino... vogliamo parlare di questo modo di porsi?

Vogliamo dire come vi "scazzottate" tra di voi facendo a gara anche tra 

di voi, a chi dimostra di saperne di più? Perchè uno non può 

semplicemente dire ad un altro, guarda secondo me sbagli qui o li, senza 

offendere con "cazzi più o meno lunghi" o epiteti come "dottorazzo" 

riferito tra l'altro a chi qui dentro è più disponibile di altri?

Per quanto riguarda l'ospitalità ai principianti o dilettanti, molto 

esplicito su questo il post di chi mi invita a lasciar fare ai 

"programmatori".

Guarda qui dentro può anche darsi che qualcuno si sia laureato in 

ingegneria informatica e ne sappia parecchio di informatica,ma trovo 

assente in molti la buona educazione, il rispetto degli altri in quanto 

persone.



A proposito di quello che scrive "potrebbe" essere un "tantino"

pericoloso realizzare un software in proprio"

Sto solo cercando di traslare in java un software che ho sviluppato in 

basic e che gira con vari aggiornamenti da più di vent'anni.



Non so se l'ho scritto a te o a qualcun altro, ma ho frequentato per 

vent'anni il ng di comp.lang.visual-basic e li mi sono fatto anche degli 

amici che sviluppano software di professione, ma certo in tanti ho 

trovato un atteggiamento mooolto diverso.

Sarà colpa di java o di che?



Che clima ragazzi!



Buona settimana.



Sarà colpa di java o di che?



Sara` colpa tua, magari. Ci sono delle regole, quando si chiede aiuto ai ng. Imparale.


Il 19/10/15 00:51, 4ndre4 ha scritto:

 >> Qualcuno ha risposto qui che quando dico che forse do fastidio, ci sono

 > andato vicino... vogliamo parlare di questo modo di porsi?

 >

 > Fai i nomi. Sono stato io a dirti quella cosa. E ho ragione, dal 

momento che hai dimostrato piu` volte che, anziche` andarti a spulciare 

il manuale di Java, ti piace piu` (per pigrizia che, a tuo parere, "ci 

sta tutta") chiedere la pappa pronta al ng. Ai tecnici come noi piace 

rispondere su Java, ma non te ne devi approfittare. E` dalla notte dei 

tempi che esiste l'acronimo RTFM, e allora leggilo, quel cazzo di manuale.



Il manuale lo guardo, ma manca una preparazione di base, che si ottiene 

solo frequentando un corso di informatica e quindi non tutto mi è 

comprensibile, cerco di arrangiarmi lo stesso per quanto riesco, per il 

resto avevo sperato in un aiuto dal ng.



 >> Per quanto riguarda l'ospitalità ai principianti o dilettanti, molto

 > esplicito su questo il post di chi mi invita a lasciar fare ai

 > "programmatori".

 >

 > Sinceramente, uno che pretende di risolvere problemi di 

programmazione, applicando le regole della medicina, come tu hai 

dimostrato di voler fare, fa veramente meglio lasciare la programmazione 

ai programmatori.



Non pretendo di applicare le regole della medicina qui.Quella è stata 

una risposta a te riguardo al fatto di non aver risolto proprio nulla, 

quando invece come ti ho scritto nel post precedente è risultato poi 

evidente che si trattava dei campi della tabella, ma nei principianti 

l'insicurezza la fa da padrona per cui ho anche scritto che non ne ero 

sicuro.

Per quanto riguarda la pigrizia che ha scatenato l'inferno di commenti, 

se vai a vedere era postata tra virgolette.



 >

 >> Sarà colpa di java o di che?

 >

 > Sara` colpa tua, magari. Ci sono delle regole, quando si chiede aiuto 

ai ng. Imparale.

 >

La prima volta che ho chiesto qualcosa qui, sono stato aggredito, non 

ricordo nemmeno da chi, ma non è importante, perchè non avevo posto una 

domanda appropriata o, non ricordo bene, non era sufficientemente 

intelligente nel senso latino del termine, ma si fa una domanda quando 

non si sanno delle cose giusto? A volte domandando, se non si ha 

preparazione, si possono sparare cazzate, ma arrivare a dar fastidio non 

pensavo. Ho offeso qualcuno?



Cerco di comportarmi nel rispetto di tutti, mi è sfuggita qualche altra 

regola?



 Sarà colpa di java o di che?



non lo so, non seguo quel gruppo e non so come sia messo. questo di sicuro

è messo male, oramai non ha più frequentatori abituali. lo comprendi anche

da te, che nessuno lo segua non conviene neanche a chi pone le domande

di passaggio.


...

Il giorno lunedì 19 ottobre 2015 00:20:53 UTC+2, Gulp® ha scritto:



 >pacifico. ma se la domanda è "cosa c'è che non va?" non è che si casca

 >distante da quello che ho scritto io.



rootkit, dai, la domanda implicita è sempre, cosa c'è che non va, se 

tutto andasse che problema ci sarebbe?



 >ad essere pignoli ci sarebbe anche la questioncina dell'off topic.



e su questo hai anche ragione.



 >non lo so, non seguo quel gruppo e non so come sia messo. questo di 

sicuro è messo male.



...secondo me non solo per il numero di frequentatori.

Comunque a me non resta che ringraziare chi in modo disinteressato trova 

un po' del suo tempo per rispondere alle domande altrui.

Comprendo che non sempre sono poste correttamente, comprendo che a volte 

chi sa le cose fa fatica ad accettare le lacune altrui, ma si può 

rispondere o meno, ma rispondere solo per dire studia... se uno non 

avesse voglia di far niente certamente non si impegnerebbe con del 

codice perchè se no sarebbe regolarmente uno smaronamento.

I tuoi link sono stati i benvenuti, uno già lo conoscevo....si voglio 

dire, non conoscevo solo il link al ng  :)

Poi trovi anche quello che non ha voglia di rispondere per darti una 

mano, ma è fermamente deciso a rispondere comunque per impartirti 

lezioni di vita... cos'è una mission?

Per me affrontare java, che ha un linguaggio un "tantino" più raffinato 

rispetto a visual-basic, non è stato e non è per niente facile, come non 

è mai facile far le cose da autodidatta perchè sempre ti porti dietro 

dei buchi dovuti alla mancanza di formazione di base che a volte ti 

rende problematica anche la comprensione di alcuni testi che danno, 

giustamente per scontate un sacco di cose.

Un grazie anche a te per la disponibilità, buona giornata.



----------




 Sarà colpa di java o di che?



Può essere, il linguaggio Java è da sempre uno spauracchio dei

programmatori Visual Basic ;-D






 maniera più assoluta.



Ok, quindi per il prossimo che viene e dice:



"Sono un macellaio, ma devo realizzare un software per la gestione,

il controllo e la manutenzione degli impianti di riscaldamento a

gas propano liquido infiammabile di una scuola elementare,

avrei questo problemi nella linea di codice 7826582 che non

riesco proprio a capire, chi mi da una mano?"



Te ne assumi tu la responsabilità?






 giustamente per scontate un sacco di cose.



E' per questo che un programmatore informatico non si metterebbe

in testa di andare a leggere testi scientifici medici per esempio sulla 

esecuzione di interventi di microchirurgia, per poi trovare il

modo di mettere in pratica le "nozioni" apprese.








 "tantino" :-D



Ciccio, tantino è tra virgolette e siccome non bastano, aggiungo che 

significa che è un bel po' più sofisticato di visual-basic.

Va bene così?



Io propongo di impedire a qualsiasi persona che eserciti una professione 

diversa da programmatore di azzardarsi ad avvicinarsi anche di sfioro e per 

diletto ad un  linguaggio di programmazione. Ma anche che non possa pescare 

chi non è pescatore professionista o correre in bici se non è un corridore 

professionista ecc. ecc.








 Te ne assumi tu la responsabilità?



No.

Ma non è di questo che si parla. Se gli piace l'informatica dal punto di 

vista della programmazione e desidera per suo diletto sviluppare per sè, non 

per altri eh?, un qualcosa, per il giusto di cimentarvisi perchè dovrei non 

essere d'accordo?








 professionista ecc. ecc.



Se uno vuole pescare per diletto, e non è pescatore professionista,

perché non può farlo?



Se uno vuole correre per diletto, e non è corridore professionista,

perché non può farlo?



Se uno vuole programmare per diletto, e NON E' INFORMATICO, perché non può farlo?



Se uno vuole programmare per svolgere un LAVORO, e NON E' INFORMATICO, perché 

deve impelagarsi in cose che non gli competono, a maggior ragione

nel settore medico che è critico e rischioso?






 Se uno vuole programmare per svolgere un LAVORO, e NON E' INFORMATICO



già, concordo.



ecco, l'ultimo passaggio è che sono un medico, svolgo la professione medica, 

e mi piace dilettarmi con l'informatica.

In pratica a me il computer non interessa per Facebook o per i giochi, ma 

per divertirmi con la programmazione.






 professionista ecc. ecc.



Vedi di darci un taglio, perche` cominci veramente a seccare. Correre in bici si puo` fare senza nozioni troppo tecniche; pescare, si puo` fare anche tirando una lenza con un amo e un'esca attaccate. Programmare non si puo` fare, invece, se non hai una solida conoscenza delle nozioni di base, dell'inglese, e se non hai letto quei cazzo di manuali. Capito?




 Te ne assumi tu la responsabilità?



ciccio, ma te un ragionamento che non sia alla cazzo di cane non lo sai

proprio fare, eh.

va bene, facciamo si verifichi questa fantomatica quanto assurda situazione.

quale sarebbe la responsabilità che mi dovrei assumere?  






In generale no, i doppi apici sono previsti negli standard.

Pero', difformemente dagli standard, alcuni db possono essere 

configurati per utilizzare il nome con doppi apici equivalente al nome 

senza, ma poi intervengono le eventuali regole del file-system o regole 

interne al db stesso. Ad esempio, alcuni db per poter utilizzare questa 

equivalenza ed ottenere l'insensibilita' del nome al case, impongono che 

il nome definito tra doppi apici sia tutto maiuscolo (credo sia anche il 

caso di hsqldb). Inoltre alcuni db permettono questo tipo di 

nomenclatura limitatamente ad alcuni tipi di oggetti sql, in  genere 

catalog/schema/table.

Altri db, come MSSQLserver, utilizzono ulteriori separatori come le 

parentesi quadre nel caso di MSSQLserver.

Insomma diventa un bel casino, quindi convengo che l'utilizzo debba 

essere limitato ai soli casi d effettiva necessita', come ultima 

spiaggia. Oppure interporre un orm che faccia il suo mestiere che trovo 

sia sempre la scelta piu' vantaggiosa.




Le SQL Injection non sono limitate ai casi online, potrebbero essere 

anche introdotte da involontari errori di programmazione o valori 

ambigui delle variabili che concateni. Utilizzando i parametri in 

PreparedStatement li eviti a priori ed eviti anche Uty.Aposdouble che 

fa' sorridere. Inoltre conferisce una certa eleganza al codice.



In definitiva, stai imparando: quindi utilizza i buoni consigli e ne 

apprezzerai i vantaggi. Capisco che non sia facile discernere i consigli 

buoni da quelli no, data la pochezza di certi interlocutori che si 

affacciano inopinatamente al n.g., ma questo e' il prezzo del fai-da-te.

:-)




Dal punto di vista di un programma che esegue una select, la proiezione 

dei campi dovrebbe sempre essere esplicita (* e' implicita, ovvero la 

select proietta tutti i capi in un ordine non sempre evidente o 

prevedibile). Inoltre la where, in taluni casi potrebbe utilizzare i 

nomi proiettati risolti dalla proiezione stessa, quindi esplicitando la 

proiezione risolvi anche eventuali ambiguita' nella definzione delle 

colonne.


 E allora come cazzo fai a dire che hai risolto? Quando uno dice "ho risolto", deva aver capito al root cause di un problema!

Dipendentemente dalle aspettative...

:-)




 realizzerà.

Non vedo perche'. I casi potrebbere essere due: e' un medico e fa il 

medico, senza che glielo debba dire tu, e nel tempo libero si diverte 

alternativamente, oppure e' un medico a cui non piace fare il medico e 

sta pensando di prepararsi ad un futuro differente.

Entrambi i casi mi sembrano tutto sommato legittimi, non passibili di 

alcun intervento critico.

Ma in definitiva, se si diverte lui, perche' dovrebbe far divertire un 

programmatore? Magari pagandolo pure...






 Certo, tanto ci sono gli altri che ti risolvono i problemi...



Risparmiaci queste osservazioni fuori luogo. Questo e' un n.g. pubblico 

la cui filosofia e' esclusivamente quella per cui uno fa una domanda ed 

altri rispondono se e come vogliono.

Poi ci sono casi in cui appare evidente che qualcuno pretenda soluzioni, 

o induca altri a trovare soluzioni che avrebbe dovuto trovare da se per 

mandato.

Ma questo non mi sembra proprio uno di quei casi.




 adibito al trattamento dei pazienti.

Stai scherzando, vero? O e' una delle tue solite asinate?

Perche' mi sembra che da "professionista informatico", tu ti stia 

prendendo la briga di dare consigli ad un "professionista medico" su 

come trattare le sue questioni.

Se ognuno deve rimanere ne proprio ambito, che sia.




 Te ne assumi tu la responsabilità?

La responsabilita' di cosa?

C'era forse nella domanda ipotetica un qualche riferimento a qualche 

eventuale responsabilita', che chi avesse voluto rispondere si sarebbe 

anche dovuto assumere?



Fai una cosa, a quel macellaio chiedi come utilizzare il tuo cervello. 

Scommetto che ti risponderebbe: "impanato e fritto" (se il macellaio 

fosse delle mie parti probabilmente direbbe "boun da frezer"). E non 

sarebbe un cattivo consiglio, stante la previa e doverosa verifica della 

qualita' del cervello.




 oserei dire.

E anche curiosita', aggiungo io.






Uainot?

:)


 programmatore? Magari pagandolo pure...



La programmazione è un "divertimento" fino ad un certo punto.

Dopo comincia ad essere una cosa molto seria.

Per cui commissionare un software per un ambito lavorativo non è

un divertimento, ma un'azione sensata.








 Se ognuno deve rimanere ne proprio ambito, che sia.



Appunto! E io che ho detto?!






 qualita' del cervello.



Spiacente ma non parlo mai con i macellai :-D






 colonne.

Ciao Ugo,



come vedi mi diletto a seguire anche questo n.g. (solo da lurker, per 

carita'!); ho letto questa tua affermazione e mi interessa verificare di 

avere capito bene:



facendo una "select * from....." e' possibile che il risultato sia 

imprevedibile sotto l'aspetto della sequenza dei campi?



Grazie come sempre per la risposta.


 Grazie come sempre per la risposta.

Beh, con imprevedibile intendo che non va dato per scontato. Immagino 

che in realta' l'ordinamento sia in qualche modo prevedibile, immagino 

anche che dipenda dall'implementazione. Ad esempio assumi che un certo 

db ordini i campi in ordine alfabetico, e che select * corrisponda a 

select a, b, c e che ad un certo punto venga aggiunta la colonna aa, 

conseguentemente diventa select a, aa, b, c quindi se nel programma hai 

utilizzato select * il programma potrebbe prendere un aa per un b; o al 

contrario se viene cancellata la colonna b la select * non sbaglia, il 

programma prendera' un c per un b, e vissero tutti felici e contenti!

:)

Con tutti i distinguo del caso, per carita'. Nel senso che, con un certo 

costo aggiuntivo di esecuzione, dal resultset puoi sempre selezionare i 

campi col nome e non con il numero d'ordine.

Nell'esempio di cui sopra ho utilizzato l'ordine alfabetico per mera 

semplicita'. Lo standard direbbe che l'ordine delle colonne sia lo 

stesso del create table, ma che un alter table lo puo' modificare; il 

caso evidente e' alter table drop column, ma puo' succedere anche con 

l'alter column. E comunque mi sembra di ricordare qhe questa regola non 

sia mandatory, per cui sarebbe legittimo qualsiasi altro ordinamento 

dipendente dall'implementazione.

Fatto sta che come best-practise e' consigliata la proiezione esplicita.


 Fatto sta che come best-practise e' consigliata la proiezione esplicita.



Su questo aspetto sono pienamente d'accordo. La spiegazione della mia 

sorpresa sarebbe "off-topic" in questo NG, come sai bene.



Grazie


 programmatore? Magari pagandolo pure...



Perche` il prodotto che realizza, pur divertendosi, potrebbe non essere un gioco. Se realizzi in maniera amatoriale un sistema che raccoglie i dati di certi utenti (e non credo che nessun sistema serio non abbia un minimo di informazioni "sensibili" in esso), rendi sicuramente il tuo sistema vulnerabile ad attacchi. 




 Risparmiaci queste osservazioni fuori luogo. 



Fuori luogo, semmai, saranno i TUOI commenti. Ho affermato una cosa sacrosanta: Gulp e` alla ricerca della pappa pronta, e lo ha dimostrato piu` volte qui dentro. Che si tratti di un ng pubblico non c'entra una ceppa. Ci sono comunque delle regole da rispettare, quando si pongono le domande. Prova a fare certe domande su StackOverflow, e ti becchi un mare di commenti negativi. Quando si cerca la soluzione ad un problema, bisogna chiedere aiuto una volta che si e` speso un minimo di tempo ad investigarlo, quel problema. Il tizio in questione, invece, elogia la pigrizia. 




 Stai scherzando, vero? O e' una delle tue solite asinate?



Non sta dando nessuno consiglio su come esercitare la professione medica. Sta semplicemente dicendo (e ha ragione) che se sta scrivendo un software adibito al trattamento dei pazienti, realizzarlo senza avere le giuste competenze, puo` renderlo insicuro per i pazienti stessi.






Il 20/10/15 10:19, Dr.UgoGagliardelli ha scritto:


Anche tu? Si allora siamo della stessa classe. :)

Uainot mi piace molto :)



Adesso lo vado a scrivere a 4ndre4...

-- 

Gulp®

(forse mi sono perso qualcosa :))


 colonne.



Porca paletta!!

Però!

Non lo sapevo, ma il pensiero che ho fatto è stato se non lo trova, 

provo a "somministrarglielo" più chiaramente.

Grazie Ugo.



 Non sta dando nessuno consiglio su come esercitare la professione medica. Sta semplicemente dicendo (e ha ragione) che se sta scrivendo un software adibito al trattamento dei pazienti, realizzarlo senza avere le giuste competenze, puo` renderlo insicuro per i pazienti stessi.



vabbeh adesso non mettiamoci a girare film di fantascienza. si sta parlando 

di un innocuo gestionale ad uso proprio, rendiamoci conto che con 

queste argomentazioni si infrange la barriera del ridicolo.  


 ha scritto:


E' sminuendo tutto così che l'Italia è andata a rotoli.






 E' sminuendo tutto così che l'Italia è andata a rotoli.

Adesso ne ho la certezza: e' una delle tue solite asinate.




 queste argomentazioni si infrange la barriera del ridicolo.



Che cosa sarebbe un "innocuo gestionale"? Nessun software e` innocuo, tanto meno un gestionale. Tranquillo, che la barriera del ridicolo non l'ho mai infranta, e non inizio ora. E poi chi ti dice che questo software sia solo ad uso personale? E chi ti dice che ci rimanga, ad uso personale? Perche`, tu credi veramente che, se questa persona dovesse realizzare qualcosa non ad uso proprio, si asterrebbe dal farlo, ingaggiando qualcuno che sa come/cosa fare, perche` consapevole dei rischi che corre? Ho visto gente scrivere gestionali senza avere la minima competenza tecnica per farlo, costruendo accrocchi su continui aiuti ricevuti dagli altri. E non erano software ad uso personale.




 tu e basta.



Rileggi quel che si e` scritto in questo thread, prima di tuonare tu le tue cretinate.


 Che cosa sarebbe un "innocuo gestionale"? Nessun software e` innocuo, tanto meno un gestionale. Tranquillo, che la barriera del ridicolo non l'ho mai infranta, e non inizio ora. E poi chi ti dice che questo software sia solo ad uso personale? E chi ti dice che ci rimanga, ad uso personale? 



finito con le congetture?

se hai finito possiamo tornare coi piedi per terra.

avere da ridire se una persona scrive codice *è* ridicolo. sul resto che

sono appunto congetture non perdo tempo ad esprimermi.



 tra di voi, che vi beccate continuamente e anche in modo pesante.



Ciao Gulp, seguo da pochissimo questo ng e sono rimasto colpito da 

questo thread. Ho visto delle risposte alle tue domande, tra l'altro 

legittime, alle quali hai riposto anche con troppa calma. E' chiaro che 

questi ciccio (che non ha fatto uno che uno intervento tecnico), 4ndre4 

(che non è ha azzeccata una) e anche rootkit forse sono dei bravi 

programmatori ma da un punto di vista umano sono una schifezza.

I loro interventi non aggiungono nulla a quanto sai, il che per un ng, è 

un traguardo ben misero.



Si è creato quello che ho visto succedere un sacco di volte ed è quello 

che io chiamo "sindroma da bar". Cioè un ng aperto a tutti diventa un 

circolo esclusivo di pochi "eletti" che giocano a chi ce l'ha più lungo. 

Peccato che chi ce l'ha lungo non vada poi al bar se non ogni tanto...



Volevo poi dirti che ai tempi del PalmOS (ti ricordi il primo palmare 

degno di questo nome?) c'era un database tipo Access ed era stato creato 

da un dentista australiano...



Ciao e buona programmazione!



-- 

Sylar Surfer

Scrivo su Usenet da quando il Mar Morto era solo indisposto.



guarda, trovo molto peggio che le tue farneticazioni vengano da un

programmatore a piede libero e a cui potenzialmente potrebbe essere affidato

un progetto di quelli seriamente critici (anche se dubito qualcuno lo 

faccia, ma in questo scalcagnato paese tutto può essere).


 sono appunto congetture non perdo tempo ad esprimermi.



Peccato per te in quanto tra CoderDojo a tappeto, sessioni sempre più

martellanti di Scratch & C., ecc. stanno tentando disperatamente di

"indottrinare" sempre più bambini all'arte della programmazione.

Evidentemente stanno prendendo la cosa molto sul serio, cosa che invece

a te non sembra riguardare, da quanto scrivi.



Che poi la programmazione è un'arte appunto, non è un passatempo per

picchiettare sui tasti e vedere se si riesce a ottenere qualcosa

(per esempio, un gestionale... ;-D).






 Ciao e buona programmazione!



Porta sfortuna dire "buona programmazione"!



Si dice: "Buona fase di coding!"



;-)






 "indottrinare" sempre più bambini all'arte della programmazione.



certo che per vederla come cosa negativa ci vuole del gran fegato.



nei prossimi 20 anni il coding sarà una delle attività globalmente più

richieste e meglio remunerate. e tu, da coder, giudichi negativo il fatto 

che giovani e ragazzini vengano introdotti alla programmazione? 

vogliamo continuare a sfornare laureati in scienze politiche?



ma soprattutto, che cazzo c'entra con il caso in questione?



 ma soprattutto, che cazzo c'entra con il caso in questione?



"La cultura, è un'altra cosa!" [cit.] ;-D






 italiana?



ciccio non lo fare il furbino con me, stavi dicendo un'altra cosa.

hai fatto un discorso di principio, adesso ovviamente (e oserei dire come

al solito) te lo rimangi perché è una asinata che non puoi argomentare.

altrimenti spiega che c'entrava citare coderdojo se non te la stavi

prendendo tout court con l'indottrinamento all'arte della programmazione?


 Ma che cazzo dici? Perche`, tu pensi che la SQL injection valga solo per il web?



https://xkcd.com/327/




Ciao Jack


Il 21/10/15 22:50, Sylar Surfer ha scritto:

....



Ti ringrazio.



 in un clima di "pardon" e "s'il vous plaît". :-D



Al di là del tempo e della collocazione, la buona educazione non guasta mai. 







---

Questa e-mail e stata controllata per individuare virus con Avast antivirus.

https://www.avast.com/antivirus





 Al di là del tempo e della collocazione, la buona educazione non guasta mai. 



Anche il rispetto della professione altrui merita rispetto.

Se tu vai in uno studio di un commercialista e ti proponi

di dichiarargli il suo 730, lui ti prenderà a calci in culo.






 Al di là del tempo e della collocazione, la buona educazione non guasta mai.

Beh, anche essere belli ed intelligenti non guasta, non e' da tutti pero'!

:-))






 il web?



vabbè, ma i malintenzionati sono su internet, anonimi , mica tra i colleghi 

di scrivania , suvvia ! Cerca di essere serio! 




 colleghi di scrivania



Che e` come dire che in casa non corri alcun pericolo di morire



Enrico



non è solo un problema di sicurezza ma di minima qualità. se vuoi scrivere

un programma che non sia prono ad errori bloccanti perché non gestisce

situazioni comuni come la presenza di caratteri speciali in input o sul

database, allora segui queste best practice. altrimenti te ne puoi anche

fregare, ne hai facoltà, ma non pretendere di venire assecondato in un

gruppo di programmatori.



E quando sarebbe successo che ti ha insegnato a fare il tuo mestiere?



In ogni caso, non ho mai visto nessuno incazzarsi perche' c'e' qualcuno 

si fa la *propria* dichiarazione dei redditi in proprio. Tantomenno i 

commercialisti.


 commercialisti.



Non intendevo questo. E' logico che se uno si fa a casa propria la

dichiarazione dei redditi, nessun commercialista si incazzerà. Al

massimo borbotterà un po'...



Diverso il caso di uno che va a casa/ufficio di un altro e si propone

di fargli un servizio che è nel carnet dei servizi già offerti dall'altro.

Lì ci scappa davvero la sfanculata...



Esempio: giorni fa mi arriva sul cell una chiamata con prefisso 06

(quindi Roma...), e un tizio (forse indiano! :-O) con spiccato accento inglese

*mi propone* servizi per pubblicizzare le pagine Internet. Beh, mi ha fatto

incazzare talmente tanto che un altro po' ed Hulk avrebbe pianto

dalla paura... :-D












Un metodo definitivo e' quello di rispondere: "...guardi, ho 

fretta...sto svaligiando l'ufficio"


 ha scritto:


Sì carina... Ma è impossibile restare calmi con tipi simili,

che poi il mio cell l'aveva proprio trovato su di un annuncio di

esperto informatico, quindi è come chiamare un commercialista

al telefono e proporgli: "Salve, ecco per lei una bella proposta,

possiamo compilare il suo 730 ecc."... >:-O






 commercialisti.



gioco, partita e incontro :-)






 massimo borbotterà un po'...

Pero' questo si era inteso.

Stante che "il rispetto della professione altrui" ha la stessa dignita' 

del rispetto per chi fa delle domande senza pretesa di ottenere delle 

risposte - che e' cio' che sta facendo/ha fatto Gulp, a parte segnalare 

che una risposta, negativa o positiva che sia, non dovrebbe esentarsi 

dalla "buona educazione" - a che proposito, invece, avresti esternato il 

pistolotto circa "il rispetto della professione altrui"?





Medaglia, medaglia, medaglia...

:-)


 dalla paura... :-D





ehm... scusate la divagazione, ma stai dicendo che tu ti occupi di

marketing/pubblicità nel web?

tu e proprio tu che ti parte la bambola ogni volta che in una discussione

si cita un social network? :P

è un po' che scoprire che borghezio è in realtà un kebabbaro... 






 si cita un social network? :P



Dipende dal social network in questione.






 Dipende dal social network in questione.



certo, lo so che ce l'hai specificatamente con facebook.

il che è del tutto legittimo da parte di un utente comune. ma da parte

di un professionista del web suona veramente stupido, a maggior ragione

se questo professionista si occupa di pubblicità. tutto qui.