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

TDD o Test-Driven Development
immagine docker per lavorare con lazarus e free pascal
Indice
Installare lazarus su mac osx sierra
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non)
Advanced Record Syntax: un esempio pratico
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
DB concetti fondamentali e DBGrid
Advanced Record Syntax
DB concetti fondamentali e ZeosLib
DB concetti fondamentali e connessioni standard
guida all'installazione di fpc trunk da subversion in linux gentoo
Creare un server multithread
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Free Pascal e Lazarus sul Raspberry Pi
fpcup: installazioni parallele di lazarus e fpc
Ubuntu - aggiornare free pascal e lazarus
Come interfacciare periferica twain
Lazarus 1.0
Aspetto retrò (Cmd Line)
Disporre le finestre in un blocco unico (come Delphi)
Zeos ... dietro le quinte (prima parte)
Lavorare con file in formato JSON con Lazarus
Overload di operatori
Dataset virtuale
Linux + Zeos + Firebird
Pascal Script
La gestione degli errori in Lazarus
Indy 10 - Invio email con allegati
Brute force
Le permutazioni
Da DataSource a Excel
StatusBar - aggirare l'errore variabile duplicata
Visualizzare un file Html esterno
Evidenziare voci TreeView
Toolbar
Direttiva $macro
Indy gestiore server FTP lato Client
TImage su Form e Panel
PopUpMenu sotto Pulsante (TSpeedButton)
Conversione numerica
Proprietà
Funzioni a parametri variabili
Overload di funzioni
Liste e puntatori
Conferma di chiusura di un applicazione
Il file: questo sconosciuto
UIB: Unified Interbase
System Tray con Lazarus
Intercettare tasti premuti
LazReport, PDF ed immagini
Lazarus e la crittografia
Ampliare Lazarus
Generare controlli RUN-TIME
TTreeview e Menu
TTreeView
Utilizzare Unità esterne
Lavorare con le directory
Realizzare programmi multilingua
Codice di attivazione
File INI
Esempio lista in pascal
Stabilire il sistema operativo
Recuperare codice HTML da pagina web
Trascinare un file nel programma
Mandare mail con Lazarus
Welcome to Italian community of Lazarus and Free Pascal. Please login or sign up.

Recenti

How To

Utenti
Stats
  • Messaggi totali: 20.582
  • Totale discussioni: 2.471
  • Online today: 310
  • Online ever: 5.949 (Luglio 30, 2026, 09:49:59 PM)
Utenti online
5 Visitatori, 1 Utente

SQLite3, Linux e Samba share

Aperto da sanric, Aprile 01, 2024, 09:51:12 AM

Discussione precedente - Discussione successiva

sanric

Salve a tutti,
sto scrivendo un piccolo applicativo per la mia attività ed ho bisogno di accedere ad un modesto database SQLite3 su di una share di tipo Samba.
Sotto Windows la cosa è molto facile, del tipo:

SQLite3Connection.DatabaseName:='\\Archivio\SQL\mioDatabase.db';


Tuttavia trovo difficoltà a fare la stessa cosa se devo costruire l'applicativo sotto Linux Mint, dal momento che alcuni collaboratori usano quel sistema operativo.
Come faccio ad indirizzare correttamente il database?
Ho provato con

SQLite3Connection.DatabaseName:='smb://Archivio/SQL/mioDatabase.db';


ma non funziona.
Devo necessariamente creare un mount-point per la condivisione SMB?

DragoRosso

#1
Anticamente usavo anche io lo stesso formato, però forse ora necessitano le autorizzazioni ?
Vedi questo articolo: https://wiki.ubuntu-it.org/Server/Samba
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

slapshot

Citazione di: sanric il Aprile 01, 2024, 09:51:12 AM


SQLite3Connection.DatabaseName:='smb://Archivio/SQL/mioDatabase.db';


ma non funziona.
Devo necessariamente creare un mount-point per la condivisione SMB?

Ciao ! Intanto proverei a capire il codice di errore che ti viene restituito. "Non funziona" è un pò troppo generico. Prova dalla shell ad entrare nella condivisione samba oppure, in base al DE che stai usando, da Dolphin (KDE), Thunar (Xfce4) ecc..

Aggiornaci !



nomorelogic

Ciao

Non vorrei rompere le uova nel paniere ma non credo che sia l'approccio corretto almeno per 2 motivi

Il primo è che SqLite va bene per le applicazioni monoutente ma non credo si adatto ad accesso in multiutenza.

Il secondo motivo è che esporre il file del database in una cartella condivisa è una pratica non corretta in quanto si espone il db a parecchi rischi ed inoltre samba (win o Linux non fa differenza) non è stato concepito per questo uso ma per trasferire file.

Credo che dovresti considerare l'uso di un db da installare come server da qualche parte. Forse MySql può essere una scelta interessante in quanto lo puoi facilmente installare con wamp/lamp e simili

Ad ogni modo, buon lavoro
Imagination is more important than knowledge (A.Einstein)

sanric

Citazione

Ciao ! Intanto proverei a capire il codice di errore che ti viene restituito. "Non funziona" è un pò troppo generico. Prova dalla shell ad entrare nella condivisione samba oppure, in base al DE che stai usando, da Dolphin (KDE), Thunar (Xfce4) ecc..

Aggiornaci !

Comprendo che "non funziona" sia un tantinello generico!  ;D
Semplicemente, "non trova il file": in altre parole, sto usando una scrittura corretta?
Per il resto la share SMB ha tutte le difese abbassate: non si tratta di un database di enorme importanza e si può accedervi liberamente all'interno della LAN.

slapshot

Al netto di ciò che correttamente afferma @nomorelogic direi di provare da shell:

1. smbclient -L per avere una lista delle share smb e quindi capire se c'è un problema
2. modificare la stringa di connessione in: //Archivio/SQL/mioDatabase.db senza riferimento al protocollo ma credo dovrai aggiungere almeno l'ip del server.


xinyiman

Io fossi in te prima di dedicare altro tempo al problema da te menzioanto dedicherei del tempo alle segnalazioni fatte da @nomorelogic.

Quello che cerchi di fare è proprio sbagliato concettualmente. Se sei alle battute iniziali fossi in te prenderei in considerazione l'idea di migrare immediatamente a FirebirdSQL o a PostgresSQL. Tanto se non lo fai adesso lo fai tra pochi mesi.
Ieri è passato, domani è futuro, oggi è un dono...

Stilgar

azz, da sqlite a postgress ...
Cioè dalla fionda all'atomica in una manciata di caratteri ... xiny ... solo tu poi arrivare a tanto  ;D ;D ;D ;D
Al mondo ci sono 10 tipi di persone ... chi capisce il binario e chi no.

xinyiman

Citazione di: Stilgar il Aprile 02, 2024, 08:45:45 AM
azz, da sqlite a postgress ...
Cioè dalla fionda all'atomica in una manciata di caratteri ... xiny ... solo tu poi arrivare a tanto  ;D ;D ;D ;D

Bhe sai, io sono famoso per il mio modo di fare graduale  ;D ;D
Ieri è passato, domani è futuro, oggi è un dono...

sanric

Citazione di: xinyiman il Aprile 02, 2024, 08:41:56 AM
Io fossi in te prima di dedicare altro tempo al problema da te menzioanto dedicherei del tempo alle segnalazioni fatte da @nomorelogic.

Quello che cerchi di fare è proprio sbagliato concettualmente. Se sei alle battute iniziali fossi in te prenderei in considerazione l'idea di migrare immediatamente a FirebirdSQL o a PostgresSQL. Tanto se non lo fai adesso lo fai tra pochi mesi.

Le segnalazioni fatte da @nomorelogic sono giustissime se non fosse per il fatto che il database viene usato da una sola persona (tra quelle dell'ufficio) al giorno, di solito a fine orario lavorativo.
Il problema della multiutenza quindi non sussiste: il problema è (e resta) come indirizzare correttamente un file su Linux se esso è contenuto dentro una share SMB.  ;D

xinyiman

Ricapitolando, tu la share samba sulla macchina linux l'hai montata. Hai provato ad accedere alla cartella dove risiede tramite shell? Se si, hai provato ad usare il path che hai digitato nella shell per accederci? Se si e non ha funzionato, hai provato a creare un link sul tuo desktop che punta al file sulla share e mettere nel programma lazarus il riferimento al path del link al file?
Ieri è passato, domani è futuro, oggi è un dono...

slapshot

Citazione di: sanric il Aprile 04, 2024, 08:08:58 AM
Citazione di: xinyiman il Aprile 02, 2024, 08:41:56 AM
Io fossi in te prima di dedicare altro tempo al problema da te menzioanto dedicherei del tempo alle segnalazioni fatte da @nomorelogic.

Quello che cerchi di fare è proprio sbagliato concettualmente. Se sei alle battute iniziali fossi in te prenderei in considerazione l'idea di migrare immediatamente a FirebirdSQL o a PostgresSQL. Tanto se non lo fai adesso lo fai tra pochi mesi.

Le segnalazioni fatte da @nomorelogic sono giustissime se non fosse per il fatto che il database viene usato da una sola persona (tra quelle dell'ufficio) al giorno, di solito a fine orario lavorativo.
Il problema della multiutenza quindi non sussiste: il problema è (e resta) come indirizzare correttamente un file su Linux se esso è contenuto dentro una share SMB.  ;D

Cosa ti vincola nel creare un mount point sul pc dove gira il software ? Hai già provato il mounting ed hai errori ? A questo punto credo sarebbe la cosa più semplice visto che c'è un solo utente (e presumibilmente lavora sempre dallo stesso pc).




nomorelogic

Citazione di: slapshot il Aprile 04, 2024, 09:53:22 AM
Cosa ti vincola nel creare un mount point sul pc dove gira il software ? [...]

in effetti se le cose stanno così basta montare la condivisione
definisci il punto di mount in /etc/fstab e te le trovi già montato e pronto all'uso all'avvio
Imagination is more important than knowledge (A.Einstein)

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.