Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni
Redmi Pad 2 9.7 punta su un display ampio e fluido, una batteria capace di accompagnare l'uso quotidiano senza ansie da ricarica e un prezzo accessibile, a partire da 179,90 euro per la versione con 64 GB di storage. Lo Snapdragon 6s 4G Gen 2 e i 4 GB di RAM della configurazione più diffusa frenano però chi cerca reattività e multitasking spinto: ecco il bilancio dopo due settimane di prova diretta
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Peugeot Polygon Concept: ecco il futuro delle utilitarie
Polygon è la concept car di Peugeot che mostra il futuro delle soluzioni del segmento B: tra design compatti e innovativi affiancati da dimensioni compatte uno scherzo dalla manovrabilità incredibile per le manovre a bassa velocità
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione
OPPO ha portato in Italia, dal 1° luglio 2026, Reno16 Pro: display AMOLED da 6,32 pollici a 144Hz, tripla fotocamera con sensore principale da 200 megapixel, chip Dimensity 8550 Super e batteria da 6000mAh, al prezzo di lancio di 899 euro. Lo abbiamo provato per due settimane insieme al nuovo accessorio Bubble, per capire se la formula compatta della serie regge ancora di fronte a un listino da 1099 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 09-06-2003, 20:38   #1
Carmen
Senior Member
 
Iscritto dal: Jul 2001
Messaggi: 367
Posizionamento record

Ciao a tutti;

O il seguente problema: Dovrei in una griglia dati, poter spostare l’ordine dei record visualizzati.
Mi spiego meglio con un esempio:

supponiamo che abbia visualizzati sulla griglia dati questi tre record:

RECORD-1
RECORD-2
RECORD-3

Dovrei poter spostare ad esempio il RECORD-3 nella posizione del RECORD-2, per cosi ottenere questo risultato:

RECORD-1
RECORD-3
RECORD-2

Etc… Etc…

Spero che mi possiate aiutare. Grazie 1000 a tutti. Carmen
Carmen è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2003, 21:27   #2
tas
Senior Member
 
L'Avatar di tas
 
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
Un problema simile l'ho avuto anch'io nella tabella del piano dei conti (contabilità). L'ho risolto aggiungendo un campo nascosto "Ordine" nel quale il software va a impostare un numero progressivo partendo da 1. Il caricamento della griglia verrà effettuato con un recordset ottenuto da una query "SELECT ... FROM ... ORDER BY Ordine".
__________________
Chi non cerca trova.
tas è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 01:31   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Dipende da come è ordinata la tabella e per quali campi...
Se c'è un campo contatore che è chiave primaria è già più difficile... La soluzione di tas è valida, ma inserisce molti problemi di gestione... Ad esempio il fatto che si deve riempire il campo che ordina la tabella successivamente all'inserimento del nuovo record (per trovare il valore da immettere nel campo)...
E se voglio ordinare un record per metterlo nella posizione 5 (ad esempio) devo incrementare tutti i record con ordine >= 5... Non è una cosa così agevole da gestire, più che altro per le prestazioni...

Una cosa più semplice sarebbe mettere lo scostamento dal contatore...
Ad esempio:
Codice:
Contatore Scostamento Posizione
1              +2               1
2              0                 0
3              -2                1
4              0                 0 
5              -4                2
Select * From Tabella Order By (Contatore+Scostamento), Posizione ASC;
Il risultato sarà:
3, 5, 1, 2, 4

Posizione è la posizione in cui mettere questo record fra quelli di pari cotatore+scostamento...al limite se ci fosse da dare un'altro ordinamento basta ordinare quelli che hanno questo valore uguale...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 01:42   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ah se ti accontenti che a parità di contatore+scostamento non siano ordinate (ad esempio basterebbe un altro ordine relativo ad un altro campo del record) allora Posizione lo puoi anche togliere...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 11:17   #5
Carmen
Senior Member
 
Iscritto dal: Jul 2001
Messaggi: 367
Cia ragazzi. Intanto grazie delle risposte. Comunque io volevo dire che non o problemi di ordinamento dei dati sulla griglia, perchè i dati sono nell'ordine di inserimento, qui l'ordinamento non mi interessa.

Quello che invece dovrei fare come avevo prospettato nel primo post, e di poter spostare un record in giù oppure in sù.

Magari se avete qualche consiglio più specifico ve ne sarei grata.
Carmen è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2003, 12:30   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non capisco se in giù o in su nella griglia o in giù o in sù all'interno del database...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 07:01   #7
Carmen
Senior Member
 
Iscritto dal: Jul 2001
Messaggi: 367
Non capisco se in giù o in su nella griglia o in giù o in sù all'interno del database...

La cosa sarebbe meglio se si potesse spostare all'interno del database, però in alternativa se ciò non fosse possibile andrebbe bene anche dentro solo la griglia dati.

Accidentaccio! non credevo che fare questa cosa fosse come scalare l'everest...


Ciao
Carmen è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 07:50   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
MA che chiave primaria ha il DB ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 13:07   #9
Carmen
Senior Member
 
Iscritto dal: Jul 2001
Messaggi: 367
Ciao. La chiave primaria del DB e un campo dichiarato come (Contatore)...


Spero che la cosa non crei problemi, ma soprattutto che ci sia una soluzione....


Carmen
Carmen è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 15:17   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Appunto...se la chiave primaria è un contatore devi mettere un campo aggiuntivo per codificare l'ordine (come ho riportato sopra)...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 16:31   #11
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
certo che con sti' database siete messi come il ig:

ma possibile che non ci sia un comando:

Codice:
QuestoRecordQuiDeviMetterloLaaaaa iRec1, iRec2
:o :o


a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 16:42   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Il problema è che essondoci una chiave primaria autoincrementante non si possono spostare così facilmente...

I record non sono ordinati...la chiave primaria autoincrementante serve solo per distinuguere un record dall'altro...ma non per dargli un ordine... Basarsi su questo per dargli un ordine si può anche fare, ma non è la cosa migliore...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 17:11   #13
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
comunque un comando di spostamento FORZATO dei record ci deve/dovrebbe essere: che ca++o è il programmatore che comanda !

e poi non c'è di default (senza strutture-patch aggiuntive) una cazzabuffa di lista associata con cui fare ordina-sposta-inserisci-elimina senza necessità di spostare fisicamente un dato che sia uno !?

Ah cionci, se sti' dialetti di query li avessimo fatti noi due ..... !

Codice:
OhBischeroTeTuMeLoSpostiCodestoRecordInCodelloPosto iRec, iPos
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 17:14   #14
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
comunque ragazzi, c'è della robina all' Iper ..... mmhhhhh ig: ig: ig:

al banco dei cmeri stavo per confondermi ! :ek:
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 17:17   #15
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
oh, pardon, chiedo schiusa alle signr !
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 17:58   #16
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Si può fare...ma bisogna fare due query...
Ad esempio hai 1000 record...che hanno una chiave primaria autoincrementante...

ID
1
.
.
.
1000

Essendo chiave per definizione non ci possono essere più di un record con un determinato valore di ID...

Se volessi mettere il 990 al posto del 3 potrei anche spostare tutti i record, ma non mi sembra una cosa fatta molto bene...

Basterebbero 3 query:

UPDATE Tabella
SET ID = ID+1
WHERE ID >= 3;

UPDATE Tabella
SET ID = 3
WHERE ID >= 991;

Purtroppo la prima query non è possibile farla perchè in un certo istante (dopo ogni singola modifica) esisteranno due record con la stessa chiave...
Quindi bisogna ricorrere a 3 query:

Se posso memorizzarmi i dati del record 990 a livello di programma posso fare così:

Mi memorizzo i dati nel programma e rimuovo il record 990:
DELETE FROM Tabella
WHERE ID = 990;

UPDATE Tabella
SET ID = ID+1
WHERE ID >= 3 AND ID <990;

Ed ora reinserisco i valori in tabella al posto 3:
INSERT INTO Tabella VALUES (3,....);

Se non potessi memorizzarmi i dati a livello di programma dovrei fare una cosa del genere:

UPDATE Tabella
SET ID = ID+1000
WHERE ID >= 3;

UPDATE Tabella
SET ID = 3
WHERE ID = 1990;

UPDATE Tabella
SET ID = ID-999
WHERE ID >= 1003;

Il problema è che una query che cambia degli indici è molto costosa per il DBMS...visto che deve ricreare le strutture per indici stessi...

In pratica si cerca sempre di minimizzare gli UPDATE che modificano gli indici della tabella...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 18:57   #17
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
oh maremma bona,

ma è più facile swappare un co[/siz] !

a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 19:05   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
UPDATE Tabella
SET ID = ID+1
WHERE ID >= 3;
Che testa...questo non lo posso fare sempre per il solito discorso della chiava primaria... Vabbè...comunque ci siamo capiti...

Comuqnue per swappare è facile...ripeto che qui si parla di dover inserire un record non al posto di un altro, ma sopra un altro...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 19:10   #19
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
comunque datevi da fare: c'è del marcio in danibase !
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 11-06-2003, 19:22   #20
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originally posted by "a2000"

comunque datevi da fare: c'è del marcio in danibase !
Più che altro è che i campi interi autoincrementanti nella teoria non si usano mai come chiave (creano ridondanza)...a quel punto mettere un'ordine crea meno promblemi...e si fa come dice tas...e con solo 2 query...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Redmi Pad 2 9.7: ampio display, economico e peso contenuto, ma qualche limite nelle prestazioni Redmi Pad 2 9.7: ampio display, economico e peso...
Peugeot Polygon Concept: ecco il futuro delle utilitarie Peugeot Polygon Concept: ecco il futuro delle ut...
Reno16 Pro: il compatto di OPPO punta su fotocamera da 200MP e il nuovo Bubble! La recensione Reno16 Pro: il compatto di OPPO punta su fotocam...
 Hisense 55U7SE: tuttofare e accessibile, il MiniLED per film, sport e gioco Hisense 55U7SE: tuttofare e accessibile, il Min...
Kindle Scribe Colorsoft: riduce le cornici e diventa a colori, ma il prezzo è alto Kindle Scribe Colorsoft: riduce le cornici e div...
Intel brevetta XBM: la nuova memoria pun...
Film prodotti con l'IA: Disney, insieme ...
Reinstallare Windows senza chiavette o s...
Apple racconta il suo vantaggio nell'AI ...
Cisco Cloud Control, una cabina di regia...
Il software che controlla le Fab va in p...
Il settore tech è il primo bersag...
Windows 11, corretto un bug che poteva o...
X introduce nuove funzioni per i video c...
Blue Origin sta costruendo diversi lande...
DeepSeek avvia lo sviluppo di un chip pr...
Le offerte migliori ora su Amazon sugli ...
Fino a un petabit al secondo! Il piano d...
Cisco punta tutto sull'IA: tutti i 90.00...
Intel Nova Lake riporterà il supp...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 04:01.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v