2012-06-13
Pakiety SISS mogą automatyzować pracę administratora bazy danych. Pakiety te powstją w różny sposób. Możesz je utworzyć w SQL Server Business Inteligence Development Studio (BIDS), możesz też „wyklikać” podczas kreatora eksportu i importu. Gotowe pakiety składuje sie następnie na dysku lub na serwerze SQL w bazie danych msdb w tabeli o nazwie dbo.sysssisspackages:

Jeśli taki pakiet został utworzony przy pomocy kreatora i zapisałeś go na SQL serwerze to powstaje pytanie, czy można tak zapisany pakiet dalej jakoś edytować? Otóż tak!
Czytaj dalej »
2012-06-13
CHECKPOINT to proces, który przegląda bufor zawierający odczytane z dysku strony i jeżeli storana znajdująca się w buforze uległa zmianie, a zmiana nie trafiła jeszcze do bazy danych (a jedynie do loga), to przepisuje tę stronę na dysk do pliku bazy danych.
CHECKPOINT uruchamia się od czasu do czasu i takie wytłumaczenie trochę niepokoi administratorów 🙂 Parametr, który pozwala określić tę częstość to recovery interval (min). Jest to opcja serwera, którą można skonfigurować poprzez sp_configure.
Czytaj dalej »
2012-06-11
Dziś napotkałem dziwne zachowanie metody Graphics.DrawImageUnscaledAndClipped. Problem polegał na tym, że na niektórych drukarkach (w tym na drukarce HP OfficeJet J5780) kiedy po raz kolejny na kartce należało umieścić ten sam obrazek, funkcja umieszczała obrazek, ale na nim wymalowywała obrazek jeszcze raz (tym razem skalując go). Efekt wyglądał koszmarnie. Cała seria ładnie wydrukowanych obrazków przykrywała większość kartki, ale niektóre z obrazków były dodatkowo przykryte tym samym, lecz zeskalowanym obrazkiem. Owe felerne wywołanie wyglądało tak:
e.Graphics.DrawImageUnscaledAndClipped(img,
new Rectangle(lineX, lineY, itemWidth, itemHeight));
Na innych drukarkach, w tym na emulatorze PDF wydruk wychodził poprawnie. Cóż było robić? Trzeba wymyślić jakieś obejście problemu. Jeden z pomysłów był taki: skoro funkcja obcinająca obrazek sobie nie radzi, to zrobię to sam. Oto funkcja, która przycina obrazek:
public Image ClipImage(Image image,Rectangle rect)
{
Bitmap bmp = (Bitmap)image;
return (Image)bmp.Clone(rect,image.PixelFormat);
} Czytaj dalej »
2012-06-11
Instalując SQL Serwer dochodzisz w pewnym momencie do ekranu, który podsumowuje wybrane opcje instalacji i wslazuje na ścieżkę dostępu do pliku ze wszystkimi udzielonymi przez instalatora odpowiedziami:

Posiadając taki plik ini możesz zautomayzować kolejne instalacje SQL serwera wskazując na niego poprzez parametr przekazywany do polecenia setup:
Setup.exe /ConfigurationFile=MyConfigurationFile.INI
Niepokój budzi jedynie kwestia haseł. Przecież podczas instalacji podawałeś hasła! czy one również są zapisane w pliku ConfigurationFile? Czytaj dalej »
2012-06-09
Już raz opisywałem ten temat w http://www.mobilo24.eu/jak-oznaczyc-aplikacje-w-c-tak-by-uruchamiala-sie-jako-administrator-c-uac-i-elevated-rights/
Tym razem trafiłem jednak na ciekawy wpis pod adresem http://www.csharp.pl/viewtopic.php?f=3&t=2255.
Aby ten cenny kawałek kodu nie uciekł przeklejam go poniżej:
static public bool CzyMaszPrawaUAC()
{
return new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator);
}
static private void RunElevated(string fileName)
{
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.Verb = "runas";
processInfo.FileName = fileName;
try
{
Process.Start(processInfo);
}
catch (Exception)
{
}
}
static public void UruchoJakoUAC()
{
if (!CzyMaszPrawaUAC())
{
RunElevated(Application.ExecutablePath);
Application.Exit();
}
}
Ciekawe rozwiązanie!
2012-06-09
Sporo się tego naszukałem, chociaż rozwiązanie było banalnie proste. Domyślnie, kiedy na formie okna wyświetlisz obraz, a na tym obrazie chcesz umieścić napis w postaci Label, to label otrzymuje tło w ustalonym kolorze. Efekt nie jest zachwycający. Widać ładny obrazek, a na nim domyślnie szary prostokąt z napisem. Straszne. Aby label nie miał tła wymalowywanego w postaci prostokąta i aby był przeźroczysty kliknij we właściwościach Labelki pozycję tło (BackColor), przejdź na zakładkę Web i wybierz Transparent. Banalne.
Na pociechę pzostało mi to, że wiele innych osób też nie było tego świadomych:
http://stackoverflow.com/questions/373913/setting-the-parent-of-a-usercontrol-prevents-it-from-being-transparent/373961#373961
http://stackoverflow.com/questions/605920/reasons-for-why-a-winforms-label-does-not-want-to-be-transparent
http://www.doogal.co.uk/transparent.php
Krótko mówiąc – szukajcie a znajdziecie!
2012-06-07
Proste 🙂 Wystarczy zamiast podawać tekst pozycji, która ma być wyświetlana w menu podać znak „-„. Znak – zostanie zastąpiony na symbol separatora w menu
myMenu = new ContextMenu();
myMenu.MenuItems.Add("Zakończ", OnExit);
trayMenu.MenuItems.Add("-");
trayMenu.MenuItems.Add("Opcje", OnOptions);
OnExit i OnOptions to metody utworzone np tak:
private void OnExit(object sender, EventArgs e)
{
Application.Exit();
}