Piotr Szczepanik – programowanie (.Net, C#, SQL), administracja, IT

blog IT: programowanie, administracja
Jak pobrać losowy rekord z tablicy w bazie danych ?

Np. tak:

 T-SQL |  kopiuj kod |? 
1
SELECT TOP (1) imie FROM obywatele
2
ORDER BY NEWID()
3

Przykład dla bazy danych MySql:
 MySQL |  kopiuj kod |? 
1
SELECT imie FROM obywatele
2
ORDER BY RAND()
3
LIMIT 1
4

Zapytanie w MS Access:
 SQL |  kopiuj kod |? 
1
SELECT TOP (1) imie
2
FROM obywatele
3
ORDER BY Rnd(kolumna_id)
Chcemy wstawić tekst zawierający znaki końca wiersza do pola typu varchar za pomocą zapytania T-SQL ?

Możemy to zrobić tak:

 T-SQL |  kopiuj kod |? 
1
INSERT INTO [dbo].[Teksty] ([Tresc]) 
2
VALUES ('Pierwsza linia' + CHAR(13) + CHAR(10) +
3
'druga linia' + CHAR(13) + CHAR(10) + 'trzecia linia.')

albo po prostu:

 T-SQL |  kopiuj kod |? 
1
INSERT INTO [dbo].[Teksty] ([Tresc]) 
2
VALUES (
3
'Pierwsza linia
4
druga linia
5
trzecia linia.')
W systemie Windows usługa W32Time jest odpowiedzialna między innymi za synchronizację czasu lokalnego z serwerem czasu za pomocą NTP.

Domyślnie synchronizacja przeprowadzana jest co 7 dni (604800 sekund) dla systemów działających poza domeną oraz jedna godzina (3600 sekund) dla systemów znajdujących się w domenie Windows.

Możemy zmienić tą wartość, aby to zrobić edytujemy wartość DWORD o nazwie „SpecialPollInterval„, która znajduje się w kluczu „HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient„.

Wartość odstępu czasowego podawana jest w sekundach.
Po zalogowaniu poprzez Terminal Services Client (mstsc) na serwer Windows 2008 w liście drukarek nie widać tych zainstalowanych na komputerze, z którego dokonujemy połączenia ?

Nie dopatrujmy się od razu „awarii”. Po prostu sprawdźmy czy nie jest zablokowane:

  1. Przechodzimy do apletu „Konfiguracja usług terminalowych” (Narzędzia Administracyjne > Usługi Terminalowe).
  2. Klikamy prawym klawiszem na wybranym połączeniu (standardowo będzie ono miało nazwę „RDP-Tcp”) i wybieramy polecenie „Właściwości”.
  3. Przechodzimy do zakładki „Ustawienia klienta”.
  4. Odznaczamy pole „Drukarka systemu Windows”.
Co zrobić by nie martwić się o to jak są oddzielane miejsca dziesiętne (kropka / przecinek) w string’ach, które rzutujemy, np. na typ Double ?

Wystarczy zastosować coś takiego:
 C# |  kopiuj kod |? 
1
double price = Convert.ToDouble("10.66", System.Globalization.CultureInfo.InvariantCulture);

Dodatkowo gdybyśmy chcieli zastosować inny sposób za pomocą tego kodu możemy poznać separator miejsc dziesiętnych dla aktualnej CultureInfo:
 C# |  kopiuj kod |? 
1
System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator