Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
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


Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Microsoft Defender: falso allarme sull'a...
Aerei in volo e truppe pronte all'assalt...
Usano Claude per hackerare OpenAI: ricer...
RatHat: il nuovo malware Android usa il ...
Domanda di petrolio in calo di 2,5 milio...
Il meglio delle offerte weekend Amazon a...
Dopo oltre 100 anni di tentativi, l'IA d...
Speciale robot aspirapolvere in offerta ...
L'IA sta cancellando i lavori junior? Il...
Debutta Chery Italia: non più sol...
Addio ai dischi? Xbox ci aveva già...
Speciale TV Amazon: 4 modelli, da 139€ f...
Il nuovo iPhone 18 Pro Max ha una ricari...
Speciale smartphone Android: 7 modelli i...
La Camera USA presenta il conto: i data ...
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: 16:50.


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