Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 01-10-2005, 21: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, 15: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, 11: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, 13: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, 11: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, 12: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, 12: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


Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Il paradosso dell'IA: aumenta la produtt...
Oltre 2 TB di dati su un foglio A4: &egr...
Turboden realizza la più grande p...
SEGA pronta al debutto del misterioso 'S...
Microsoft ce l'ha fatta: adesso il 100% ...
Cuffie Hi-Res eleganti, con ANC e 100 or...
Processo a Meta, Zuckerberg difende Inst...
Password in pericolo: scoperte gravi lac...
Pentagono e Anthropic ai ferri corti: in...
eBay acquisisce Depop da Etsy per 1,2 mi...
The Elder Scrolls VI userà motore...
Action cam 8K al prezzo giusto: Insta360...
Stop improvviso per Blue Jay: la nuova s...
Lyria 3 sbarca su Gemini: adesso si può ...
Apple Watch SE 3 da 229€, con cassa da 4...
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: 13:25.


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