Newsgroup: it.comp.lang.delphi
Titolo: Query di inserimento, aggiornamento e altro...

Ciao, sono nuovo della lista... e anche di Delphi :)
Come avrete capito sono alle prime armi e ho il grosso problema che fino a
ieri ho gestito database con acce$$, e' indubbiamente comodo sotto molto
aspetti, ma dopo due anni ho deciso di abbandonarlo completamente dato che
ogni volta l'utente cambia il tipo di carta della stampante divento pazzo a
riconfigurare stampe e affini...
Dopo questa premessa vorrei capire un po' come ragiona questo delphi, io sto
utilizzando la versione 5.
Sto realizzando un piccolo programma di gestione contratti con la
possibilita' di stampare dei dati etc... Ho creato l'interfaccia utente,
adesso sto cercando di sviluppare il sw che ci dovrebbe essere sotto, vorrei
capire bene come funzionano le query di eliminazione, aggiornamento,
inserimento dato che ho fatto qualche esperimento ma il massimo che ottengo
e' un "Invalid use of keyword."... Ho letto un po' di documentazione ma dopo
un po' mi perdo fra TBIQuery e TQuery ecc... :(
La query che io ho provato a esegiure e' questa (inserendo l'SQL in una
TQuery):
INSERT INTO tbl_GestIns ( IDUscita, Selected, Data, Rivista, NumeroUscita,
ModuliOttimali, Note, Memo )
SELECT tbl_Uscite.ID, IIf(tbl_Inserzioni.ID IS NULL,False,True) AS Selected,
tbl_Uscite.Data, tbl_Uscite.Rivista, tbl_Uscite.NumeroUscita,
tbl_Uscite.ModuliOttimali, [tbl_Uscite].[Note], [tbl_Uscite].[Memo]
FROM "tbl_Inserzioni.db" tbl_Inserzioni RIGHT JOIN "tbl_Uscite.db"
tbl_Uscite ON tbl_Inserzioni.IDUscita = tbl_Uscite.ID
WHERE (((tbl_Inserzioni.IDContratto)=1));
Ho creato il database in paradox 7 e un DSN che punta alla dir dove
risiedono gli archivi.
Inutile dire che l'ho creata con acce$$, e che li' fuziona perfettamente...
Qualcuno mi potrebbe aiutare a partire? Anche solo darmi qualche link dove
possa trovare qualcosa per capire da dove partire...
Scusate se sono stato cosi' prolisso... :)
Grazie.
Ciao,
    Dani

 risiedono gli archivi.
Per lavorare con Paradox non ti serve un dsn.
Basta che metti nel tuo data module principale un tdatabase
che punti ad un alias BDE che puoi creare con il Bde administrator
che trovi nel pannello di controllo.
La sintassi di Access è diversa in alcuni aspetti rispetto a quella
di paradox. Ad esempio, in paradox se metti un campo in una 
condizione where, lo devi x forza indicare nella select.
Inoltre, NESSUN DB USA LE PARENTESI QUADRE.
Se vuoi una buona tecnica per finire alla neuro costruisci 
le tue query con Access....
Per aggiornare una query devi collegare alla tua TQuery un
oggetto TUpdateSql.
Basta che lo schiaffi nello stesso datamoodule della query,
gli dai un nome congruo, lo indichi nella proprietà
UpdateObject della tua tuqery.
Dopo, se ci clicchi sopra 2 volte hai una piccola dialog che
è in pratica un wizard x la creazione di 3 comandi sql:
uno per inserire
uno per cancellare
uno per aggiornare.
Alcuni usano il requestlive, ma io non condivido.
Se usi il rerquestlive lo statement sql della tquery non puo
includere delle join.
Bye 
AS
"Se è Microsoft non funziona"
 
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 includere delle join.
Allora lo devo evitare dato che la mia stringa SQL contiene un paio di
join...
Grazie.
Ciao,
    Dani

 che trovi nel pannello di controllo.
leggendo queste parole mi è sorto un dubbio, che forse puoi chiarirmi, ed è
questo:
se io creo un'applicazione che fa uso del BDE e nella macchina dell'utente
il BDE non è installato, allora dovrò utilizzare un "programma installatore"
come InstallShield Express, includendo i file del BDE.
Ma il mio dubbio riguarda il fatto che se sul mio PC ho creato un alias con
BDE Administrator e poi lì ci ho messo tutte le mie tabelle, campi, indici,
eccetera... che cosa succederà quando eseguirò l'applicazione nel PC
dell'utente:
-l'alias verrà creato automaticamente?
-dovrei crearlo io manualmente con BDE Administrator?
-dovrei utilizzare le API del BDE (quelle che iniziano per Dbi.. e che sono
espostate dal file BDE.DCU) per verificare se l'alias esiste nel BDE
dell'utente e nel caso non esista, crearlo (sempre da codice)?
--
Mauro Falzari.
"Se guardi nell'abisso, anche l'abisso guarda in te."
(Friedrich Nietzsche)

 dell'utente e nel caso non esista, crearlo (sempre da codice)?
No, bastano i metodi di Session.


 join...
Bye
