Edytowanie paczki SISS zapisanej na SQL Server

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 »

By Rafał Kraik in SSIS

SQL: Jak często uruchamia się automatycznie CHECKPOINT?

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 »

By Rafał Kraik in SQL

C# Metoda Graphics.DrawImageUnscaledAndClipped nie działa poprawnie

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 »

SQL: Unattend installation (instalacja nienadzorowana) a kwestia haseł

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 »

By Rafał Kraik in SQL

C# Uruchamianie aplikacji jako Administrator

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!

C# przeźroczyste tło kontrolki Label w WinForms

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!

 

 

 

C# Programowe dodanie separatora do menu kontekstowego

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();
 }