Avatar billede scorp-d Nybegynder
02. marts 2010 - 16:19 Der er 6 kommentarer

Reporting Services: Tjekke om et billedfelt i databasen er tomt!

Hej.

Jeg sidder og leger lidt med Reporting Services og er stødt ind i et lille problem.
Jeg har et felt i en tabel som er af typen image der er Nullable, som jeg viser på min rapport, hvilket fungere fint.

For at gøre det lidt pænt ville jeg binde billedets visibility til om feltet i tabellen er Null eller ej, hvilket jeg ikke rigtig kan få til at virke.

Har prøvet følgende, men de giver det samme resultat lige meget om feltet er tomt eller ej:
Hidden =Iif(isDBNull(First(Fields!FileData.Value,"PictureTable")),true,false)
Hidden =Iif(isNothing(First(Fields!FileData.Value," PictureTable")),true,false)

Tjekkede så med følgende på et Image der er Null, hvor jeg fik 3 tilbage:
=Len(System.Text.Encoding.Default.GetString(First(Fields!FileData.Value," PictureTable ")))

Kan det passe at et Image som er Null har en string-længde på 3 ?
Og hvordan tjekker man normalt om et Image-felt er tomt ?

På forhånd tak.
Scorp-D
Avatar billede HenrikSjang Nybegynder
02. marts 2010 - 16:38 #1
Nu er jeg ikke lige en reporting services mand, men i sql kan man bruge datalength() på en binær kolonne, på samme måde som len() bruges på en tekst kolonne.
Avatar billede scorp-d Nybegynder
02. marts 2010 - 16:42 #2
Ja det har jeg også forsøgt.... Men metoden blev ikke genkendt...
Avatar billede janus_007 Nybegynder
02. marts 2010 - 20:33 #3
Jo det skulle man da gerne kunne, brug Is Nothing.


Hidden =Iif(First(Fields!FileData.Value,"PictureTable") Is Nothing,true,false)
Avatar billede scorp-d Nybegynder
02. marts 2010 - 20:40 #4
Kan ikke lige gennemprøve det nu, så vender lige tilbage i morgen.


Men har forsøgt med det du skriver, uden held... Men må bare prøve igen.
Avatar billede janus_007 Nybegynder
03. marts 2010 - 00:12 #5
Så opret 2 felter og smid First og FileData.Value ind, så skulle man kunne se hvad de indeholder :)
Avatar billede scorp-d Nybegynder
03. marts 2010 - 07:59 #6
Hehe og igen er det lige nøjagtig det jeg gør :-P tror jeg.

Stolede ikke på image.hidden = XXXXX, så har kørt med et image hvor value er databindet til "PictureTable", og en textbox som har haft value lig:

=Iif(isDBNull(First(Fields!FileData.Value,"PictureTable")),true,false)
=Iif(isNothing(First(Fields!FileData.Value," PictureTable")),true,false)
=Iif(First(Fields!FileData.Value,"PictureTable") Is Nothing,true,false)
=Len(System.Text.Encoding.Default.GetString(First(Fields!FileData.Value," PictureTable ")))
=First(Fields!FileData.Value,"PictureTable")
=System.Text.Encoding.Default.GetString(First(Fields!FileData.Value,"PictureTable "))

De 3 første giver det samme lige meget om billedet bliver vist eller ej, den 4. giver 3 ved Null og den reelle billedstørrelse når det ikke er Null, og den 5. giver følgende fejl(nok fordi det er binært ):

Warning - 1 - The Value expression used in textbox ‘textbox18' returned a data type that is not valid.

Den 6. giver enten billedets binære værdi eller " ýÿ"(ved Null)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester