Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 03-07-2004, 17.16.02   #1
Fat George
Hero Member
 
L'avatar di Fat George
 
Registrato: 02-09-2002
Messaggi: 1.313
Fat George promette bene
Cancellazione discriminata dati da dbf

Sono passati talmente tanti anni che non mi ricordo piu' bene, e allora chiedo aiuto.

Database pippo.dbf

Al suo interno una parte di records vanno cancellati perche obsoleti.

La struttura prevede un campo data cioe' field D grandezza 8

programmo (clipper) cosi':

set date italian
use pippo
delete all for data < ctod("01/05/04")
pack
close databases

puo' essere? c'e' qualcuno tanto "vecchio" da aiutarmi?

Grassie
Fat George non è collegato   Rispondi citando
Vecchio 03-07-2004, 17.20.53   #2
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Ora sono sotto Xp Pro ed ho difficoltà a tirare su il TSR delle vecchie Norton Guides di Ca-Clipper.. ma non mi sembra che il tuo programma possa essere scorretto.. al limite, se non ti fidi della sintassi della "query" puoi farti una function che prelevi tutti i record dal database e poi li cancelli uno per uno controllandoli come fai tu con la "CTOD"...

Ti suggerirei di provare il programma, al limite se hai problemi posso darti una mano in settimana.

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 03-07-2004, 17.23.52   #3
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Ah se non ricordo male, la sintassi di "USE", prevedeva il NEW....

USE database NEW

Sempre se non ricordo male, in questo modo sei sicuro di lavorare su una nuova area di memoria.

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 03-07-2004, 17.31.53   #4
Fat George
Hero Member
 
L'avatar di Fat George
 
Registrato: 02-09-2002
Messaggi: 1.313
Fat George promette bene
ma allora sei vecchissimo anche tu P8257. In effetti non ci avevo pensato alla funzione... mumble mumble saranno 50.000 record, speriamo non vada in overflow. Vabbe' casomai ci si rivede per aggiornamenti. stasera a casa guardo se mi e' rimasto qualche manuale
Eppure ci si faceva le notti su cose cosi' . Bei tempi...

Ciao
Fat George non è collegato   Rispondi citando
Vecchio 03-07-2004, 17.42.19   #5
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Sono un nostalgico pure io ..
pensa che avevo fatto un programma meglio del DBU .. ....

Comunque tranquillo, non dovrebbe andare in overflow, non è un linguaggio lentissimo, in più la DELETE come ricordi, non cancella effettivamente i record, li segna solo come eliminati, quindi non dovrebbe metterci molto, nel ciclo di scansione del db. fai attenzione al record "fantasma"... alla fine fai un bel PACK (come hai fatto) ed è tutto ok...

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 05-07-2004, 16.43.50   #6
Fat George
Hero Member
 
L'avatar di Fat George
 
Registrato: 02-09-2002
Messaggi: 1.313
Fat George promette bene
mah, non ci sto capendo niente il comando delete all for sembra non funzionare (ma sbaglio io sicuramente) con le date.

Faccio un breve riassunto:

Database pippo.dbf i campi sono:

DATA formato D caratteri 8
TIPO formato C caratteri 3 al suo interno o NOT o JIN
altri campi

ora io da quello che mi ricordo il comando delete all for dice prorpio di cancellate tutti i record di un database se corrispondono a un dato di confronto.

Imposto quanto segue

clear
store ctod(" - - ") to rifgiorno
@10,10 say"Fino a che giorno vuoi cancellare " get rifgiorno
read
use pippo
delete all for DATA <= rifgiorno
pack
close databases
quit

Ebbene NON FUNZIONA

se metto invece

delete all for TIPO = "NOT"

Funziona e cancella tutti i records che contengono la scritta NOT

Quindi qualcosa non va sulle date ... ma cosa?
Fat George non è collegato   Rispondi citando
Vecchio 05-07-2004, 17.09.27   #7
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Guarda, a me funziona .. l'ho risolto in questo modo .. vedi se può andarti bene ..

NOTA: per prova ho usato un database chiamato Prova con due campi, uno carattere e uno data, il campo data l'ho chiamato DATA1, se vuoi utilizzare il codice devi naturalmente cambiare i nomi dei campi e del db (lo dico solo per chiarezza).

Codice:
FUNCTION main()
   LOCAL GetList := {}
   LOCAL dDate := SPACE(10)
   SET DATE ITALIAN
   @10,10 SAY "Inserire la data (dd-mm-aaaa): " GET dDate
   READ 
   DeleteByDate(CTOD(dDate))
RETURN nil


// DeleteByDate - Cancella selettivamente i record secondo la data indicata
FUNCTION DeleteByDate(ByDate)
   USE prova NEW

   DO WHILE RECNO() != (LASTREC()+1)
      IF prova -> DATA1 == ByDate
         DELETE
      ENDIF
      DBSKIP()
   ENDDO
   PACK
   CLOSE DATABASES
RETURN nil
L'ho testato e mi sembra funzionare, fammi sapere...

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 05-07-2004, 17.28.32   #8
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
Aggiungo:
se vuoi seguire il mio metodo e vuoi cancellare i record prima di una certa data, basta che controlli "manualmente" se la data è minore di quella indicata.. puoi farlo in due modi:

- Spezzandola in 3 tronconi e controllando con "if" innestati la validità del fatto che sia <= alla data limite
- Utilizzandola come data e ricorrendo agli appositi operatori.

Poi passi tutto alla DeleteByDate oppure implementi direttamente in essa i controlli di cui sopra.

Bye
P8257 WebMaster non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
cancellazione sicura dati volley_3 Sicurezza&Privacy 5 22-01-2009 00.18.17
mi è caduto per terra l'hd portatile !!! zen67 Hardware e Overclock 63 10-01-2008 17.12.50
[Vista Backup] Non si trovano i dati salvati taniservice Windows 7/Vista/XP/ 2003 1 25-09-2007 10.29.57
ADSL su linea solo dati: canone in arrivo? handyman Segnalazioni Web 4 13-06-2005 16.48.21
Help!! Cancellazione dati Pen Drive Sabba Hardware e Overclock 3 17-09-2004 23.42.39

Orario GMT +2. Ora sono le: 16.13.56.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.