Vandaag kreeg ik het verzoek om in een view alle gekoppelde medewerkers in 1 kolom te tonen die bij een client horen. Dit kan een behoorlijk lastige klus zijn en ik wist ook niet precies hoe ik zoiets zou moeten gaan oplossen. Een CURSOR zou mogelijk zijn, maar dat gebruik ik liever niet in de view die ik nu moet maken.
Na even zoeken kwam ik achter een nieuwe functie die bij SQL 2005 is geimplementeerd en gelukkig ook in SQL 2008 werkt, namelijk de CROSS APPLY.
Hiermee is het mogelijk om kruistabellen te maken (zo leg ik het maar even uit) en die gegevens in 1 kolom te tonen. Dat is tenminste waar ik het momenteel voor misbruik. Door bijvoorbeeld een query als volgt op te stellen krijg je 1 kolom met het ID van een persoon en een tweede kolom met daarin alle gekoppelde medewerkers.
SELECT stamtabel.case_id, hulpverleners = LEFT(o.list, len(o.list)-1)
FROM stamtabel
CROSS APPLY ( SELECT CONVERT( NVARCHAR(255), hulpverlener) +', ' AS [text()]
FROM medewerkerkoppeltabel bhpc
WHERE bhpc.case_id = stamtabel.case_id FOR XML PATH('') ) o (list)
WHERE stamtabel.case_id IN (65186, 46443, 57451, 45327)
Het resultaat dat je hier uit krijgt is als volgt:
57451 | 100, 200, 300, 400 65186 | 100, 122, 10 etc...
Precies wat ik nodig heb. Nu moet ik nog wel even de naam van de medewerkers ophalen in plaats van het ID, maar het concept werkt in ieder geval. Dit is toch een functie die enorm handig kan zijn.
Read more →Dat is wat ik vandaag tegen kwam bij het opzetten van m’n domein thuis.
Toch raar, aangezien ik zeker weet dat het domein werkt en de DNS bereikbaar moet zijn. Dit was ongeveer de melding:
An attempt to resolve the dns name of a dc in the domain being joined has failed. Please verify this client is configured to reach a DNS server that can resolve DNS name in the target domain.
Na even logisch nadenken en de foutmelding wat beter te lezen in plaats van te scannen kwam ik al vrij snel achter de oplossing. Momenteel staat er natuurlijk nog geen DNS server geconfigureerd op de systemen, of de router staat als DNS geconfigureerd. Op die manier kom ik natuurlijk nooit op de domain controller.
Wat ik dus nog moest doen is de DNS op alle systemen instellen dat ze primair m’n domain controller gebruiken en daarna (eventueel) nog een andere DNS.
Nu ik dit heb aangepast kan ik een systeem toevoegen op het domein. Gelukkig heb ik nog niet veel draaien, maar toch handig om te weten. Jammer dat ik de DNS niet in de router zelf kan instellen. Misschien moet ik dan toch eens een luxer model kopen in plaats van een 3Com OfficeConnect. Het kan natuurlijk ook zo zijn dat ik de optie nog niet goed heb kunnen vinden.
Read more →Momenteel ben ik bezig m’n server thuis te upgraden naar een Win2k8R2 omgeving. Sowieso omdat deze versie van het server OS veel beter is dan ooit tevoren, maar ook omdat het nieuw is. Gisteren heb ik m’n homeserver goed kunnen installeren en activeren en ben vandaag bezig met de 2K8R2 omgeving(en). Nu heb ik een guest 2K8R2 en wilde die graag activeren.
Continu kreeg ik de foutmelding dat de activatie niet voltooid kon worden met een errorcode 0x80072EE2.
Via Google kwam ik op heel veel hits uit die me zeiden dat de website dan waarschijnlijk down was, omdat het een time-out fout is. Zou kunnen, maar wel raar dat het nu al 2 dagen speelt. Gisteren lukte de activatie me namelijk ook al niet op deze guest. Na wat verder zoeken kwam ik op een blogpost uit van Derek Mangrum (https://grinding-it-out.blogspot.com/2008/05/error-number-0x80072ee2.html)
Hij stelt dat het een fout is in het OS. Je moet namelijk een key toevoegen in het register om activatie mogelijk te maken in het guest OS.
I found the solution– more searching after this post indicated a registry setting was tweaked but the information given was incorrect. Turns out you need to put this in the guest VM’s registry: HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters Value(DWORD): DisableTaskOffload = 1 (the incorrect mention was called DisableTaskOffset which I am putting here in hopes anyone who searches for that will find this as well)
(information obtained from https://xpworld.spaces.live.com/blog/cns!3110BDF94643CB31!354.entry helped in this)
Read more →
Het gebeurd me nagenoeg altijd. Altijd wanneer ik een webpart moet toevoegen aan een pagina, moet het Chrome type worden aangepast, zodat alleen de titel wordt getoond of juist helemaal niets. Dit kost niet enorm veel tijd, maar ik vind het wel vervelend om te doen, aangezien ik hem eigenlijk altijd zet op niets tonen.
Wat blijkt nu, de standaard Chrome instellingen kunnen worden gewijzigd per webpart zone via de onet.xml bestanden. Deze bestanden zijn standaard te vinden in de map /program files/common files/Microsoft shared/web server extensions/12/templates/sitetemplates/../XML.
In dit bestand staat als het goed is een stukje tekst ChromeType bij iedere webpart zone van de template. De waarde bij dit attribuut kan dan worden aangepast. De waarden zijn:
- Default
- TitleAndBorder
- None
- TitleOnly
- BorderOnly
Bron: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.webparts.partchrometype.aspx
Zelf heb ik het nog niet zien werken, omdat ik nog niet de tijd en gelegenheid heb gehad om dit een keer uit te proberen. Het is natuurlijk ook zo dat er meerdere onet.xml bestanden zijn, dus moet je wel weten welke je aan moet passen. Het is uiteraard wel handig om eerst even een backup te maken van de originele bestanden voordat je hierin aanpassingen gaat maken.
Read more →Onlangs kwam ik een mooie post tegen op een blog. Dit ging over het gebruiken van Linq op de items van een Sharepoint lijst. Het origineel is hier te vinden: https://asadewa.wordpress.com/2008/01/03/direct-linq-to-splistitemcollection/
Volgens de post is het standaard niet mogelijk, maar heeft hij heeft er wel een leuke work-around voor gevonden. Zelf heb ik het nog niet uitgeprobeerd, omdat ik nog niet een goede toepassing heb gevonden/bedacht.
Het komt er in het kort op neer dat je een wrapper schrijft om de SPListItemCollection en daar de item collectie in stopt. De wrapper ziet er ongeveer zo uit:
public class SPListItemCollectionAdapter : List
{
private SPListItemCollection _listItemCollection;
public SPListItemCollectionAdapter(SPListItemCollection listItemCollection)
{
_listItemCollection = listItemCollection; Refresh();
}
private void Refresh()
{
this.Clear();
foreach (SPListItem item in _listItemCollection)
{
this.Add(item);
}
}
}
Zoals te zien wordt deze wrapper afgeleid van de List, waardoor je er dus Linq-queries op uit kunt voeren.
In de constructor wordt dan de itemcollectie toegevoegd en kan er dus mee worden gewerkt. Door deze wrapper kun je nu dus met Linq werken op een Sharepoint lijst item collectie. Dit kan er zo ongeveer uit komen te zien:
//De items ophalen vanuit de lijst
SPListItemCollection itemcol = mossWeb.Lists[listname].Items;
//De opgehaalde item collectie in de adapter stoppen.
SPListItemCollectionAdapter itemsAdapter = new SPListItemCollectionAdapter(itemcol);
//Een Linq-query uitvoeren met het wrapper object
var result = itemsAdapter.Max(x => x[fieldname]);
Om eerlijk te zijn vind ik dit wel een stuk mooier dan gebruik maken van CAML-queries.
Read more →Sinds afgelopen week ben ik toch maar eens begonnen met de hype van dit en afgelopen jaar, Twitter. Iedereen heeft het er continu over, zelfs bij Edwin Evers op 538 en nu was een collega van mij er ook aan begonnen.
Eigenlijk vind ik het helemaal niets wat je er mee kunt. Het slaat ook helemaal nergens op als je het mij vraagt. Nu heb ik zo’n 2 dagen een account en moet zeggen dat ik toch (nog) redelijk actief ben. Misschien juist omdat het nergens op slaat. Ook heb ik nu al wat software geinstalleerd om sneller te kunnen ‘Twitteren’.
Zo heb ik in FireFox de add-in TwitterFox (https://twitterfox.net/) geinstalleerd om zo via m’n Windows XP machine snel te kunnen reageren. Op m’n Vista machine heb ik Twadget (https://arsecandle.org/twadget/) geinstalleerd om zo ook op m’n werk mee te kunnen doen. Op zich is het wel een stuk leuker dan de Wie-Wat-Waar van Hyves, maar toch zie ik het licht nog niet echt.
Ach, zo lang het nog geen kwaad kan ga ik er maar rustig mee door. Je kunt me volgen op https://twitter.com/jan_de_v
Read more →Thuis heb ik een WHS machine staan en daar wil ik natuurlijk vanaf al m’n machines mee kunnen werken. Op dit moment is er Vista Business 64-bit geinstalleerd op m’n werk laptop en wilde ik daar dus ook de WHS Connector software op draaien. Dit lukt standaard echter niet, omdat je dan een melding krijgt dat het niet op een 64-bit machine gedraaid kan worden. Nu kun je dit omzeilen door het volgende in de command prompt in te tikken:
msiexec /i "\SERVER\Software\Home Server Connector Software\whsconnector.msi" WHSMSI="RUNSETUP"
De installer begint nu te draaien en voltooid verder ook zonder problemen. Ik heb gehoord dat het maken van backups niet gaat werken, maar in eerste instantie gaat het me ook alleen maar om het bestanden delen vanaf m’n werk laptop. Toch vind ik wel dat er in een volgend Service Pack hier iets aan gedaan moet worden, of nog beter, een Homeserver 2008 64-bit maken. Maar ja, dat zal nog wel een paar jaar duren.
Read more →Met de komst van Microsoft Server 2008 waar de Hyper-V technologie in zit, heeft het bedrijf ook besloten om een gratis versie van deze server te maken, waar alleen Hyper-V in zit geimplementeerd, dus geen grafische gebruikers interface. De gratis versie is op dit moment te downloaden via deze pagina: https://www.microsoft.com/servers/hyper-v-server/default.mspx?WT.mc_id=AZ-MVP-5003246. Zelf heb ik deze server nu ook draaien op m’n thuisserver. Eerst had ik daar alleen Windows Home Server op draaien, maar nu dus een Hyper-V server met een virtuele WHS installatie.
Het mooie van de Hyper-V server, is dat deze 64-bit is, in tegenstelling tot WHS die ‘gewoon’ 32-bit is. Met m’n installatie van de Hyper-V server kan ik het interne geheugen nu uitbreiden naar 10GB en er ook nog iets nuttigs mee doen in plaats van het 4GB limiet bij een 32-bit machine. Na de installatie van de Hyper-V server stuitte ik nog wel op enkele problemen. Ik had zelf verwacht dat de server al klaar zou zijn voor externe verbindingen vanuit de Hyper-V Manager (speciale MMC plug-in voor deze server), maar niets is minder waar.
Om gebruik de Hyper-V server te kunnen gebruiken zul je eerst via de prompt de Windows Firewall moeten configureren. Gelukkig ben ik niet de enige die dit probleem ondervond en was via internet wel het een en ander te vinden. Als eerste is het noodzakelijk om de Management Tools van Windows Vista te downloaden. Deze zijn hier te vinden: https://support.microsoft.com/kb/952627?WT.mc_id=AZ-MVP-5003246.
Read more →Iedere keer wanneer we een Full-Text catalogus opnieuw moeten populaten is het weer een probleem. De optie Repopulate catalog is grijs en kun je dus niet starten via de interface. In SQL 2000 kon dit nog wel. Inmiddels weten we dat dit niet kan en iedere keer lossen we het weer op door even 5 minuten te Googlen. Zelf vergeet ik namelijk altijd hoe dit gedaan moet worden, omdat je dit eigenlijk nooit doet. Om daar nu van af te zijn post ik hier hoe je in MS SQL Server 2005 je full-text catalog opnieuw kunt populaten. Het commando dat uitgevoerd dient te worden in SQL is het volgende:
EXEC sp_fulltext_catalog 'catalogname', 'start_full'
Logischerwijs is de catalogname uiteraard de naam van je full-text catalog. Dat behoeft volgens mij geen verdere uitleg. Hopelijk was het vandaag de laatste keer dat ik dit op Google op moest zoeken.
Wat ook handig is, is de FULLTEXTCATALOGPROPERTY ('catalog_name' ,'property') functie.
Mogelijke properties zijn:
AccentSensitivity
Accent-sensitivity setting.
IndexSize
ItemCount
LogSize
PopulateCompletionAge
PopulateStatus
UniqueKeyCount
Read more →De laatste tijd was ik bezig met het maken van een Sinterklaas website in Sharepoint (WSS 3.0 welteverstaan). Dit ging prima, totdat ik hem voor de buitenwereld beschikbaar wilde maken. Via de AAM heb ik de website beschikbaar gemaakt voor de buitenwereld via een ander domein van mij. Dit werkte redelijk goed. Jammergenoeg kon ik de website niet onder poort 80 hosten, want het lijkt alsof Ziggo dat blokkeert. Nu heb ik dus maar een poort met een veel hoger nummer gebruikt. Dit werkte ook goed en de hoofdpagina kon nu worden bekeken. Er was echter 1 groot probleem. Zodra iemand naar een andere pagina navigeerde kregen ze de melding ‘Request Failed’. Het vervelende hieraan was, was dat er geen error informatie werd getoond in de logs of op het scherm. Ook kon ik hier geen logische verklaring voor geven. Eerst dacht ik dat het misschien aan het poortnummer zou liggen, maar dat heb ik ook uitgesloten. Uiteindelijk heb ik de web.config maar aangepast in de hoop dat ik meer informatie zou krijgen door de callstack=“true” parameter aan te passen. Hier had ik geluk mee. Nu kreeg ik bij de ‘Request Failed’ melding een .Net foutmelding waar ik iets meer mee kon. De exacte melding was iets als dit:
Read more →