7 messaggi dal 11 settembre 2008
Buongiorno a tutti,

Ho creato un db sql server su cui devono accedere più persone tramite un'interfaccia vb6 ; l'utente inserisce dei parametri che filtrano i dati di suo interesse, in automatico viene popolata su sql una tabella contenente i dati scelti(il proprietario della tabella è dbo). Il mio problema è il seguente, nel momento in cui accedono più utenti c'è il rischio che vadano a scrivere sulla stessa tabella e l'utente si veda visualizzare i dati scelti da un altro. Ho dovuto utilizzare tabelle d'appoggio per via della mole di dati molto grosso e le tabelle temporanee di sql non erano performanti.
Devo creare una tabella per ogni utente che accede, o la stessa tabella può contenere dati diversi a seconda del proprietario?
Chi sa dirmi come fare?

Grazie mille
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Se per ogni utente dovessi creare un set di tabelle distinto avrei cambiato lavoro già 10 anni fa... e nelle aziende ci sarebbero più DBA che utenti.
Aggiungi un campo alla tabella e in base a quel campo discrimini l'owner del record... Tutto questo puoi farlo con una "invasività" minima sulla struttura attuale. Puoi aggiungere alla tabella un campo da valorizzare, per default, con una delle funzioni di sistema che restituiscono il nome dello user o del login. Poi ti definisci una vista simile a

CREATE VIEW MyView
AS
SELECT listacampi
FROM tabella
WHERE owner = SYSTEM_USER

Ovviamente in "listacampi" dovrai escludere il nuovo campo "owner". Lavorando sempre e solo sulla vista non dovrai mai preoccuparti del campo aggiuntivo...

Bye
7 messaggi dal 11 settembre 2008
Era provocatoria:-)....speravo in cuor mio ci fosse la possibilità di eludere il problema creando una sorta di immagine della tabella a seconda del proprietario della stessa...perchè volevo evitare di aggiungere campi e select...se però con il tuo metodo sono poco invasivo...ne faccio tesoro e lo uso....grazie mille!!!
1.024 messaggi dal 19 dicembre 2003
Contributi | Blog
Sei veramente convinto che duplicare la tabella poteva essere una soluzione o anche in questo caso è una affermazione molto provocatoria?
Se segui la strada che ti ho tracciato dovrai aggiungere si un campo ma la query resta la stessa chiunque sia ad eseguirla...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.