Domanda

Buongiorno,

Ho una domanda sui valori predefiniti e sui valori NULL in Sybase ASE 12. Per farla breve: ho ereditato un database Sybase molto vecchio e il front-end PowerBuilder che si trova sopra di esso. Una delle tabelle in questione contiene diverse colonne che hanno valori predefiniti oltre al vincolo non nullo. Pertanto, ogni volta che non viene fornito alcun valore (nota: non un valore NULL), PowerBuilder crea l'istruzione di inserimento / aggiornamento appropriata e semplicemente non passa un valore per questi campi vuoti, che vengono quindi assegnati automaticamente al valore predefinito dal database. Salsa.

Ora, il problema: è stato deciso di aggiungere l'auditing all'intera applicazione tramite il front-end (una cattiva idea, lo so, ma non una mia scelta). È stata scritta una funzione per astrarre il processo di auditing ma il problema nasce dal fatto che non vede nessuna voce utente come valori NULL e genera un'istruzione di inserimento nella tabella di audit (definita anche con il vincolo not null), fornendo il letterale NULL per queste colonne vuote. Sybase quindi vede il valore letterale NULL e, come tutti sapete, tratta il valore NULL come un valore e non come "nessuna voce".

Quindi la domanda: è possibile impostare come predefinito una voce NULL su valori predefiniti dal lato database? Ho considerato i trigger, ma spero di essere fortunato e che ci sarà una qualche forma di costrutto a livello di tabella che posso utilizzare.

Grazie per il tuo tempo e la tua considerazione.

Riferimenti:
Un buon esempio del problema in questione
http://www.sybaseteam .com / null-non-niente-differenza-tra-null-niente-sybase-t-390.html

Vedi tabella 7-1, a metà pagina.
http : //manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@ebt-link; pt= 20741? target=% 25N% 15_19279_START_RESTART_N% 25

È stato utile?

Soluzione

Penso che tu debba rendere la tua funzione di auditing più intelligente.Dovrebbe registrare solo le colonne modificate dall'utente.Questo è facile da determinare con getitemstatus.Puoi scorrere le colonne utilizzando il formato getitemstatus che accetta un numero di colonna intero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top