Newsgroup: it.comp.lang.delphi
Titolo: Alcuni piccoli problemini da risolvere

Ho creato un'applicazione con d7 dove uso una tQuery per connettermi ad un
ODBC (AcuODBC) collegato a sua volta ad un database Vision.
In questa query seleziono dal database alcuni campi di tipo numerico
(dichiarati nelle tabelle come numerico doppia precisione).
Durante l'esecuzione dell'applicazione mi si sono presentati tre diversi
problemi:
1) all'avvio mi chiede sempre user e password anche se l'ODBC non ha
password di accesso
2) nell'estrarre i numeri dal database alcuni vengono ispiegabilmente
modificati (apparentemente senza una logica comune)
3) poichè i record sono filtrati in base al codice dell'articolo (deve
essere compreso in un intervallo), se l'intervallo è troppo grande (bastano
anche 50 record finali) l'applicazione si pianta!
Qualcuno saprebbe dirmi il perchè di tutto questo?
Ringrazio in anticipo per qualsiasi risposta,
Lela
ps. chiedete pure qualsiasi spiegazione se non mi sono spiegata
--------------------------------
Inviato via 
http://usenet.libero.it


Mi sono dimenticata un'altra cosa che non so gestire. Nella TQuery dovrei
riuscire a estrarre solo i record il cui campo 'year' è uguale all'anno
corrente (calcolato in automatico in qualche modo).
Grazie ancora per l'aiuto
Lela


 password di accesso
Rispondo solo parzialmente alla tue domande:
credo il database le richieda, cmq se utilizzi un oggetto TDatabase puoi
settare il parametro LoginPrompt a false.
Per la domanda dell'anno vedo tre modi possibili:
a) costruisci uno statement SQL tipo where Year=funzione del db che estrae
l'anno corrente
b) usi i parametri quindi fai where year=:annocorrente e poi passi il
parametro alla query a runtime 
c) usi le proprietą filter e filtered e le setti opportunamente (Year=_gli
passi l'anno corrente) a runtime
ciao

Per la soluzione dell'anno anche io avevo pensato ad una cosa del genere
perň ammetto la mia ignoranza e non riesco a far funzionare la selezione.
Non č che potresti aiutarmi con qualche ulteriore suggerimento? (magari
qualche riga di codice)
Grazie ancora
Lela


 Grazie ancora
procedure bbbla
var anno:word;
begin
anno:=YearOf(Date);
Query1.Params[0].Value:=anno;
end;
se lo fai con i parametri.

Ho già provato questa sintassi ma continua a darmi errore mi dice che
l'operazione non può essere eseguita. Sai spiegarmi perchè?


 Grazie ancora
Prego, anche se devo dirti che ti avevo offerto aiuto anche via mail in pvt
e non mi hai nemmeno risposto :(

 ps. chiedete pure qualsiasi spiegazione se non mi sono spiegata+
forse è meglio proseguire in privato, se per te va bene, l'indirizo email è 
valido devi solo sostiture la ò con o.
-- 
Ciao, Anto', [35, 143, AQ] 
MB C SC 220 CDI Magma Rot
"Di sempre cio' che senti e fai cio' che pensi."
				G.G. Màrquez

Io sinceramente non ti so dire molto sul database perchè è riferito ad un
gestionale in commercio che le ditte usano per tenere la contabilità. Io
dovrei tentare di accedere agli archivi di questo applicativo e creare una
stampa in base alle necessità del cliente.
Se vuoi ti spiego meglio per email ma ho bisogno che mi scrivi l'email
perchè non ho capito cosa volevi dire nel tuo messaggio.
Grazie Lela


Allora la stringa SQL che uso è questa:
select
   MAMAG.MAMAG_CODAR,
   MAMAG.MAMAG_ALIAS,
   MAMAG.MAMAG_UM1,
   MAMYP.MAMYP_STOCK,
   MAMYP.MAMYP_CQTAD,
   MAMYP.MAMYP_CVALD,
   MAMYP.MAMYP_SQTAD,
   MAMYP.MAMYP_SVALD
from
   MAMAG,
   MAMYP
where
   MAMYP.MAMYP_CODAR=MAMAG.MAMAG_CODAR and
   MAMYP.MAMYP_YEAR=:"ANNO"
Poi ho inserito nella procedura il codice che mi avevi giustamente indicato:
procedure TMainform.Button2Click(Sender: TObject);
begin
  appanno:=yearof(date);
  query1.Params[0].Value:=appanno;
  query1.Filtered:=True;
  query1.Filter :='mamag_codar>='+quotedstr(coddal.Text)+' and
mamag_codar<='+quotedstr(codal.Text);
  query1.Open;
  proreport.Execute;
End;
Preciso che appanno l'ho dichiarato di tipo word.
Ora però mando in esecuzione il programma e lui non mi estrae nessun record.
Sono andata a controllare sulla tabella e il campo year è stato dichiarato
come numeric.
In che cosa sbaglio?
Aiutatemi


    MAMYP.MAMYP_YEAR=:"ANNO"
correggi cosi:
 where
   MAMYP.MAMYP_CODAR=MAMAG.MAMAG_CODAR and
   MAMYP.MAMYP_YEAR=:ANNO
inoltre se usi la clausula where nel costrutto SQL xchè poi la mischi con i
filtri ? non sarebbe + elegante mettere tutto nel where ?
fammi sapere,
l'offerta dell'aiuto in pvt (x mail o ICQ) è sempre valida ;)
ciao

Rispondimi in pvt.
Comunque ho usato entrambi i sistemi per due motivi: sono un po' inesperta e
questo è stato l'unico modo per far funzionare bene la query.
Comunque ho provato come mi hai detto ma non funziona: non ritrova ancora
neanche un record


 Rispondimi in pvt.
fatto ;) stavolta rispondimi però :PP

Non c'è nessun altro baldo giovane che ha voglia di darmi una mano a
risolvere gli altri piccoli problemini?
Per favore è molto importante grazie ancora per chiunque voglia rispondermi
Lela
