* * * *

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 16, 2024, 04:01:23 pm

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

49 Visitatori, 0 Utenti

Autore Topic: connessione sqlite  (Letto 2132 volte)

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
connessione sqlite
« il: Settembre 23, 2020, 12:14:46 pm »
Buongiorno a tutto il team!
Sono nuovo all'ambiente Lazarus, visto che programmo da decenni in altri linguaggi.
Ho deciso questo approccio visto che Lazarus è cross-platform e poi alla mia età non ho intenzione di spendere soldi solo per divertimento.
Dopo aver risolto qualche problema di installazione, ora mi trovo con un altro strano problema. Come potete vedere dallo screenshot, a fine compilazione mi ritrovo con un errore, solo perchè ho inserito la unit "cmem" come consigliato. Il tentativo di unire cmen serve a vedere se riesco a compilare quella benedetta grid, che come potete osservare rimane vuota, dopo aver però riconosciuto i titoli di campo.
L'errore non concerne la presenza dei drivers sqlite in quanto con sqlitemanager lavoro tranquillamente sul DB. Sembra proprio che vi sia qualche settaggio mancante per il riconoscimento del percorso al driver necessario.Mi potete aiutare? Grazie in anticipo!

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:connessione sqlite
« Risposta #1 il: Settembre 23, 2020, 12:59:03 pm »
Ciao, in passato mi creava quel problema avere un TDBNavigator sulla form. Dall'immagine non capisco se c'è nella parte nascosta. Se si prova a rimuoverlo e compila. Non dovrebbe centrare con sqlite quel tipo di problema.
Ieri è passato, domani è futuro, oggi è un dono...

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:connessione sqlite
« Risposta #2 il: Settembre 23, 2020, 01:39:04 pm »
Cosa ho trovato su cmem:

Se includi l'unità cmem nella clausola uses del tuo programma, sostituirà il gestore di memoria nativo di Free Pascal con il gestore di memoria della libreria C. Tutta la gestione della memoria viene quindi eseguita dal gestore della memoria C.

L'unità dovrebbe essere la prima unità nella clausola uses, altrimenti la memoria può già essere allocata dalle routine di inizializzazione nelle unità che vengono inizializzate prima dell'installazione del gestore di memoria C.

C'è un piccolo programma di esempio testcmem, che dimostra l'uso dell'unità cmem.

CMem non deve essere utilizzato se viene utilizzato heaptrc.
Ieri è passato, domani è futuro, oggi è un dono...

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
Re:connessione sqlite
« Risposta #3 il: Settembre 23, 2020, 02:10:34 pm »
Grazie per la risposta! Allora il navigator non l'ho messo per il momento e pertanto non sta li il problema. Il cmem ho provato a metterlo solo per vedere se cambiava qualcosa, ma in tal caso non solo la griglia non si compila, ma nemmeno il programma funziona, pertanto lo devo togliere.
A questo punto, visto che i files di libreria sqlite ci sono in cartella /usr/share/lazarus/2.0.10/components/sqlite/, non so proprio come fare a risolvere il problema.

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:connessione sqlite
« Risposta #4 il: Settembre 23, 2020, 02:14:18 pm »
Domanda stupida: il pacchetto libsqlite3-dev lo hai installato?
Ieri è passato, domani è futuro, oggi è un dono...

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
Re:connessione sqlite
« Risposta #5 il: Settembre 23, 2020, 02:19:12 pm »
questi sono i pacchetti installati per le librerie, oltre a sqlite3

xinyiman

  • Administrator
  • Hero Member
  • *****
  • Post: 3249
  • Karma: +12/-0
Re:connessione sqlite
« Risposta #6 il: Settembre 23, 2020, 04:06:50 pm »
Sarebbe bello avere il messaggio di errore dopo che hai tolto l'unità cmem.
Ieri è passato, domani è futuro, oggi è un dono...

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
Re:connessione sqlite
« Risposta #7 il: Settembre 23, 2020, 06:12:00 pm »
Se tolgo l'unità 'cmem' non compare alcun errore! La tabella assume il nome dei campi ma rimane vuota, ovvero come vedi dallo screenshot tutti i campi contengono MEMO.
Il numero dei records, ovvero le righe riempite sono tante quanto il numero dei records, ma di contenuto non se ne parla!
A proposito. Ho scaricato il tuo esempio Prima Applicazione e l'ho fatto compilare. Tutto OK ma visto che il DB è vuoto provo ad aggiungere un record con il navigatore.
Risultato: non accade nulla.
Per completare le info, sappi che Lazarus l'ho installato con i pacchetti .deb scaricati, fpc 3.2 e lazarus 2.0.10!
« Ultima modifica: Settembre 23, 2020, 06:19:21 pm da giango »

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
Re:connessione sqlite
« Risposta #8 il: Settembre 23, 2020, 06:49:50 pm »
Ho provato a cambiare il DB nel tuo esempio e creare l'eseguibile.
Come vedi dallo screenshot, il problema si ripete

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:connessione sqlite
« Risposta #9 il: Settembre 23, 2020, 07:41:18 pm »
Vado a memoria, ma mi sembra di ricordare che questo sia un comportamento normale: i campi Memo non vengono visualizzati nella DBGRID, perché potrebbero anche contenere i caratteri per andare a capo, e comunque essere molto lunghi.
Questo indipendentemente dal DB: anni fa', avevo avuto lo stesso problema con un DB di Access.


Al momento non ho modo di provare, ma se vai nell'oggetto DBGrid, proprietà "Options", ed espandi il tutto, c'è l'opzione "dgDisplayMemoText". Magari se la attivi, ottieni quello che vuoi

Ciao, Mario
« Ultima modifica: Settembre 23, 2020, 07:45:12 pm da bonmario »

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
Re:connessione sqlite
« Risposta #10 il: Settembre 23, 2020, 07:56:06 pm »
E' una cosa che avevo pensato anche io quella che dici bonmario, ma se apro la struttura della table con sqlitebrowser mi ritrovo tutti i campi a TEXT e solo ID numerico. Pertanto non so più cosa guardare!

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:connessione sqlite
« Risposta #11 il: Settembre 23, 2020, 08:20:01 pm »
Hai provato a fare questo che ti ho scritto nel post precedente?

Al momento non ho modo di provare, ma se vai nell'oggetto DBGrid, proprietà "Options", ed espandi il tutto, c'è l'opzione "dgDisplayMemoText". Magari se la attivi, ottieni quello che vuoi

Io non ho più il caso, quindi non posso fare la prova.

Ciao, Mario

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
Re:connessione sqlite
« Risposta #12 il: Settembre 23, 2020, 08:32:20 pm »
Avevi proprio ragione bonmario!!!!!!!!!
Tutto cambia attivando l'0pzione <dgDisplayMemoText>
Come per magia la griglia si riempie correttamente anche in fase di editing.
Il fatto che tutte le opzioni fossero collassate e non visibili mi ha tratto in inganno.
D'altra parte se non lo fossero la lista sarebbe estremamente lunga.
Sbagliando s'impara. Grazie molte per il tuo aiuto!

bonmario

  • Hero Member
  • *****
  • Post: 1300
  • Karma: +10/-1
Re:connessione sqlite
« Risposta #13 il: Settembre 23, 2020, 08:45:39 pm »
Io l'ho scoperto così:

Nella parte alta dell'Object Inspector, seleziona la DBGrid.
Se ci fai caso, appena prima delle varie proprietà, c'è un filtro.
Lasciando selezionata la DBGrid, scrivi in quel filtro "Memo" (senza virgolette)
Come per magia, oltre a qualche "falso positivo" che mostra, vedrai che c'è proprio quello di cui ti scrivevo nei post precedenti !

Ciao, Mario

giango

  • Newbie
  • *
  • Post: 20
  • Karma: +1/-0
Re:connessione sqlite
« Risposta #14 il: Settembre 23, 2020, 09:22:58 pm »
Una funzione utilissima direi! Con la marea di funzioni,comandi,bottoni,etc, senza dubbio ci vorrà il suo tempo per scoprire altre peculiarità.
Un ottimo software questo Lazarus, con un grande merito a chi lo ha sviluppato!
Grazie di nuovo per il tuo prezioso contributo.

 

Recenti

How To

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

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.