[ fedja @ 19.02.2005. 19:29 ] @
Najsitnije gluposti odzimaju najvise vremena...problem je pregled faktura:
-dva checkboxa (placena i neplacena) koji sluze da se prikazu placene i neplacene fakture.
-koristim sql parametre sa SqlDataAdapterom...i DataSet-om..popunjavaju se ovako
Code:

 adapt.SelectCommand.Parameters.Add("@Placena",SqlDbType.Bit);
 adapt.SelectCommand.Parameters.Add("@NePlacena",SqlDbType.Bit);
if (chPlaceno.Checked) 
 adapt.SelectCommand.Parameters["@Placena"].Value=1;
else adapt.SelectCommand.Parameters["@Placena"].Value=-1;
if (chNeplaceno.Checked)
 adapt.SelectCommand.Parameters["@NePlacena"].Value=0;
else adapt.SelectCommand.Parameters["@NePlacena"].Value=-1;


-u select query kaze ovo
"SELECT ... FROM tbl_Faktura .... WHERE (tbl_Interni_Nalog.ID_Klijenta = 3) AND ((tbl_Faktura.Placena = @Placena) OR (tbl_Faktura.Placena = @NePlacena)) AND..."

GRESKA: Uvek prikazuje u datagridu Placene fakure i ako je vrednost parametra -1.
sto se tice neplacenih radi ok...(kad je vrednos parametra @Placena=-1 i @NePlacena=0 ili @NePlacena=-1 on uvek prikazuje fature koje su placene? )

Probao sam query direktno u enterprize menageru sa raznim vrednostima i radi OK..
???????????????????????????????????
[ degojs @ 19.02.2005. 19:47 ] @
Hmmm, ako nešto ne propuštam, jedno pitanje: otkud za tip BIT ti imaš 0, 1 i -1?



Citat:
SqlDbType Enumeration

Bit

An unsigned numeric value that can be 0, 1, or a null reference (Nothing in Visual Basic).


Pozdrav :)
[ fedja @ 20.02.2005. 13:22 ] @
Pa ekvivalentno je

1=true
0=false
-1=bi valjda trebalo da znaci sql null

probao sam kao vrednost parametra da stavim null u C# prijavljuje gresku da vrednost tom parametru nije dodeljena..

a kada probam dau selectu stavim vrednosti -1 npr.

"... AND ((tbl_Faktura.Placena = -1) OR (tbl_Faktura.Placena = 0))... "

Radi OK prikaze samo neplacene...????

Kako on prevede vrednost parametra -1 u sql vrednost nemam pojima...

Da li postoji nacin da se negde vidi finalni SELECT kako izgleda sa ubacenim vrednostima parametara od adaptera?
[ fedja @ 20.02.2005. 13:30 ] @
Evo upravo sam resio problem...
Samo je fora da umesto da parametar bude tipa SQL bit bude SQL int ovako:
Code:

adapt.SelectCommand.Parameters.Add("@Placena",SqlDbType.Int);
adapt.SelectCommand.Parameters.Add("@NePlacena",SqlDbType.Int);

Smo ovo ostavlja jos jedno pitanje...posto u sql standardu postoje tri logicke vrednosti true, false i unknown...kao onda predstaviti unknown u bit tipu podatak ? (verovatno sa SQL null) Ali kako onda kroz .NET SQLparametar pretstaviti SQL null?

Hvala...resio sam problem...evo sad malo da polemisemo...
[ negyxo @ 20.02.2005. 15:07 ] @
System.DBNull Class trebalo bi da resi taj problem.
[ bunker @ 20.02.2005. 19:34 ] @
a zasto koristis dva parametra, verovatno i dva polja, za logicku vrednost. zar nije normalno da ako je NePlaceno, znaci da je Placeno. cisto zbog optimizacije
[ degojs @ 20.02.2005. 19:59 ] @
I otkud uopste -1 = null???

Null je nedefinisana vrednost u bazi i za testiranje te vrednosti koriste se specificne funkcije u SQL Serveru (IS NULL), čak i inače ne vredi NULL = NULL.

Otkud imaš null u toj celoj priči? Zar ne bi trebalo da je nešto ili plaćeno ili nije plaćeno?
[ fedja @ 21.02.2005. 15:29 ] @
Postoje 4 opcije (dva checkbox-a):
1. Prikazi placeno i neplaceno
2. Prikazi placeno
3. Prikazi neplaceno
4. Prikazi nista

Moja ideja je bila za SQL query:

"((tbl_Faktura.Placena = @Placena) OR (tbl_Faktura.Placena = @NePlacena)) "

opcija:
1. @Placena=1, @NePlacena=0
2. @Placena=1, @NePlacena=-1
3. @Placena=-1, @NePlacena=0
4. @Placena=-1, @NePlacena=-1

true OR NULL= true
NULL OR NULL=NULL

Pa ako ovo moze da se uradi samo preko jedne bit vrednosti...zeleo bi da znam kako ...ili ako neko vidi elegantnije resenje...
Znam da -1 nije null...ali to mi je prvo palo napamet i radio ok nije ni 1 ni 0....

Probacu da to realizujem preko System.DBNull, ali kako?
[ degojs @ 21.02.2005. 21:58 ] @
Pa stavi:

1. @Placena=1, @NePlacena=0
2. @Placena=1, @NePlacena=1
3. @Placena=0, @NePlacena=0
4. Ovde nema šta da se radi, pošto ne prikazuješ ništa.

[ fedja @ 22.02.2005. 03:28 ] @
Bas sam PI-GLU ... ali sam ga napravio da radi to barem nesto znaci...

Hvala...