Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 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


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
La NASA ha lanciato il nuovo Nancy Grace...
22 offerte Amazon da non perdere, dalla ...
Bose QuietComfort Earbuds a 129,95€: ANC...
L'unico con tante scorte, non fatevi sca...
Torna il super doppio sconto sulle e-bik...
Offerte Amazon componenti PC: RTX 5060 T...
Crucial Pro DDR5 da 32GB a 389,99€: perc...
Fable 5, il modello più potente d...
PC all-in-one Lenovo super elegante, per...
Lo Smart TV più venduto su Amazon...
Periferiche gaming in offerta su Amazon:...
L'IA non è una bolla, ma pu&ograv...
Il cinema in salotto: oggi TV Xiaomi QLE...
Passa a ho. Mobile, fino a fine agosto c...
Ai Giochi di Pechino i robot prendono fu...
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: 00:25.


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