MasterDrive.it   
Vai indietro   MasterDrive.it > Software Development > Delphi



Rispondi
 
Strumenti della discussione Modalità di visualizzazione
Vecchio 03-02-2010, 22:36   #1 (permalink)
Nuovo della community

 L'avatar di bruno07
 
4 Messaggi

bruno07 novizio della comunita' ( + 10 )
delphi5 query e le date

non riesco a capire dove sbaglio !
Ho creato questa query per ragruppare i record di un dato periodo con una data ma non riesco a farla funzionare ! Di seguito riporto il codice :

with qrAttivita do
begin
if active = true then active := false;
sql.clear;
sql.add('select * from Attivita');

if (DateTimePicker1.Checked = true) or (DateTimePicker2.Checked = true) then à
begin
d0 := FormatDateTime('mm/dd/yyyy',DateTimePicker1.Date) ;
d1 := FormatDateTime('mm/dd/yyyy',DateTimePicker2.Date);

sql.add('where ((Datavisita) = '+d0+') and ((Datavisita) = '+d1+')');

end;
active := true;
end

Dove è l'errore ???
Grazie per l'aiuto!

bruno07 non è in linea   Bookmark and Share Rispondi quotando
Vecchio 04-02-2010, 14:17   #2 (permalink)
Very Important Person

 L'avatar di cyberlaundry

 
592 Messaggi

cyberlaundry con qualche commento positivo ( + 50 )
Diciamo che l'errore è supporre che il database che usi utilizzi il formato data/ora che tu "hai deciso" essere mm/dd/yyyy.
Ci mancano un po' di dati:
- Tipo di "strato" software di connessione (BDE, IBX ecc)
- Tipo di RDBMS
Andando per ipotesi, facciamo finta che qrAttivita sia un componente TQuery.
In questo caso stai usando BDE, che tra mille difetti ha il pregio di adeguarsi da solo al tipo di RDBMS che usi.
Basta però che usi i parametri.
Ad esempio la query

SELECT * FROM BOLLE WHERE DATABOLLA > <una_determinata_data>

deve essere scritta in questo modo, supponendo che qrMiaQuery è un componente TQuery e che la variabile dt: TDateTime sia inizializzata dal programma:

codice:
with qrMiaQuery do
begin
  Active := false;
  SQL.Text := 'SELECT * FROM BOLLE WHERE DATABOLLA > :LAMIADATA'
  ParamByName('LAMIADATA').DataType := ftDate; // Probabilmente non è necessario
  ParamByName('LAMIADATA').AsDate := dt;
  Open;
end;
Se non usi TQuery ma TSQLQuery (IBX) dovrebbe essere uguale.
Con TADOQuery (che però non conosco) dovrebbe esserci qualcosa di paragonabile a ParamByName.

Ciao
__________________
RICORDA che il modo migliore per ringraziare chi ti dà supporto è di fare click sull'icona "commenta intervento"

Se risolvi da solo il problema che hai postato, condividi con noi la soluzione. Potrebbe essere utile ad altri.
cyberlaundry non è in linea   Bookmark and Share Rispondi quotando
Vecchio 04-02-2010, 20:30   #3 (permalink)
Nuovo della community

 L'avatar di bruno07
 
4 Messaggi

bruno07 novizio della comunita' ( + 10 )
Scusami l'insufficienza di dati, per precisare uso un oggetto Tquery, che si collega ad una tabella Access con un DSN.
Comunque faccio un pò di prove con il suggerimento ricevuto
Grazie
bruno07 non è in linea   Bookmark and Share Rispondi quotando
Vecchio 04-02-2010, 21:00   #4 (permalink)
Very Important Person

 L'avatar di cyberlaundry

 
592 Messaggi

cyberlaundry con qualche commento positivo ( + 50 )
Quote:
Originariamente inviata da bruno07 Visualizza il messaggio
uso un oggetto Tquery, che si collega ad una tabella Access con un DSN
Scusa, una curiosità: perché usi BDE, e non i componenti ADO che nel tuo caso sono forse più indicati?
Lo strato BDE è abbastanza "spesso", ed è "deprecated" nel senso che già da anni nessuno lo porta più avanti.
Sta già sparendo dalle nuove versioni di Delphi (non so nemmeno se c'é più in Delphi2010).
__________________
RICORDA che il modo migliore per ringraziare chi ti dà supporto è di fare click sull'icona "commenta intervento"

Se risolvi da solo il problema che hai postato, condividi con noi la soluzione. Potrebbe essere utile ad altri.
cyberlaundry non è in linea   Bookmark and Share Rispondi quotando
Rispondi

Strumenti della discussione
Modalità di visualizzazione

Regole d'invio
Non puoi inserire discussioni
Non puoi inserire repliche
Non puoi inserire allegati
Non puoi modificare i tuoi messaggi

BB code è attivo
Le smilies sono attive
Il codice IMG è attivo
il codice HTML è disattivato
Trackbacks are attivo
Pingbacks are attivo
Refbacks are disattivato

Salto del forum


Tutti gli orari sono GMT +1. Attualmente sono le 04:56.


Powered by vBulletin versione 3.8.0
Copyright © 2000 - 2010, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.2.0

Valid XHTML 1.0 Transitional  Creative Commons License

Eccetto dove diversamente specificato, i contenuti pubblicati in questa comunità sono rilasciati sotto Licenza
Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia License.
La comunita' di MasterDrive.it non e' responsabile di eventuali imprecisioni presenti nelle pagine.