Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-10-2005, 20:52   #1
Traxsung
Senior Member
 
L'Avatar di Traxsung
 
Iscritto dal: Apr 2005
Messaggi: 5245
[Delphi] Gestionale

Sto realizzando un piccolo gestionale per l'azienda dove lavoro. Come linguaggio di programmazione o scelto Delphi. Per quanto riguarda invece le varie query sul database ho scelto sql e quindi mysql. Il progetto è ancora in fase di sviluppo solo che ho un problema che preferirei risolvere adesso. In pratica mi piacerebbe sapere come posso fare a far si che una volta terminato il mio gestionale... io possa realizzare un'eseguibile(l'installazione per capirci) così di poterlo installare in altri computer senza dover ogni volta installare mysql su ogni computer.
Inoltre visto che utilizzo un database mysql... vorrei sapere anche come posso fare per inblobarlo nell'exe.
So che rompo sempre... ma è meglio che risolva questo problema il prima possibile altrimenti poi mi ritrovo con il gestionale terminato... ma senza riuscire ad installarlo su altri computer.
Traxsung è offline   Rispondi citando il messaggio o parte di esso
Old 02-10-2005, 14:24   #2
Traxsung
Senior Member
 
L'Avatar di Traxsung
 
Iscritto dal: Apr 2005
Messaggi: 5245
nessuno sa aiutarmi
Traxsung è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2005, 10:18   #3
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Lavorando con Delphi, ti consigli di utilizzare InterBase (o FireBird, che è il ramo open source che è nato da IB 6): è supportato direttamente da Delphi, e inoltre è un engine SQL estremamente potente, veloce (non quanto MySQL, sia chiaro) e affidabile.

Te lo consiglio anche perché ti permette di centralizzare l'accesso al database, realizzando dei tiny client: buona parte del codice la puoi spostare all'interno del server InterBase.
In soldini questo si traduce nella richiesta, da parte di un client, di una certa operazione (passando eventualmente dei parametri a IB) e alla semplice visualizzazione del risultato.

Per quanto riguarda l'installazione, ci sono prodotti come InstallShield che permettono di realizzare il classico Setup della tua applicazione in poco tempo. IS supporta benissimo Delphi e InterBase.

Non puoi integrare il database di MySQL (o InterBase) nell'eseguibile dell'applicazione.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 03-10-2005, 12:23   #4
Traxsung
Senior Member
 
L'Avatar di Traxsung
 
Iscritto dal: Apr 2005
Messaggi: 5245
io non conosco InterBase.... quindi mi troverei completamente spiazzato... invece mi trovo più a mio agio con l'accoppiata Delphi+Mysql+SQL.
Per quanto riguarda InstallShield... esiste la possibilità di far installare prima Mysql e poi la mia applicazione??
Traxsung è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2005, 10:10   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da Traxsung
io non conosco InterBase.... quindi mi troverei completamente spiazzato... invece mi trovo più a mio agio con l'accoppiata Delphi+Mysql+SQL.
Capisco che è una questione di abitudine, ma considera che Delphi ha un supporto completo a InterBase: collegarsi al db è roba di pochi minuti (secondi per chi ci è abituato ), e utilizzare componenti che visualizzano edit, combobox, griglie, ecc. che prendono i valori dal database è una vera bazzecola. Si realizza in pochissimo tempo un'applicazione che accede a un DB InterBase, proprio grazie al fatto che Delphi ha già integrato parecchi componenti che fanno tutto il lavoro.

Secondo me è meglio spendere un'oretta guardando l'esempietto in dotazione a Delphi su come interfacciarsi a InterBase e come usarlo, piuttosto che utilizzare un altro server SQL perdendoci più tempo.

Poi fa tu, il mio è soltanto un consiglio, visto che ci sono già passato in mezzo...
Quote:
Per quanto riguarda InstallShield... esiste la possibilità di far installare prima Mysql e poi la mia applicazione??
Sì, puoi fare quello che vuoi: basta configurarlo. Su questo, però, non ti posso aiutare: non l'ho mai fatto (per i miei programmi ho realizzato un installer apposito ).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 04-10-2005, 11:50   #6
Traxsung
Senior Member
 
L'Avatar di Traxsung
 
Iscritto dal: Apr 2005
Messaggi: 5245
Potresti farmi vedere/avere un esempio usando InterBase?? Cmq io ho optato principalmente per Mysql+Sql perchè mi sono molto comodi i comandi Select ecc... In InterBase... esistono dei comandi simili??
Traxsung è offline   Rispondi citando il messaggio o parte di esso
Old 05-10-2005, 11:17   #7
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Scherzi? InterBase DA ANNI offre un ambiente (quasi) SQL-92 compliant.

Anzi, MySQL soltanto da poco tempo ha introdotto l'integrità referenziale fra tabelle, e le transazioni. Cose più raffinate come i trigger e le stored procedure arriveranno soltanto la versione 5.0 di MySQL, e l'implementazione non sarà flessibile come quella già offerta (da tempo) da IB...

Quanto all'esempio, ti invito a dare un'occhiata al demo IBXMastAppl (o qualcosa di simile: non ricordo bene il nome), che è molto ricco.

Comunque ti do delle dritte per realizzare in pochi minuti un'applicazione che s'interfaccia con un database InterBase.


1) Con IBConsole, che è un'applicazione fornita in dotazione con InterBase, collegati al server, effettua il login (all'inizio c'è solo l'utente "SYSDBA" con password "masterkey" che è l'account di amministratore: cambiagli subito la password subito dopo!), dopodiché dall'icona database col tasto destro seleziona create...

Si aprirà una finestra con la quale deciderai il nome del database (InterBase utilizza un solo file per memorizzare TUTTE le informazioni sulla sua struttura, sulle tabelle, sui dati, ecc.).
Ti consiglio di utilizzare come estensione ".ib" e non ".gdb" (che è quella storicamente usata), perché con questa estensione Windows XP archivierà automaticamente il file nel system restore alla sua chiusura se avrà subito modifiche, e quindi con un degrado delle prestazioni di InterBase. ".ib" è l'estensione suggirita da Borland e che ti consiglio di usare.

Dopo aver creato il database, che risulterà aperto, cliccando col tasto destro sul pannello (vuoto inizialmente) a destra, scegli la voce "create table..." (o giù di lì) e si aprirà un'altra finestra che ti permetterà di costruire la tua bella utilizzando l'interfaccia interamente a caratteri. Se hai esperienza con campi, tipo di dato, valori "not null", ecc. ti sarà molto facile capirne il funzionamento (è veramente molto intuitiva ). Potrai definire anche la chiave primaria, eventuali indici, vincoli di integrità referenziale e vincoli calcolati in maniera molto semplice.
Chiaramente questo dipende strettamente dall'infarinatura "di base" che hai coi database.

Capitolo creazione database chiuso: passiamo al Data Module.


2) Una volta creato il database, passiamo a Delphi. Ti consiglio di crea un nuovo "Data module" nella tua applicazione, dove "centralizzerai" i componenti per l'accesso ai dati. Questo lo fai dal menù File/ New / Other... e clickando sull'apposita iconcina.
A questo punto puoi utilizzare i componenti "nativi" di InterBase che Delphi mette a disposizione per collegarti subito al database. Esistono 2 tab dedicati a InterBase: uno per i componenti di amministrazione ("InterBase Admin": per creare utenti, effettuare backup, ecc. ecc.), e l'altro per collegarti a tabelle, query, stored procedure, ecc. ("InterBase Controls". Entrambi i nomi prendili con le pinze, perché non ho una buona memoria purtroppo... ).

Cerca TIBDatabase e TIBTransaction, selezionali e trascinali nel form del DataModule. Quindi come proprietà del primo metti in DatabaseName il percorso completo del file del database; poi clicka su Params e troverai già la voce 'user_name=SYSDBA'; aggiungigli 'password=masterkey' (se non hai cambiato la password, ma fallo prima possibile!!!); poni LoginPrompt a False (il login lo farà automaticamente coi parametri appena passati ); poi in DefaultTransaction seleziona il componente TIBTransaction che fa compagnia a TIBDatabase.

A questo punto metti Connected a True nel componente TIBDatabase e Active a True in quello TIBTransaction, e il gioco è fatto: sei connesso al database, e hai anche la transazione già aperta...

Capitolo Data Module chiuso: passiamo al form che userà l'utente per accedere ai dati. Da premettere che per tutti i form che vorranno accedere ai dati, dovrai PRIMA eseguire File / Use unit... e selezionare il Data Module appena creato, così potranno "vedere" e accedere ai componenti in esso contenuti.


3) Per accedere ai dati puoi utilizzare traquillamente i controlli standard che Delphi mette a disposizione (DBEdit, DBComboBox, ecc.).
Ti ricordo che tutti questi componenti hanno bisogno che nel campo DataSource sia selezionato un componente DataSource, che a sua volte è collegato al componente discendente da TDataSet che fornire i dati veri e propri. Ma andiamo con ordine.

Mettiamo che tu voglia accedere a tutti i record di una tabella di InterBase. Il componente ideale in questo caso è TIBTable: lo prendi dal tab dei controlli di InterBase, e lo trascini sul form. Nei campi DataBase metti il componente TIBDataBase (ce n'è soltanto uno, "preso" dal Data Module: basta selezionarlo ) e in Transaction il TIBTransaction; poi in TableName scegli il nome della tabella a cui t'interessa accedere. A questo punto basta impostare Active a True, e i record della tabella verrano prelevati dal db.

Per visualizzarli, trascina un componente TDataSource sul form, come DataSet seleziona il componente TIBTable appena creato.

A questo punto basta trascinare un qualunque componente DB di Delphi: prendiamo il TDBGrid, che ci consente di visualizzare i record sotto forma di griglia, appunto. Basta selezionare come DataSource quello appena creato, impostare Active a True, e il gioco è fatto!


4) TIBTable è un componente comodo, ma anche dispendioso in termini di tempo e risorse occupate. Se t'interessa avere soltanto alcuni campi della tabella, o vuoi applicare un filtro ai dati, ti consiglio di usare la più flessibile TIBQuery. Con questa imposti la tua query nel campo SQL, e avrai pieno controllo di ciò che ti serve prelevare.

Se ti serve eseguire una query di tipo INSERT, DELETE o UPDATE, ti consiglio di usare il componente TIBSQL. Anche per questo imposti in SQL l'istruzione SQL, con l'accortezza di mettere i due punti ':' e un identificatore dove ti serve inserire un parametro, da passare poco prima dell'esecuzione della query.

Metti, ad esempio, che la query da eseguire sia questa: "INSERT INTO Anagrafica VALUES(:Nome, :Cognome, :Citta)". Quando dovrai eseguire la query da programma, farai qualcosa di simile a questo:

Codice:
  with SQLInsert do begin
    ParamByName('Nome').AsString := 'Mario';
    ParamByName('Cognome').AsString := 'Rossi';
    ParamByName('Citta').AsString := 'Roma';
    ExecQuery;
  end;
Supponendo che SQLInsert sia il nome del componente TIBSQL. Il gioco è fatto.

Attenzione: TIBSQL ti permette anche di prelevare dei record da una query, in maniera molto più veloce che con TIBQuery (che è un componente che torna dati a componenti visuali).
Esempio: SELECT COUNT(*) FROM Anagrafica è la query inserita in SQLCount di tipo TIBSQL. Tornerà soltanto un valore, che potrai prelevare semplicemente con:

Codice:
  
var
  NumRecords: Integer;
begin
  with SQLCount do begin
    ExecQuery;
    NumRecords := Fields[0].AsInteger;
    Close;
  end;
end;
Se invece vuoi vedere come prelevare tutti i record da una query che ne può tornare più di uno, il codice è di poco diverso.

Mettiamo che sia query sia questa: SELECT ID FROM Anagrafica WHERE Citta = :Citta

Codice:
  
  with SQLIDRoma do begin
    ParamByName('Citta').AsString := 'Roma';
    ExecQuery;
    while not EOF do begin
      Writeln('ID = ', Fields[0].AsString);
      Next;
    end;
    Close;
  end;
Da notare l'uso del parametro Citta...


OK, penso che proprio che ti possa bastare, eh!
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
GPT-Live, la nuova voce di ChatGPT parla...
Chiedi all'IA di clonare un repository, ...
Costruire una VGA in casa senza un chip ...
Renault ha rifiutato due volte BYD: l'az...
Appena 9.000 imprese innovative in 25 an...
Anthropic (di nuovo) sotto accusa: chies...
HP OMEN MAX 16 con RTX 5080 e Core Ultra...
Tilly Norwood arriva al cinema: via all'...
5G slicing per le comunicazioni di emerg...
BYD SHARK, 436 CV e fino a 90 km in elet...
Quali sono i migliori produttori di tecn...
Come guardare YouTube senza pubblicit&ag...
Il telescopio spaziale europeo ESA Eucli...
Addio stampa 3D a strati: il metodo che ...
Data center ed energia green: Aruba acqu...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:05.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v