Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - perseo

Pagine: 1 [2] 3 4 ... 18
16
Semplicemente che per verificare se il titolo combacia non serve che fai un ulteriore ciclo 'For Each'...

Quando nella Query metti il WHERE... automaticamente il DB ti restituisce un Result solo dove la clausola WHERE è soddisfatta. Quindi se tu metti un titolo che non esiste... il risultato è NOT AVAILABLE...
Se invece il libro c'è già... il risultato è AVAILABLE...

In sostanza:
Codice: gambas [Seleziona]
sql = "SELECT * FROM biblio WHERE titolo LIKE '%" & Aggiungi.TextBox2.Text & "%'"
  
hres = $hconn.Exec(sql)
    
    IF NOT hres.Available THEN
      $hconn.Begin
      hres = $hconn.Create("biblio")  
      hres!titolo = Aggiungi.TextBox2.Text
      hres!autore = Aggiungi.TextBox3.Text
      hres!annolettura = Aggiungi.TextBox4.Text
      hres!commento = Aggiungi.TextArea1.Text
      hres.Update
      $hConn.Commit
      $hConn.Close
      Aggiungi.TextBox2.text = ""
      Aggiungi.TextBox3.text = ""
      Aggiungi.TextBox4.text = ""
      Aggiungi.TextArea1.Text = ""
      Message.Info("Libro aggiunto al database", "Ok")
    ELSE
       Message.Info("Libro già presente nel database", "Ok")
    ENDIF
END


PS. Attenzione però, perché usando il LIKE... potresti scartare dei libri con titoli simili per stringa di ricerca.
Così com'è scritta se volessi inserire "mare calmo" quando nel DB già c'è "I segreti della pesca quando con in mare calmo..." ti dice che già c'è ("Libro già presente nel database").

17
Il primo consiglio è innanzitutto di abituarti ad aggiungere il ; alla fine della query SQL.

Codice: gambas [Seleziona]
...WHERE titolo LIKE '%" & Aggiungi.TextBox2.Text & "%'"


Il carattere speciale % comunica al database di cercare qualsiasi substringa.
Se ne inserisci uno prima, ed uno dopo, la stringa di ricerca... vuol dire che fai cercare al tuo motore tutti i titoli che abbiano almeno un stringa di ricerca in mezzo. Ossia con la sintassi che hai utilizzato tu, stai chiedendo a Database di cercare qualsiasi titolo che abbia almeno una lettera "a" (all'inizio, in mezzo, o alla fine).

Se invece vuoi cercare le iniziali del film devi togliere il primo "%".
Codice: gambas [Seleziona]
...WHERE titolo LIKE '" & Aggiungi.TextBox2.Text & "%'"


In questo modo il database restituisce tutti i titoli che iniziano per "a" (oppure che inizino per "a....").

Ti posso consigliare una soluzione se vuoi sia le iniziali sia ovunque?!
Codice: gambas [Seleziona]
sql = "SELECT * FROM biblio WHERE titolo LIKE '"
IF Len(Aggiungi.TextBox2.Text) <=2 THEN
  sql &= Aggiungi.TextBox2.Text & "%';" 'questa condizione viene aggiunta alla sql di prima se la lunghezza della ricerca è minore o uguale di 2 (ossia: 0, 1 oppure 2 caratteri)
ELSE
  sql &= "%" & Aggiungi.TextBox2.Text & "%';" 'questa condizione viene aggiunta alla sql di prima se la lunghezza della ricerca è oltre 3 caratteri
ENDIF


In questo modo... con fino a due caratteri ti cerca l'iniziale... oltre anche in mezzo.  ;)

18
Programmazione (Gambas 2) / Re: Menu tasto destro del mouse
« il: 25 Dicembre 2010, 19:09:12 »
L'evento tasto-destro si chiama Menu()

Se vuoi scatenare un evento alla pressione del tasto destro devi creare un codice nell'evento _Menu()

Ad esempio, prova questo così:

Codice: gambas [Seleziona]
Public Sub Form_Menu()
  Message.info("Hai premuto il tasto destro del mouse!")
End


Ciao  ;)

19
Programmazione (Gambas 2) / Re: Andare a capo TextArea
« il: 25 Dicembre 2010, 19:02:29 »
...setta a TRUE la proprietà WRAP.

Lo puoi fare da codice (TextArea1.Wrap = True) , oppure da visuale (è la terzultima proprietà della TextArea in oggetto).

20
Prima dai un'occhiata a PDF-Writer, la libreria scritta dal nostro mod MD....
E' un porting di questa libreria in php:
http://www.fpdf.org/

Fa parecchie cose tipo, Linee, Grafici, 3D, BarCode, TextRotate, ecc. Dai un'occhiata agli esempi!

Se nella tua classe c'è qualche elemento di particolare interesse che manca in PDF Writer lo possiamo aggiungere!  ;)

21
Questo non lo so, ma se fosse così avrebbe dovuto darmi problemi sin da subito. Invece per due mesi non ho mai avuto noie con il collegamento al server.
Non so sia dipeso da qualche recente aggiornamento, fatto sta che dopo la reinstallazione di MySQL è tornato tutto funzionale come prima.  :-\

22
Programmazione (Gambas 2) / Re: Da TextBox a Terminale
« il: 22 Dicembre 2010, 00:53:11 »
Scusate se ne approfitto ma secondo voi si può usare anche da codice?
Es:
   1. DIM prova AS String  
   2. prova = "istruzione"
   3. SHELL prova  

Ciao

Come dice Ceskho... certamente!
Ti faccio un esempio banalissimo al volo. Se installi nella tua distro un pacchetto di TextToSpeech (tipo Festival o Mbrola) puoi far parlare il tuo programma...
Oppure puoi usare l'istruzione WGet per scaricare da internet aggiornamenti, e tutto quello che ti viene in mente di fare, che potresti fare da Shell.
E' fantastico, no?!  ;)

23
Incrociando le dita credo di aver risolto, con la soluzione più drastica, ossia eliminando anche le cartelle di configurazione, ecc., di mysql:

Se dopo aver provato una delle tante guide meno invasive che trovate in rete non doveste risolvere il problema... provate questa come ultima soluzione:

Disinstallare tutto mysql (ATTENZIONE perché cancellerete tutto il contenuto dentro il vostro server, database compresi!):

NB. durante la disistallazione e l'autoremove verrà disinstallato parzialmente anche gambas2 ed altri pacchetti (magari annotateli da qualche parte)... quindi alla fine del procedimento dovrete reinstallarli.

1) sudo apt-get --purge remove mysql-server mysql-common mysql-client
2) sudo apt-get autoremove
3) sudo rm -rf /etc/mysql
4) sudo rm -rf /var/lib/mysql
5) sudo rm -rf /var/run/mysqld

RESTART del Computer...

6) sudo apt-get install mysql-server mysql-common mysql-client

All'occorrenza, fare il BackUp del mio_db da Shell:

a) mysql -u root -pmia_password
b) CREATE DATABASE mio_db Charset UTF-8 Collation UTF-8_general_ci;
c) quit
d) mysql mio_db < Scrivania/mio_backup.sql -u root -pmia_password

PS. -pmia_password --> password va scritta di seguito a -p, senza spazi.

24
Progetti degli utenti / Re: Report con PdfWriter
« il: 20 Dicembre 2010, 15:59:23 »
Citazione
A meno che tu non voglia prendere in mano il progetto...  Occhiolino

Se volevi distruggere il tuo meraviglioso lavoro... potevi dirlo subito... ci metto 3 secondi!  ;D

Scherzi a parte! Se fossi in grado di aiutarti lo farei anche da subito. Ma purtroppo non ne sono proprio capace.  :bad:

PS. ho provato a leggere l'aggiunta in php di TFPDF per l'UTF8... ma non ci ho capito una ...paletta.  :)

25
Programmazione / Re: [RISOLTO] Strano errore sul modulo di avvio
« il: 20 Dicembre 2010, 15:47:14 »
Mammamia quanto mi sento newbie...  :-[ ;D

26
Non mi ha mai dati problemi in tutti questi giorni,

poi all'improvviso ieri è uscito fuori quel messaggio, all'accensione del PC.

Pensavo di averlo risolto (impartendo alcune istruzioni da Shell, trovate in rete). Ma oggi, al riavvio, di nuovo lo stesso messaggio. Solo che oggi è peggio!

Non sono riuscito a collegarmi. Poi smanettando un po' ci sono riuscito, ma sempre temporaneamente. Se chiudo la Shell con la procedura di connessione il messaggio ricompare alla connessione con il DB.

Tra l'altro smanettando credo di aver compromesso anche i file di configurazione di MySQL...

Quando mi riesco a connettere al server mysql, e clicco per ridare i permessi... mi dice che non esiste la riga del 'root':

La procedura che uso da Shell per connettermi è questa:

Codice: [Seleziona]
:~# /etc/init.d/mysql stop

:~# /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &

:~# mysql -u root flush-privileges password "mia_psw"

:~# /etc/init.d/mysql restart

:~# mysql

Quando riesco ad entrare nella console di mysql...

Provo a ridare i permessi con:

Codice: [Seleziona]
USE mysql
UPDATE mysql.user SET Password = OLD_PASSWORD('nuova_psw') WHERE Host = 'localhost' AND User = 'root';
FLUSH PRIVILEGES;

Ma l'UPDATE mi restituisce che non esiste una colonna 'Host'... (E se la ometto) mi restituisce che non esiste una ROW con un User='root';
Quindi ho pensato di inserirlo con INSERT INTO... Lo inserisce ma non succede nulla...

 :hatecomputer:

PS. Non sapendo come fare per rendere stabile mysql (ho provato anche a rimuoverlo e reinstallarlo... ma mi restituisce lo stesso medesimo 'Error 1045 (28000): Access denied...", sto scaricando di nuovo Ubuntu10.04 e mi accingo ad una reinstallazione completa del sistema. Se per stasera non ho risolto... entro domani mi trovo costretto a rinnovare tutto.

27
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Vi è mai capitato?
A me è comparso ieri per la prima volta... poi, non so come, dopo diversi tentativi sono riuscito a connettermi di nuovo al server di mysql.

Oggi è comparso di nuovo, ma stavolta non c'è verso! Ho seguito mille HowTo, ma niente... Non riesco a risolverlo.

Spero in un vostro consiglio o aiuto!  :hatecomputer:  :hard:

28
Programmazione (Gambas 2) / Re: [risolto]query e lettere accentate
« il: 20 Dicembre 2010, 01:04:19 »
http://dev.mysql.com/doc/refman/5.1/en/string-functions.html

Volevo intendere che è una funzione sulle stringhe che adotta MySQL...

@dex:
Non sapevo che con la funzione di gambas string.chr(unicode as integer) potessi scrivere qualsiasi carattere unicode.
Prova...

TextBox1.Text = "Questa è la lettera beta " & string.chr(8674) & " " & string.chr(946)

Ti restituisce:

'Questa è la lettera beta ⇢ β'

PS. notare la freccia tratteggiata...  ;)
PPS. il valore di unicode as integer da mettere dentro string.chr(...) è quello che trovi in "Tabella dei Caratteri" (sotto applicazioni) --> nel 'tab' dettagli carattere --> entità XML decimale: β --> solo la parte decimale 946.

29
Programmazione (Gambas 2) / Re: [risolto]query e lettere accentate
« il: 19 Dicembre 2010, 23:55:04 »
Ho già fatto la prova anche con PDFWriter... Tutt'Ok!  :ok:

Ho stampato perfettamente generato questa riga dal DB settato a UTF-8: 'a μ à è € $ À'.
la prima a era una lettera alfa ('α'), ma con il replace gliela faccio convertire in 'a'. La 'μ' si trova anche nell'ASCII esteso di PDFWriter, come chr(181).

Sostanzialmente PDF-Writer genera il testo esattamente come prima, però immagina se MD troverà il tempo per fare il porting alla TFPDF (FPDF esteso all'UTF8...) avremmo la possibilità di stampare anche il cinese...  ;D

30
Programmazione (Gambas 2) / Re: [risolto]query e lettere accentate
« il: 19 Dicembre 2010, 18:04:56 »
Dex,

credo di poterti dare delle notizie interessanti! Lo spero...  :)

Per fare una prova ho creato in MySQL un database con una tabella ed un campo. Ho usato immediatamente come Charset = UTF-8 Unicode... e come Collation = UTF8_generali_ci.
Poi ho popolato il DB con delle parole accentate: città, cioè, ancòra, così, ecc.

Poi sono passato a Gambas ed ho creato un programmino per interrogare il db. Quando da ho lanciato la Query con LIKE non mi restituiva più errore...
Ad esempio...
Se la ricerca usa "....LIKE '%à%';" mi restituisce tutte le parole contenenti 'a' oppure 'à' --> 'città' ed 'ancòra'.
Ho provato poi a cambiare la stringa di ricerca con REGEXP --> "....REGEXP '.*à.*';" --> questa a differenza di LIKE è case-accentate... quindi mi restituiva solo 'città'.

Quindi REGEXP batte LIKE 2 a 1...  ;D


NB: La differenza tra ASCII e UTF8 sta nel fatto che quest'ultima codifica richiede per alcuni caratteri più byte, quindi il carattere di Latin1 'à' in UTF8 diventa con 3byte... 'ÃÂ' ... Però se lo inserisci direttamente da UTF8 lo legge come lo scrivi. Quindi credo bisogna effettuare un processo di conversione per passare dall'uno all'altro.

Pagine: 1 [2] 3 4 ... 18