Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,275

    delphi tabella dbase III

    Salve a tutti,

    sto scrivendo una semplice applicazione con cui dovrei navigare su una tabella (files DBF di dbase III)
    il file si chiama citta.dbf e contiene solo 2 campi:

    codice c 5
    nome c 30


    1) ho creato nuovo form

    2) ho inserito il componente tabella sulla form e in databasename ho selezionato "file dbase", in tablename ho scritto citta

    3) ho inserito il DataSource ed ho inserito in DataSet "citta"

    4) ho inserito DBNavigator e settato DataSource in DataSource1

    5) poi ho inserito un componente DBEdit, settato DataSource in DataSource1
    Poi dovevo settare DataField, e li mi sarebbero dovuti uscire i campi della mia tabella citta (ricordo che sono codice e nome)....ma non uscivano!

    certamente ho saltato qualche passaggio! ma non capisco...


    xfavore qualcuno mi puo aiutare...

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,904
    Dal tuo messaggio non è chiaro, ma suppongo che tu abbia utilizzato il componente TTable, quindi ti stai di fatto appoggiando sulla libreria BDE (Borland Database Engine) per accedere alla base dati.

    Le cose non sono così semplici: il BDE lavora attraverso degli alias, che non sono altro che gruppi di impostazioni salvate all'interno di un profilo al quale viene attribuito un nome.
    Gli alias si creano utilizzando il BDE Administrator: lo trovi nel Pannello di Controllo.

    Usando il BDE Administrator, devi creare un alias per il formato dBaseIII (che tra l'altro non sono certo sia supportato).

    La proprietà DatabaseName del componente TTable va impostata selezionando dalla casella a discesa nell'Object Inspector il nome dell'alias che fa riferimento al database al quale vuoi accedere.

    Per maggiore comodità, ti suggerisco di usare anche il componente TDatabase: lo inserisci nel progetto e ne imposti l'alias collegando il componente al database in esame; successivamente, modifichi la proprietà DatabaseName inserendo al suo interno un nome che verrà visto da tutti i componenti TTable come un alias locale alla tua applicazione. In questo modo, puoi facilmente modificare in modo centralizzato le proprietà del database senza dover assegnare nuovamente o modificare l'alias impostato nelle singole tabelle rappresentate dai componenti TTable.

    Spero di averti dato una sufficiente infarinatura sul BDE; ad ogni modo, devo dirti che la piattaforma BDE è stata dichiarata da Borland obsoleta: ne minacciano continuamente l'abbandono, ma in realtà esiste ancora addirittura nella versione 8 di Delphi, basata sul framework .NET di Microsoft.

    Siccome non sono certo della possibilità di accedere a file dBase tramite il BDE, magari prova a cercare in rete qualche componente di terze parti che sia in grado di accedere a tale formato, oppure (se si trattava solo di una prova) utilizza Paradox o - meglio ancora - InterBase, sebbene quest'ultimo abbia bisogno di uno studio più approfondito rispetto agli altri formati poichè si tratta di un database di tipo client/server.

    Per quanto riguarda i componenti di accesso a file DBF, puoi dare un'occhiata qui.

    Se non ti risulta ostico leggere la Guida in linea di Delphi, consulta l'argomento Developing database applications che spiega molte cose a riguardo.
    Altre informazioni utilissime per chi inizia le puoi trovare qui (il sito è sempre in lingua inglese).

    Ciao e buon apprendimento!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  3. #3
    Se vuoi fare velocemente,puoi utilizzare anche una connessione odbc e se non riesci a settarla nella dbconnection puoi interfacciarti tramite il BDE tranquillamente e poi utilizzarla nel componente che usi.
    Il dubbio non è piacevole, ma la certezza è ridicola. Solo gli imbecilli son sicuri di ciò che dicono.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,904
    Originariamente inviato da Genius7115
    Se vuoi fare velocemente,puoi utilizzare anche una connessione odbc e se non riesci a settarla nella dbconnection puoi interfacciarti tramite il BDE tranquillamente e poi utilizzarla nel componente che usi.
    La soluzione è fattibile, ma non l'ho proposta perchè usare ODBC con il BDE nello sviluppo di un'applicazione è come dire addio alle prestazioni.

    Per eseguire un'operazione sul database, avviene un'interazione che attraversa i seguenti componenti software:

    --Delphi (classi a livello applicazione)
    ---- BDE (API del BDE)
    ------ driver ODBC per BDE
    -------- ODBC (API di ODBC)
    ---------- driver DBF per ODBC
    ------------ database dBaseIII

    Chiaramente, questo è il percorso della richiesta, che viene compiuto alla rovescia quando i dati vengono restituiti dal database attraverso il driver ODBC a ODBC stesso, che li restituisce al BDE tramite il driver BDE per ODBC fino a tornare all'applicazione.

    Secondo me, se non si tratta di un'applicazione di esempio ma di un programma che si appresta ad essere minimamente "serio", è una strada da evitare preferendo componenti di terze parti o librerie che supportino il formato dBaseIII.

    Ovviamente, secondo la mia opinione.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,275
    non mi e' chiaro il concetto di alias.

    partendo sempre dalla mia tabella citta.dbf che vorrei gestire in una form.

    ditemi una cosa:

    questa tabella e' una tabella di dbaseIII, quindi la potrei trasformare in un formato + comodo x delphi. quale mi consigliereste?

    cmq, ho capito che devo definire un alias per il mio database (database e' un insieme di tabelle???)

    e questo lo dovrei fare tramite "BDE administrator" ma non riesco a farlo....
    per favore qualcuno mi sa indicare come??

    help!


  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,904
    Originariamente inviato da 123delphi321
    non mi e' chiaro il concetto di alias.
    Le impostazioni che consentono la connessione ad un determinato DB vengono raccolte e memorizzate con un nome, definito "alias", che non è altro che un profilo (così come lo è un account) avente un nome che raggruppa alcune impostazioni.

    All'interno di Delphi, usando il componente TDatabase, è possibile selezionare l'alias dalla proprietà AliasName per dotarlo direttamente di tutte le impostazioni che servono per collegarsi.

    Originariamente inviato da 123delphi321
    partendo sempre dalla mia tabella citta.dbf che vorrei gestire in una form.
    Come ti ho detto nel messaggio precedente, non credo che il formato dBaseIII sia supportato dal BDE, che è la libreria per l'accesso ai dati che viene utilizzata quando adoperi i componenti TDatabase, TTable, ecc.

    Originariamente inviato da 123delphi321
    questa tabella e' una tabella di dbaseIII, quindi la potrei trasformare in un formato + comodo x delphi. quale mi consigliereste?
    Più che altro, ti suggerirei di non usare il BDE ma bensì di adottare ADO (valido per tutti i database, incluso il dBaseIII se hai il driver OLE DB).

    Originariamente inviato da 123delphi321
    cmq, ho capito che devo definire un alias per il mio database (database e' un insieme di tabelle???)
    Sì, il database è un insieme di tabelle. Ti suggerisco di leggere una guida semplice e introduttiva sui database prima di iniziare a lavorarci, perchè mi sembra che tu abbia alcune lacune proprio sui concetti di base che sono fondamentali.

    Originariamente inviato da 123delphi321
    e questo lo dovrei fare tramite "BDE administrator" ma non riesco a farlo....
    per favore qualcuno mi sa indicare come??
    Quando hai lanciato il BDE Administrator dal Pannello di Controllo, seleziona la voce [Object|New], scegli il driver dall'elenco che corrisponde al formato di database al quale vuoi accedere e configurane i parametri (che dipendono dal suddetto formato) usando l'interfaccia del programma.

    Io però insisto sulla lettura di uno dei link che ti ho segnalato nei precedenti messaggi che, secondo me, hai completamente ignorato.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,275
    ok....sto facendo delle prove.

    riesco ad aprire la mia tabella dbIII, l'ho fatto usando database wizard.

    ovviamente precedententemente avevo inserito la tabella in un alias tramite BDE administrator.

    ovviamente io avrei bisogno di un solo FORM nel quale inserire il dbnavigator e la visualizzazione di tutti i campi della tabella....

    quando utilizzo il wizard di database...mi viene creata sempre una FORM2 nella quale viene gestita la tabella, e resta sempre anke FORM1 in cui non ho nulla.....
    non capisco ci deve essere x forza....o posso cancellarla?

    un'altra domanda:
    quando faccio RUN del programma, ovviamente vengono visualizzati i valori del primo record della tabella, potrei invece visualizzare un record vuoto ed attendere che l'operatore si muova dalla dbnavigator?

    grazie a tutti

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,904
    Puoi rimuovere tranquillamente tutte le form che non ti servono.

    In generale, dai alle singole form nomi più significativi di Form1, Form2 e così via...

    Accertati che la prima form che appare sia quella designata come "MainForm" (form principale); puoi verificare questa condizione tramite la voce di menu [Project|Options...].

    Quando la form principale viene chiusa, il programma termina.

    Per quanto riguarda la domanda sui dati visualizzati, quando apri un DataSet (nome generico per indicare una tabella di dati ottenuta con componenti TTable, TQuery, TADOTable, ecc.), a meno che la tabella stessa non sia vuota, avrai sempre il cursore posizionato sul primo record della tabella stessa.

    I controlli data aware utilizzati (DBGrid, DBNavigator, DBEdit, DBMemo, ecc.) mostreranno quindi sempre i valori di tali record. L'unica opportunità che hai è quella di entrare automaticamente in fase di inserimento di un record usando il metodo Append del componente che rappresenta la tabella per creare un nuovo record vuoto pronto da riempire.

    Sinceramente, sconsiglio questo approccio poichè devi annullare l'operazione di inserimento se chiudi il programma senza fare nulla.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,275
    scusa,....come faccio ad eliminare una FORM dal mio proggetto?

  10. #10
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,904
    Fai clic con il tasto destro sul nome del nodo principale che rappresenta il form all'interno del Project Manager e scegli Remove from Project.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.