Badanie technologii LINQ

Wielkość: px
Rozpocząć pokaz od strony:

Download "Badanie technologii LINQ"

Transkrypt

1 WEiI PK Katedra Inżynierii Komputerowej Badanie technologii LINQ Ćwiczenia z przedmiotu Obiektowe bazy danych Włodzimierz Khadzhynov

2 Spis treści Wstęp... 4 LINQ to Objects... 5 Rozszerzenia języka C#3.0 dla LINQ... 5 Wykorzystanie metod anonimowych... 7 Zmienna Var... 8 Typy anonimowe... 8 Wykorzystanie lambda-wyrażeń... 9 Operatory zapytań Wyrażenia zapytaniowe (query expression) Wykorzystanie metody Cast lub OfType LINQ to XML LINQ to SQL Generacja klas encyjnych dla LINQ to SQL Tworzenie klas encyjnych za dopomogą utility SqlMetal Tworzenie klas encyjnych za dopomogą Object Relational Designer Modyfikacja kolumny w bazie Wstawianie danych Pobieranie baz Northwind oraz Pub oraz dołączenie tych baz do MS SQL Server LINQ to DataSet Zadania ćwiczeniowe dla studenta LINQ to Object LINQ to XML LINQ to SQL z wykorzystaniem SQLMETAL LINQ to SQL z wykorzystaniem O/R Designera Projektowanie zapytań LINQ

3 Select Ćwiczenie dla studentów Where Ćwiczenie dla studentów OrderBy Ćwiczenie dla studentów Take i Skip Ćwiczenie dla studentów GroupBy Ćwiczenie dla studentów Distinct, Union, Intersect, Except Ćwiczenie dla studentów Join Operators Ćwiczenie dla studentów

4 Wstęp LINQ (Language Integrated Query zapytania zintegrowane) to technologia zapytań zintegrowanych z językiem programowania, pozwalająca na pisanie zapytań dotyczących lokalnych kolekcji obiektów i zdalnych źródeł danych, a przy tym podlegających kontroli typów. Podstawowymi jednostkami danych w LINQ są kolekcje i elementy. Kolekcja danych odpytywana przez LINQ musi implementować interfejs IEnumerable<>, a element to dowolny pojedynczy element takiej kolekcji. Dostęp do obiektów wewnątrz programu oraz do obiektów baz danych jest zrealizowany w sposób jednolity. LINQ to składnia, którą można wykorzystać do odpytywania różnych źródeł danych: obiektów, baz danych SQL, dokumentów XML, encji itd. LINQ posiada pełne wsparcie dla transakcji, widoków, procedur przechowanych. Zapytania LINQ stają się częścią języka wspierającego.net (C#, VB itd.).wszystkie operatory zapytań są implementowane jako statyczne metody rozszerzające klasy Enumerable. Jeśli LINQ ma działać, musi znać mapę całej bazy danych. Zapytanie LINQ zwraca kolekcję z przestrzeni nazw typów ogólnych. Kolekcja ta może być modyfikowana, a następnie zwrócona do źródła. Dzięki temu zachowywana jest pełna kontrola typów danych i ich konwersji w poszczególnych mechanizmach pośredniczących w pobieraniu danych. Dane mogą pochodzić z: zwykłych obiektów (LINQ to objects), bazy danych (LINQ to sql), dokumentów XML (LINQ to XML). Można zastosować na nich takie operacje jak: projekcje lub złączenia. LINQ zapożyczył z języka SQL sposób budowania zapytań. Każdy programista mający kontakt z językiem SQL nie będzie miał większych problemów z tworzeniem zapytań LINQ. Na rys.1 pokazany jest schemat architektury LINQ. Rys.1 LINQ to Objects to jest interfejs API IEnumerable <T> dla standardowych operacji zapytań. LINQ to Objects pozwala realizować zapytania do tablic i kolekcji danych. Standardowe operacji zapytań są w postaci metod statycznych klasy System.Linq.Enumerable. 4

5 LINQ to Objects Przykład zapytania LINQ do tablicy ciągów znaków jest pokazany w listingu 1. Listing using System; 2. using System.Linq; 3. string[] greetings = "hello world", "hello LINQ", "hello Politechnika" ; 4. var items = from s in greetings where s.endswith("linq") select s; 5. foreach (var item in items) 6. Console.WriteLine(item); 7. Console.ReadLine(); Z tego listingu można zrozumieć, że LINQ potrzebuje bibliotekę System.Linq. Zapytanie do danych podobno jest formatu zapytania SQL, ale z odwrotnym porządkiem operatorów oraz zawiera konstrukcje s in w operatorze from. Oprócz tego każdy obiekt zawiera sporo dodatkowych metod. Zwłaszcza, obiekt s zawiera metodę EndsWith(). Główną zaletą LINQ jest pełna integracja z językiem C#. LINQ nie proponuje nowe klasy dla realizacji swoich zapytań. LINQ może pracować z istniejącymi kolekcjami oraz tablicami, którzy są skojarzone z istniejącymi klasami. Głównymi wymogami do tych kolekcji jest konieczność realizacji interfejsu IEnumerable <T>. Aby ułatwić odczytywanie danych z nieznanych źródeł, w LINQ wprowadzono zmienne deklarowane przy użyciu słowa kluczowego VAR (zmienne typu anonimowego). Typ zmiennych tego rodzaju jest ustalany przez kompilator na podstawie wartości użytej przy inicjalizacji. Przy tym inicjalizacja musi nastąpić w tej samej linii kodu co deklaracja. Po zainicjowaniu zmienne z typem VAR respektują kontrolę typów, to znaczy, np. do zmiennej typu VAR zainicjowanej stałą typu INT nie można już przypisać łańcucha znaków. Zmienne tego typu mogą być jedynie zmiennymi lokalnymi, a więc mogą być deklarowane i inicjowane tylko wewnątrz metody. Przykład nieprawidłowego wykorzystania VAR jest pokazany w listingu: var name = "Joe"; name = 1; Rozszerzenia języka C#3.0 dla LINQ Metody rozszerzające to są metody którzy są statycznymi oraz mogą być wywołane na instancji (obiekcie) klasy przez notację punktową bez konieczności odwołania do klasy. Rozszerzenia (extension methods) pozwalają dodawać nowe metody do istniejących klas bez modyfikacji ich kodu. Metody rozszerzające muszą być definiowane jako statyczne w statycznych klasach niezagnieżdżonych oraz mogą być wywoływane tak, jak metody składowe innych wcześniej zdefiniowanych klas. Dla przykładu dodajmy do klasy String metodę zmieniającą apostrof w hash. W listingu 2 jest pokazany ten przykład. Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; using System.Linq; 5. using System.Text; 6. static void Test_rozszerzenia() 5

6 7. 8. Console.WriteLine("0 : Begin", new StackTrace(0, 9. true).getframe(0).getmethod().name); 10. string s = "SQL Inje'c'tion"; 11. Console.WriteLine(s.UsunApostrof()); 12. Console.WriteLine(s.UsunApostrof('#')); 13. Console.WriteLine(s.UsunApostrof(c => (c == '\'')? '#' : c)); 14. Console.WriteLine("0 : ", new StackTrace(0, 15. true).getframe(0).getmethod().name); 16. Console.ReadLine(); static class Rozszerzenia public static string UsunApostrof(this String argument) return argument.replace('\'', '#'); public static string UsunApostrof(this String argument, char 23. zamiennik) return argument.replace('\'', zamiennik); delegate char DZmieniacz(char znak); 28. //public static string UsunApostrof(this String argument, 29. DZmieniacz zmieniacz) 30. public static string UsunApostrof(this String argument, 31. Func<char, char> zmieniacz) string wynik = ""; 34. foreach (char znak in argument.tochararray()) 35. wynik += zmieniacz(znak); 36. return wynik; W liniach 7-17 jest wyznaczona metoda Test_rozszerzenia() która wykorzysta rozszerzenia dla klasy string definiowane w liniach Niezbędnym dla rozszerzenia klasy String w tym przykładzie jest obecność argumentów This String (obecny obiekt) w metodach rozrzedzających. Argument This String musi być zawsze pierwszym argumentem w metodzie rozrzedzającej. Przy prawidłowej definicji metody jest ona widoczna w IntelliSense dowolnego obiektu klasy String. W liniach są definiowane trzy różne stereotypy metod rozszerzających UsunApostrof()dla klasy string. W liniach jest definiowana rozszerzająca z wykorzystaniem delegata funkcji jako argumentu. Delegat został deklarowany w linii 28 oraz metoda rozszerzająca w linii 31: public static string UsunApostrof(this String argument, Func<char, char> zmieniacz) Tu jest wykorzystany typ parametryczny Func<char, char>. Jego pierwszym parametrem może być typ argumentu (char), a drugim typ zwracany przez metodę (char). W linii 14 pokazany przykład wykorzystania tej metody za dopomogą wyrażenia Lambda: Console.WriteLine(s.UsunApostrof(c => (c == '\'')? '#' : c)); Technologia LINQ oprócz możliwości integracji zapytań pozwoli realizować sporo funkcji integracji danych w programowaniu obiektowym. Rozpatrzymy przykład. Przypuścimy że mamy dowolną metodę A która wraca tablicę ciągów znaków typu STRING. Ten wynik trzeba przekazać do metody B, która potrzebuje na wejściu ciąg znaków typu INTEGER. W zwykłych przypadkach dla przekazania danych do metody B są potrzebna dodatkowa pętla do przekształcenia tablicy STRING do postaci 6

7 typu INTEGER. W przypadku wykorzystania LINQ ta operacja może być zrealizowana przez lambda wyrażenia oraz wewnętrzne metody zapytań w sposób podobny w listingu 3. Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7. string[] numbers = "0042", "010", "9", "27" ; 8. int[] nums = numbers.select(s => Int32.Parse(s)).ToArray(); 9. foreach (int num in nums) 10. Console.WriteLine(num); 11. Console.ReadLine(); W linii 7 jest zdefiniowana tablica ciągów znaków. W linii 8 jest zrealizowane przekształcenie tablicy numbers do nowej tablicy nums. Dla realizacji dodatkowej operacji sortowania w poprzednim przykładzie może być zrealizowany następny kod (Listing 4). Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7. string[] numbers = "0042", "010", "9", "27" ; 8. int[] nums = numbers.select(s => Int32.Parse(s)).OrderBy(s => 9. s).toarray(); 10. foreach (int num in nums) 11. Console.WriteLine(num); 12. Console.ReadLine(); Wykorzystanie metod anonimowych Wykorzystanie delegatów potrzebuje w klasycznym podejściu definicję delegata oraz następną instancję tego delegata do konkretnej metody. W przypadkach kiedy metody delegata będą wykorzystane tylko jeden raz lepiej tworzyć metody anonimowe. Metody anonimowe pozwalają specyfikować kody metod w punkcie przekazywania delegata. Aby napisać metodę anonimową, należy zastosować słowo kluczowe delegate uzupełnione o deklarację parametrów, a następnie właściwe ciało funkcji. W listingu 5. Jest pokazany kod programu dla filtracji tablicy liczb typu Integer. Listing using System; 2. using System.Collections; 3. using System.Collections.Generic; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7

8 7. int[] nums = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; 8. int[] oddnums = Common.FilterArrayOfInts(nums, delegate(int i) return ((i & 1) == 1); ); 9. foreach (int i in oddnums) 10. Console.WriteLine(i); 11. Console.ReadLine(); 12. public class Common public delegate bool IntFilter(int i); 15. public static int[] FilterArrayOfInts(int[] ints, 16. IntFilter filter) ArrayList alist = new ArrayList(); 19. foreach (int i in ints) if (filter(i)) alist.add(i); return ((int[])alist.toarray(typeof(int))); W liniach jest definiowana klasa Comon. W linii 14 jest definiowany delegat: public delegate bool IntFilter(int i), który jest wykorzystany w metodzie FilterArrayOfInts(int[] ints,intfilter filter.instancja delegata jest zrealizowana w linii 8. Zmienna Var Wykorzystanie zmiennej o słowie kluczowym var daje możliwość określania typu zmiennej lokalnej przy inicjalizacji. Typ zmiennej w trym przypadku jest ustalany przez kompilator na podstawie wartości użytej w moment inicjalizacji, np.: var i = 7; --> int i =7; var lancuch = "Slowo"; --> string lancuch = "Slowo"; var liczby = new int [ ] 1,2,3; --> int[ ] liczby = new int[ ] 1,2,3; Inicjalizacja zmiennej następuje w tej samej linii kodu co deklaracja. Dzięki zastosowaniu słowa kluczowego var można odczytywać dane z nieznanych źródeł. Jest to bardzo przydatne przy stosowaniu zapytań LINQ. Typy anonimowe Typ anonimowy to prosta klasa utworzona w locie do przechowywania zestawu wartości. Aby utworzyć typ anonimowy, należy zastosować słowo kluczowe New z inicjalizatorem obiektu zawierającym nazwy i wartości dla poszczególnych właściwości, które mają zostać zawarte w typie anonimowym: var anonim=new i=1, l=1l, s="politechnika", f=1.0f, d=1.0; MessageBox.Show(anonim.GetType().FullName); MessageBox.Show(anonim.s); 8

9 Wykorzystanie lambda-wyrażeń Lambda wyrażenia są skróconą postacią do specyfikacji algorytmu. Lambda wyrażenia są specyfikowane jako lista parametrów, operacją lambda => oraz listę operacji: (parameter 1, parameter 2,,parameter N) => Operator 1; Operator 2; Operator N; Return (typ zwracanego lambda wyrażenia); Przykłady : x => x ; To wyrażenie oznaczy, że x wraca x. x=>x.length>0; To wyrażenie oznaczy, że x wraca wartość boolowską. x=>x.length ; To wyrażenie oznaczy, że x wraca wartość typu Integer. (x,y) => x==y; To wyrażenie oznaczy, że (x,y) wracają wartość boolowską. (x,y) => If (x>y) Return(x); Else Return(y); 9

10 Lambda wyrażenia można wykorzystać do wyspecyfikowania delegatów w programie. Ten przykład jest pokazany w listingu 6. W listingu 6 jest wykorzystany poprzedni przykład filtracji liczb, dlatego zamienione zostali tylko linii 7-11 kodu listingu 6. Listing 6 int[] nums = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; int[] oddnums = Common.FilterArrayOfInts(nums, i => ((i & 1) == 1)); foreach (int i in oddnums) Console.WriteLine(i); Operatory zapytań Metoda przekształcająca sekwencję wejściową nazywa się operatorem zapytania klasie Enumerable zdefiniowano około 40 operatorów zapytań oraz wszystkie są jako statyczne metody rozszerzające. Te operatory nazywają standardowymi operatorami zapytań. Kaskadowe operatory zapytań można budować z pojedynczych operatorów zapytań. Wyrażenia zapytaniowe (query expression) Wyrażenie zapytaniowe zawsze zaczyna się od klauzuli from i zawsze kończy się klauzulą select,albo group. Klauzula from deklaruje zmienną zakresową, która można traktować jako zmienną przemierzającą elementy kolekcji wejściowej ( podobne jak w instrukcji foreach). Kompilator przetwarza wyrażenia zapytaniowe, tłumacząc je na operatory kaskadowe. Główną zaletą składni zapytań jest to, że upraszcza ona zapytania, w których występują : Klauzula let do wprowadzenia nowej zmiennej obok zmiennej zakresowej, Generatory (SelectMany) z odwołaniem do zewnętrznej zmiennej zakresowej, Odpowiednik Join albo GroupJoin z odwołaniem do zewnętrznej zmiennej zakresowej. Wykorzystanie metody Cast lub OfType Operacji zapytań LINQ mogą być wywoływane na kolekcjach którzy realizują interfejs IEnumerable< T>. Żadna z dziedziczonych kolekcji C# z przestrzeni System.Collection nie realizuje IEnumerable< T>. Wykorzystać kolekcje dziedziczone można przez zapytania Cast<> dla konwersji do sekwencji IEnumerable<T >. Listing 1.9 Listing 1.6 przykład przekształcenia sekwencji klasy Employee do sekwencji innej klasy Contact. Klasa Employee przeznaczona jest dla magazynowania danych pracowników w postaci obiektów klasy ArrayList. Klasa ArrayList reprezentuje tablicę obiektów klasy obiect o dynamicznym rozmiarze. Klasa Employee zawiera metodę GetEmployees (), która wraca wszystkich pracowników jako sekwencję obiektów ArrayList. Metoda PublishContacts(Contact[] contacts) publikuje kontakty oraz potrzebuje na wejściu sekwencje obiektów typu Contact[]. Dla publikacji kontaktów wszystkich pracowników 10

11 trzeba przekształcić sekwencje obiektów klasy Employee typu ArrayList do sekwencji obiektów typu Contact[]. Standardowa metoda Cast() realizuje konwersję ArrayList obiektów Employee do sekwencji IEnumerable< Employee>. W metodzie Select() jest stworzona sekwencja obiektów IEnumerable< > z niezbędnymi polami klasy Contact. Metoda ToArray() konwertuje IEnumerable< > do sekwencji Contact[]. static void Listing1_6() Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); ArrayList alemployees = LINQDev.HR.Employee.GetEmployees(); LINQDev.Common.Contact[] contacts = alemployees.cast<linqdev.hr.employee>().select(e => new LINQDev.Common.Contact Id = e.id, Name = string.format("0 1", e.firstname, e.lastname) ).ToArray<LINQDev.Common.Contact>(); LINQDev.Common.Contact.PublishContacts(contacts); Console.WriteLine(alEmployees.GetType()); Console.WriteLine("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); Console.ReadLine(); namespace LINQDev.HR public class Employee public int id; public string firstname; public string lastname; public static ArrayList GetEmployees() //Oczywiście prawdopodobnie tutaj będzie prawdziwy kod zapytania do bazy danych ArrayList al = new ArrayList(); al.add(new Employee id = 1, firstname = "Piotr", lastname = "Osowski" ); al.add(new Employee id = 2, firstname = "Bartosz", lastname = "Ciwinski" ); al.add(new Employee id = 3, firstname = "Andrzej", lastname = "Smoliak" ); return (al); namespace LINQDev.Common public class Contact public int Id; public string Name; 11

12 public static void PublishContacts(Contact[] contacts) // This publish method just writes them to the console window. foreach (Contact c in contacts) Console.WriteLine("Contact Id: 0 Contact: 1", c.id, c.name); LINQ to XML LINQ to XML to jest interfejs LINQ API przeznaczony dla XML. Klasy i metody są rozlokowane w System.Xml.Linq. Przykład zapytania do XML z wykorzystaniem LINQ to XML pokazany jest w listingu 7. Listing 7. //Listing1_2(); using System; using System.Linq; using System.Xml.Linq; XElement books = <book> <title>bazy danych</title> <author>włodzimierz Khadzhynov</author> </book> <book> <title>pro WF: Windows Workflow in.net 3.0</title> <author>bruce Bukovics</author> </book> <book> <title>pro C# 2005 and the.net 2.0 Platform, Third Edition </title> <author>andrew Troelsen</author> </book> </books>"); var titles = from book in books.elements("book") where (string)book.element("author") == "Włodzimierz Khadzhynov" select book.element("title"); foreach (var title in titles) Console.WriteLine(title.Value); Console.ReadLine(); W tym listingu plik XML jest załadowany do kolekcji obiektów books klasy XElement za dopomogą metody Parse. LINQ to XML pozwoli nie wykorzystać klasę XmlDocument. 12

13 LINQ to SQL. LINQ to SQL pojawił się wraz z Visual studio 2008 i jest to technologia mapująca bazę danych SQL Server do postaci obiektowej, czyli O/RM (object relational mapping) oraz pozwalająca na odpytywanie bazy danych za pomocą składni LINQ. Za pomocą LINQ to SQL w bardzo łatwy sposób można wykonać CRUD (create, read, update, delete) na bazie danych. Na rys.2 jest pokazane w jaki sposób są przekształcone zapytania LINQ na poziomie aplikacji do zapytań serwera SQL. Rys.2 W listingu 6 jest pokazany przykład wykorzystania zapytania LINQ to SQL. Listing 8 1. using System.Linq; 2. using System.Data.Linq; 3. using nwind; //Northwind db = new Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"); 4. Northwind db = new 5. var custs = from c in db.customers where c.city == "London" select c; 6. foreach (var cust in custs) 7. Console.WriteLine("0", cust.companyname); 8. Console.ReadLine(); Tu została dodana w trzeciej linii kodu przestrzeń nazw nwind (linia 3). Ta przestrzeń nazw została zdefiniowana w pliku Nortwind.cs oraz zawiera klasę Northwind (patrz rys. 3). Klasa Northwind dziedziczy klasę DataContext oraz prezentuje całą bazę danych w postaci zbioru klas encyjnych niezbędnych do odwołania do obiektów tabeli bazy danych. 13

14 Rys.3. Generacja klas encyjnych dla LINQ to SQL. Plik Northwind.cs oraz przestrzeń nwind która zawiera klasę DataContext, mogą być stworzone w dwa sposoby: za dopomogą utility SQLMetal lub przez Object Relational Designer. Tworzenie klas encyjnych za dopomogą utility SqlMetal. Utilita SQLMetal jest w składzie DOTNET Framework 3.5 oraz może być wykorzystana tylko dla baz danych MS SQL Server. Przykład uruchomiania SQLMetal jest pokazany na rys.4. Rys.4 Po zakończeniu programu sqlmetal plik northwind.cs trzeba dodać do projektu. Tworzenie klas encyjnych za dopomogą Object Relational Designer. Designer pozwoli tworzyć klasy encyjne przez przeciąganie tablic bazy danych w pole projektu. Dla tworzenia tych klas są potrzebne następne kroki: 14

15 1. Dodać do projektu plik klas LINQ to SQL. Nazwa tego pliku może być dowolną, ale lepiej skojarzyć je z nazwą bazy danych. Po kliknięciu ADD pojawi się puste okno Designera: 2. W oknie Server Explorer trzeba ustalić połączenie z bazą danych: 15

16 3. Trzeba przenieść obiekty bazy danych do pola designera: 4. Prawy panel designera(na rys. niżej) służy dla tworzenia metod kontekstu. Na ten panel można przeciągnąć przechowywane procedury bazy danych: 16

17 Rezultaty tworzenia klas encyjnych będą w pliku mojabaza.dbml oraz w następnych plikach : Informacja o bazie danych klasy DataContext będzie wyznaczona w pliku app.config: Po stworzeniu pliku mojabaza.dbml są stworzone wszystkie klasy tablic bazy danych. To można spojrzeć w oknie browsera obiektów: 17

18 Modyfikacja kolumny w bazie W listingu 9 jest pokazany przykład modyfikacji kolumny w tablice Customer bazy danych Northwind. W linii 18 został stworzony obiekt db klasy DataContext. Głównym przeznaczeniem klasy DataContext jest połączenie z bazą danych. Ta klasa zawiera serwisy dla sprawdzenia dokonanych zmian w bazie danych oraz dla realizacji tych zmian. Oddzielne tablice w bazie danych są właściwościami klasy DataContext, dlatego odwołać się do obiektów reprezentujących tablicę można w sposób pokazany w linii 19: db.customers. Listing using System; 2. using System.Collections.Generic; 3. using System.Data.Linq; 4. using System.Diagnostics; // For the StackTrace. 5. using System.Linq; 6. using System.Text; 7. using nwind; 8. namespace LINQChapter class Program static void Main(string[] args) 13. Listing12_1(); static void Listing12_1() Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); // tworzenie obiektu DataContext. 18

19 Northwind db = new // Wywołanie użytkownika LAZYK. 18. Customer cust = (from c in db.customers 19. where c.customerid == "LAZYK" 20. select c).single<customer>(); 21. Console.WriteLine(cust.ContactName); // modyfikacja pola contact name. 22. cust.contactname = "Ned Plimpton"; 23. try 24. // zachowanie zmian. 25. db.submitchanges(); 26. // Detect concurrency conflicts. 27. catch (ChangeConflictException) 28. // Resolve conflicts. 29. db.changeconflicts.resolveall(refreshmode.keepchanges); Console.WriteLine("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); 32. Console.ReadLine(); Wykorzystanie LINQ to SQL dla baz danych można rozpatrywać dla następnych typów operacji z rekordami: Wstawiania Zapytania Modyfikacji Usuwania. Wstawianie danych. Obiekt DataContext odwzorowuje dowolne asocjacje Stworzenie egzemplarzy klasy encyjnej nie jest jeszcze wystarczającym dla ostatecznego wstawiania rekordu do bazy danych. Obiekt encyjny musi być wstawiany do kolekcji tablicy Table<T> (gdzie T typ klasy encyjnej) wszystkich kolekcji tablic kontekstu, lub musi być dodany do kolekcji EntitySet<T> odpowiedniego obiektu encyjnego, zawierającego inne obiekty. Przykład realizacji operacji wstawiania rekordów danych ze wstawianiem do kolekcji tablicy encji bazy danych jest pokazany w listingu 10. Listing using System; 2. using System.Collections.Generic; 3. using System.Data.Linq; 4. using System.Diagnostics; 5. using System.Linq; 6. using System.Text; 7. using nwind; 8. Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); // 1. Tworzenie the DataContext. 19

20 //Northwind db = new Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=SSPI;"); 9. Northwind db = new 10. // 2. Tworzenie instancji obiektu encyjnego 11. Customer cust = new Customer CustomerID = "LAWN", 14. CompanyName = "Lawn Wranglers", 15. ContactName = "Mr. Abe Henry", 16. ContactTitle = "Owner", 17. Address = "1017 Maple Leaf Way", 18. City = "Ft. Worth", 19. Region = "TX", 20. PostalCode = "76104", 21. Country = "USA", 22. Phone = "(800) MOW-LAWN", 23. Fax = "(800) MOW-LAWO" 24. ; // 3. Dodanie obiektu encyjnego do tabeli Customers. 25. db.customers.insertonsubmit(cust); // 4. Wywołanie metody SubmitChanges (). 26. db.submitchanges(); // 5. Zapytanie recordu. 27. Customer customer = db.customers.where(c => c.customerid == "LAWN").First(); 28. Console.WriteLine("0-1", customer.companyname, customer.contactname); // Ta część kodu odzyskiwa bazę danych od prowadzonych zmian 29. Console.WriteLine("Deleting the added customer LAWN."); 30. db.customers.deleteonsubmit(cust); 31. db.submitchanges();console.writeline("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); 32. Console.ReadLine(); W linii 9 jest stworzony kontekst bazy danych. Baza danych zawiera kolekcji tablic encji. W liniach 11 stworzona jest instancja obiektu customer. W linii 25 instancja obiektu customer została dodana do tablicy Customers za dopomogą metody InsertOnSubmit(). W linii 26 zmiany zostali wprowadzone do bazy danych. W liniach wpisany rekord został ponownie wywołany z bazy danych i oddrukowany na konsoli. W liniach wpisany rekord jest usunięty z bazy. Przypuścimy trzeba dodać instancję obiektu order. Można to z realizować w sposób pokazany w listingu 5 bezpośrednio do obiektu order. Można to zrobić w sposób inny, zwłaszcza można dodać ten obiekt do kolekcji orders wyznaczonej instancji obiektu Customer. W listingu 11 jest pokazany przykład wstawiania rekordu przez kolekcje obiektów skojarzonych z wyznaczonej encją. Listing 11. using System; 1. using System.Collections.Generic; 2. using System.Data.Linq; 3. using System.Diagnostics; // For the StackTrace. 4. using System.Linq; 5. using System.Text; 6. using nwind; 20

21 7. Console.WriteLine("0 : Begin", new StackTrace(0, true).getframe(0).getmethod().name); 8. Northwind db = new 9. Customer cust = (from c in db.customers where c.customerid == "LONEP" select c).single<customer>(); // Used to query record back out. 10. DateTime now = DateTime.Now; 11. Order order = new Order CustomerID = cust.customerid, EmployeeID = 4, OrderDate = now, RequiredDate = DateTime.Now.AddDays(7), ShipVia = 3, Freight = new Decimal(24.66), ShipName = cust.companyname, ShipAddress = cust.address, ShipCity = cust.city, ShipRegion = cust.region, ShipPostalCode = cust.postalcode, ShipCountry = cust.country ; 12. cust.orders.add(order); 13. db.submitchanges(); 14. IEnumerable<Order> orders = db.orders.where(o => o.customerid == "LONEP" && o.orderdate.value == now); 15. foreach (Order o in orders) Console.WriteLine("0 1", o.orderdate, o.shipname); 18. // This part of the code merely resets the database so the example can be // run more than once. 19. db.orders.deleteonsubmit(order); 20. db.submitchanges(); 21. Console.WriteLine("0 : End", new StackTrace(0, true).getframe(0).getmethod().name); 22. Console.ReadLine(); W linii 9 jest odszukana w bazie danych instancja obiektu customer z identyfikatorem "LONEP".W linii 11 jest stworzona instancja obiektu order. W linii 12 do kolekcji orders obiektu customer została dodana stworzona instancja za dopomogą metody ADD. Wracamy uwagę na to, że dodania do kolekcji Table<T> było za dopomogą metody InsertOnSubmit() (patrz listing 5. Linia 25) oraz do kolekcji EntitySet<T> przez metodę Add(). Pobieranie baz Northwind oraz Pub oraz dołączenie tych baz do MS SQL Server Standardowa instalacja MS SQL Server 2008 nie zawiera przykładowych baz Northwind oraz Pub którzy byli w starszych wersjach MS SQL Server Dla doinstalowania tych baz do MS SQL Server 2005 trzeba realizować następne kroki: 21

22 1.Uruchomić stronę WWW 2.Odszukać rozdział na stronie przeznaczony do pobierania tych baz: 3.Urochomić pokazany wyżej link do strony z zawartością pliku SQL2000SampleDb.msi oraz urochomić proces kopiowania tego pliku. 4. Plik SQL2000SampleDb.msi musi być razarchiwowany na dysku c:\. Po rearchywacji na dysku c: będzie stworzony katalog C:\SQL Server 2000 Sample Databases. W tym katalodzie są pliki instnwnd.sql oraz instpubs.sql: 5. Dla dołączenia pliku bazy danych Northwind (lub Pubs) do MS SQL Server 2005 trzeba kliknąć dwa razy instnwnd.sql (instpubs.sql) dla uruchomienia Sql Management Studio W środowiśku Management Studio zalądować plik instnwnd.sql (instpubs.sql) oraz uruchomić go przez EXECUTE. Plik bazy danych zostanie dołączony do serwera. LINQ to DataSet Korzystając z ADO.NET można prezentować i modyfikować dane z bazy danych. 22

23 Zadania ćwiczeniowe dla studenta 1.LINQ to Object Stwórz program w którym jest zdefiniowana tablica ciągów znaków. W zawartość tej tablicy wpisz nazwiska studentów swojej grupy. Za dopomogą polecenia LINQ to Object wydrukuj wszystkie nazwiska studentów poczynające z wyznaczonej litery. Wskazówka: typowa konstrukcja kodu do wywołania elementu z tablicy ciągów znaków może mieć następny wygląd: IEnumerable<string> items = grupa.where(p => p.startswith("a")); foreach (string item in items) Console.WriteLine(item); 2.LINQ to XML Stwórz plik XML z nazwami przedmiotów oraz wykładowców. Za dopomogą polecenia LINQ to XML wydrukuj przedmioty danego wykładowcy oraz wykładowców skojarzonych z tym przedmiotem. 3.LINQ to SQL z wykorzystaniem SQLMETAL Dołącz bazę danych Northwind do MS SQL Server 2008 Stworz nowy projekt w Visual Studio 2012 Stworz kontekst bazy za dopomogą utility Sqlmetal Dołącz plik kontekstu do projektu Stwórz kod programu do wywołania wszystkich zamowień wyznaczonego klienta Stwórz kod programu do wstawiania nowego zamowienia 4. LINQ to SQL z wykorzystaniem O/R Designera Stworz nowy projekt w Visual Studio 2012 Za dopomogą O/R Designera dołącz niezbędne obiekty Stwórz kod programu do jednoczesnego wstawiania nowego klienta razem z trzema zamowieniami Stwórz kod programu do wywołania wszystkich towarów zamowianych klientem w wyznaczonym zamowieniu 5. Projektowanie zapytań LINQ Technologia LINQ została stworzona, aby ułatwić czytanie kodu, w którym znajdują się kawałki SQL. Dlatego wyrażenia LINQ mają podobna strukturę, co wyrażenie select w SQL. Można między innymi: Wybierać dane na podstawie warunku. Sumować wyniki Wyszukiwać Min i Max Stosować join Grupować dane Sortować dane Poszczególne lekcje odpowiadają określonej grupie zadań. 23

Badanie technologii LINQ

Badanie technologii LINQ WEiI PK Katedra Inżynierii Komputerowej Badanie technologii LINQ Ćwiczenia z przedmiotu Obiektowe bazy danych Włodzimierz Khadzhynov 2010-03-02 Spis treści Wstęp... 3 LINQ to Objects... 3 LINQ to XML...

Bardziej szczegółowo

Leszek Stasiak Zastosowanie technologii LINQ w

Leszek Stasiak Zastosowanie technologii LINQ w Leszek Stasiak Zastosowanie technologii LINQ w C# 1. Wstęp - połączenie Do naszych zadań będziemy używać Microsoft Visual Studio 2010. Stwórzmy nowy projekt Windows Form Application. Mając do dyspozycji

Bardziej szczegółowo

Language INtegrated Query (LINQ)

Language INtegrated Query (LINQ) Języki Programowania na Platformie.NET (część 2) http://www.kaims.pl/ goluch/ goluch@eti.pg.gda.pl Zastosowanie LINQ pozwala na dostęp do danych w formie podobnej do SQL. Możliwy jest dostęp do danych:

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 13 Marcin Młotkowski 27 maja 2015 Plan wykładu Trwałość obiektów 1 Trwałość obiektów 2 Marcin Młotkowski Programowanie obiektowe 2 / 29 Trwałość (persistence) Definicja Cecha

Bardziej szczegółowo

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki

LINQ TO XML. Autor ćwiczenia: Marcin Wolicki LINQ TO XML Celem ćwiczenia jest zapoznanie się z możliwościami przetwarzania dokumentów XML na platformie.net. W toku zadania zostaną przedstawione dwie technologie: LINQ TO XML i XPath. Autor ćwiczenia:

Bardziej szczegółowo

15. Funkcje i procedury składowane PL/SQL

15. Funkcje i procedury składowane PL/SQL 15. Funkcje i procedury składowane PLSQL 15.1. SQL i PLSQL (Structured Query Language - SQL) Język zapytań strukturalnych SQL jest zbiorem poleceń, za pomocą których programy i uŝytkownicy uzyskują dostęp

Bardziej szczegółowo

DECLARE VARIABLE zmienna1 typ danych; BEGIN

DECLARE VARIABLE zmienna1 typ danych; BEGIN Procedury zapamiętane w Interbase - samodzielne programy napisane w specjalnym języku (właściwym dla serwera baz danych Interbase), który umożliwia tworzenie zapytań, pętli, instrukcji warunkowych itp.;

Bardziej szczegółowo

Microsoft SQL Server Podstawy T-SQL

Microsoft SQL Server Podstawy T-SQL Itzik Ben-Gan Microsoft SQL Server Podstawy T-SQL 2012 przełożył Leszek Biolik APN Promise, Warszawa 2012 Spis treści Przedmowa.... xiii Wprowadzenie... xv Podziękowania... xix 1 Podstawy zapytań i programowania

Bardziej szczegółowo

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. 77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego. Przy modelowaniu bazy danych możemy wyróżnić następujące typy połączeń relacyjnych: jeden do wielu, jeden do jednego, wiele

Bardziej szczegółowo

LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH

LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH Scientific Bulletin of Che lm Section of Mathematics and Computer Science No. 1/2008 LINQ - PRZEŁOM W PROJEKTOWANIU APLIKACJI BAZODANOWYCH GRZEGORZ WIŚNIEWSKI Państwowa Wyższa Szkoła Zawodowa w Chełmie

Bardziej szczegółowo

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus

Podstawy języka SQL Co to jest SQL? Możliwości SQL SQL*Plus Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL jest językiem deklaratywnym tj. takim, w którym istotne

Bardziej szczegółowo

Oracle11g: Wprowadzenie do SQL

Oracle11g: Wprowadzenie do SQL Oracle11g: Wprowadzenie do SQL OPIS: Kurs ten oferuje uczestnikom wprowadzenie do technologii bazy Oracle11g, koncepcji bazy relacyjnej i efektywnego języka programowania o nazwie SQL. Kurs dostarczy twórcom

Bardziej szczegółowo

Relacyjne bazy danych. Podstawy SQL

Relacyjne bazy danych. Podstawy SQL Relacyjne bazy danych Podstawy SQL Język SQL SQL (Structured Query Language) język umożliwiający dostęp i przetwarzanie danych w bazie danych na poziomie obiektów modelu relacyjnego tj. tabel i perspektyw.

Bardziej szczegółowo

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka 1. Kompilacja aplikacji konsolowych w środowisku programistycznym Microsoft Visual Basic. Odszukaj w menu startowym systemu

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Przestrzenne bazy danych Podstawy języka SQL

Przestrzenne bazy danych Podstawy języka SQL Przestrzenne bazy danych Podstawy języka SQL Stanisława Porzycka-Strzelczyk porzycka@agh.edu.pl home.agh.edu.pl/~porzycka Konsultacje: wtorek godzina 16-17, p. 350 A (budynek A0) 1 SQL Język SQL (ang.structured

Bardziej szczegółowo

Lab.8: Podstawy języka SQL.

Lab.8: Podstawy języka SQL. Lab.8: Podstawy języka SQL. SQL (Structured Query Language) jest językiem zapytań służącym do obsługi relacyjnych baz danych. Współcześnie każdy SZBD posiada własną implementację języka, opartą na wspólnym

Bardziej szczegółowo

Język SQL, zajęcia nr 1

Język SQL, zajęcia nr 1 Język SQL, zajęcia nr 1 SQL - Structured Query Language Strukturalny język zapytań Login: student Hasło: stmeil14 Baza danych: st https://194.29.155.15/phpmyadmin/index.php Andrzej Grzebielec Najpopularniejsze

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Prezentacja Danych i Multimedia II r Socjologia Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL. Celem ćwiczeń jest poznanie zasad tworzenia baz danych i zastosowania komend SQL. Ćwiczenie I. Logowanie

Bardziej szczegółowo

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12

Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Marek Rakowski Podstawy zdania SELECT Strona 1 z 12 Podstawy języka SQL Co to jest SQL? Structured Query Language uchodzi za standard języka zapytań kierowanych do systemu zarządzania bazą danych. SQL

Bardziej szczegółowo

QUERY język zapytań do tworzenia raportów w AS/400

QUERY język zapytań do tworzenia raportów w AS/400 QUERY język zapytań do tworzenia raportów w AS/400 Dariusz Bober Katedra Informatyki Politechniki Lubelskiej Streszczenie: W artykule przedstawiony został język QUERY, standardowe narzędzie pracy administratora

Bardziej szczegółowo

Zasady programowania Dokumentacja

Zasady programowania Dokumentacja Marcin Kędzierski gr. 14 Zasady programowania Dokumentacja Wstęp 1) Temat: Przeszukiwanie pliku za pomocą drzewa. 2) Założenia projektu: a) Program ma pobierać dane z pliku wskazanego przez użytkownika

Bardziej szczegółowo

Db4o obiektowa baza danych wersja.net

Db4o obiektowa baza danych wersja.net Wstęp Db4o obiektowa baza danych wersja.net Db4o (database for objects) to obiektowa baza danych na platformę Java i.net. Pełna wersja bazy db4o jest dostępna na dwóch licencjach: open source: pozwala

Bardziej szczegółowo

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Bazy danych dla producenta mebli tapicerowanych Bartosz Janiak Marcin Sikora Wrocław 9.06.2015 r. Założenia Stworzyć system bazodanowy dla małej firmy produkującej meble tapicerowane. Projekt ma umożliwić

Bardziej szczegółowo

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1 1 LINQ 1 1. Cel zajęć Celem zajęć jest zapoznanie się z technologią LINQ oraz tworzeniem trójwarstwowej aplikacji internetowej. 2. Zadanie Proszę przygotować aplikację WWW, która: będzie pozwalała na generowanie

Bardziej szczegółowo

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders.

10. Wybierz nazwy produktów oraz inf. o stanie magazynu dla produktów dostarczanych przez firmę.tokyo Traders. SQL I Wybieranie danych z pojedynczej tabeli Baza NORTHWIND 1. Wybierz nazwy i adresy wszystkich klientów select CompanyName,Address from Customers 2. Wybierz nazwiska i numery telefonów pracowników select

Bardziej szczegółowo

Systemy GIS Tworzenie zapytań w bazach danych

Systemy GIS Tworzenie zapytań w bazach danych Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE

Bardziej szczegółowo

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy)

opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje nazwy tabel lub widoków warunek (wybieranie wierszy) Zapytania SQL. Polecenie SELECT jest używane do pobierania danych z bazy danych (z tabel lub widoków). Struktura polecenia SELECT SELECT FROM WHERE opisuje nazwy kolumn, wyrażenia arytmetyczne, funkcje

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Zaawansowane aplikacje WWW - laboratorium

Zaawansowane aplikacje WWW - laboratorium Zaawansowane aplikacje WWW - laboratorium Przetwarzanie XML (część 2) Celem ćwiczenia jest przygotowanie aplikacji, która umożliwi odczyt i przetwarzanie pliku z zawartością XML. Aplikacja, napisana w

Bardziej szczegółowo

Microsoft IT Academy kurs programowania

Microsoft IT Academy kurs programowania Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Materiały do laboratorium MS ACCESS BASIC

Materiały do laboratorium MS ACCESS BASIC Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I

Bardziej szczegółowo

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk

Wstęp wprowadzający do laboratorium 2. mgr inż. Rafał Grycuk Wstęp wprowadzający do laboratorium 2 mgr inż. Rafał Grycuk Plan prezentacji 1. Czym jest T-SQL i czym się różni od standardu SQL 2. Typy zapytań 3. Zapytanie typu SELECT 4. Słowo o indeksach T-SQL (1)

Bardziej szczegółowo

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3 3 ASP.NET MVC Podstawy 1 1. Cel zajęć Celem zajęć jest zapoznanie się z podstawami ASP.NET MVC 2.0 Framework. 2. Zadanie Proszę zbudować prostą aplikację WWW przy zastosowaniu framework a ASP.NET MVC 2.0

Bardziej szczegółowo

Rozdział 4 KLASY, OBIEKTY, METODY

Rozdział 4 KLASY, OBIEKTY, METODY Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej

Bardziej szczegółowo

VISUAL STUDIO 2008 I.NET 3.5 NOWOŚCI. Bartłomiej Filipek www.ii.uj.edu.pl/~filipek

VISUAL STUDIO 2008 I.NET 3.5 NOWOŚCI. Bartłomiej Filipek www.ii.uj.edu.pl/~filipek VISUAL STUDIO 2008 I.NET 3.5 NOWOŚCI Bartłomiej Filipek www.ii.uj.edu.pl/~filipek plan Szybki start!.net 3.5 Visual Studio 2008 ogólnie Nowe narzędzia Czy zapomniano o C++? Podsumowanie Materiały źródłowe

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

Programowanie MorphX Ax

Programowanie MorphX Ax Administrowanie Czym jest system ERP? do systemu Dynamics Ax Obsługa systemu Dynamics Ax Wyszukiwanie informacji, filtrowanie, sortowanie rekordów IntelliMorph : ukrywanie i pokazywanie ukrytych kolumn

Bardziej szczegółowo

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT Studia podyplomowe Inżynieria oprogramowania współfinansowane przez Unię Europejska w ramach Europejskiego Funduszu Społecznego Projekt Studia podyplomowe z zakresu wytwarzania oprogramowania oraz zarządzania

Bardziej szczegółowo

Microsoft.NET: LINQ to SQL, ASP.NET AJAX

Microsoft.NET: LINQ to SQL, ASP.NET AJAX Microsoft.NET: LINQ to SQL, ASP.NET AJAX Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2008 oraz serwer bazy danych SQL Server Express 2005 (lub

Bardziej szczegółowo

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com

Diagramy klas. dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com Diagramy klas dr Jarosław Skaruz http://ii3.uph.edu.pl/~jareks jaroslaw@skaruz.com O czym będzie? Notacja Ujęcie w różnych perspektywach Prezentacja atrybutów Operacje i metody Zależności Klasy aktywne,

Bardziej szczegółowo

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy.

LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. LINQ TO SQL w dużym skrócie jest to zintegrowany język zapytao pozwalający na mapowanie relacyjnych baz danych na model obiektowy. Zanim ktokolwiek postanowi użyd tego w swoim projekcie, należy zaznaczyd

Bardziej szczegółowo

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL 1 Podstawy relacyjnego modelu danych. 3h UWAGA: Temat zajęć jest typowo teoretyczny i stanowi wprowadzenie do zagadnień

Bardziej szczegółowo

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych Szkolenie przeznaczone jest dla osób chcących poszerzyć swoje umiejętności o tworzenie rozwiązań internetowych w PHP. Zajęcia zostały przygotowane w taki sposób, aby po ich ukończeniu można było rozpocząć

Bardziej szczegółowo

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl)

z przedmiotu: Techniki Informatyczne Stanisław Flaga (stanislaw.flaga@agh.edu.pl) mysql relacyjna baza danych wstęp Materiały pomocnicze do laboratorium z przedmiotu: Techniki Informatyczne Stanisław Flaga () Wydział Inżynierii Mechanicznej i Robotyki Katedra Automatyzacji Procesów

Bardziej szczegółowo

Instrukcja laboratoryjna cz.6

Instrukcja laboratoryjna cz.6 Programowanie aplikacji internetowych 2013/2014 Instrukcja laboratoryjna cz.6 Technologia Silverlight cz.2 Prowadzący: Tomasz Goluch Wersja: 3.0 I. Model danych (tworzenie bazy na podstawie modelu). Cel:

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

Ćwiczenia 2 IBM DB2 Data Studio

Ćwiczenia 2 IBM DB2 Data Studio Ćwiczenia 2 IBM DB2 Data Studio Temat: Aplikacje w Data Studio 1. Projekty Tworzenie procedur, UDF, trygerów zaczynamy od utworzenia projektu File -> New -> Project wybieramy Data Development Project.

Bardziej szczegółowo

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów SQL3 wprowadza następujące kolekcje: zbiory ( SETS ) - zestaw elementów bez powtórzeń, kolejność nieistotna listy ( LISTS ) - zestaw

Bardziej szczegółowo

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych SQL SQL (ang. Structured Query Language): strukturalny język zapytań używany do tworzenia strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Bazy danych - wykład wstępny

Bazy danych - wykład wstępny Bazy danych - wykład wstępny Wykład: baza danych, modele, hierarchiczny, sieciowy, relacyjny, obiektowy, schemat logiczny, tabela, kwerenda, SQL, rekord, krotka, pole, atrybut, klucz podstawowy, relacja,

Bardziej szczegółowo

SQL (ang. Structured Query Language)

SQL (ang. Structured Query Language) SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9 Tabele 9 Klucze 10 Relacje 11 Podstawowe zasady projektowania tabel 16 Rozdział 2. Praca z tabelami 25 Typy danych 25 Tworzenie tabel 29 Atrybuty kolumn

Bardziej szczegółowo

Baza numerów Wersja 1.1

Baza numerów Wersja 1.1 Baza numerów Wersja 1.1 SPIS TREŚCI 1. Wprowadzenie 1.1 Adresy URL do połączenia z aplikacją 1.2 Informacje zwrotne wysyłane z API w odpowiedzi na odebrane odwołania I. Zarządzanie grupami Bazy Numerów

Bardziej szczegółowo

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA

ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA LABORATORIUM SYSTEMÓW MOBILNYCH ZAPOZNANIE SIĘ ZE SPOSOBEM PRZECHOWYWANIA DANYCH NA URZĄDZENIACH MOBILNYCH I. Temat ćwiczenia II. Wymagania Podstawowe wiadomości z zakresu obsługi baz danych i języka SQL

Bardziej szczegółowo

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Podstawy języka SQL. SQL Structured Query Languagestrukturalny Podstawy języka SQL SQL Structured Query Languagestrukturalny język zapytań DDL Język definicji danych (np. tworzenie tabel) DML Język manipulacji danych (np. tworzenie zapytań) DCL Język kontroli danych

Bardziej szczegółowo

Bazy danych SQL Server 2005

Bazy danych SQL Server 2005 Bazy danych SQL Server 2005 TSQL Michał Kuciapski Typ zadania: Podstawowe zapytania Select Zadanie 1: Wyświetl następujące informacje z bazy: A. 1. Wyświetl informacje o klientach: nazwa firmy, imie, nazwisko,

Bardziej szczegółowo

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11 Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET

Bardziej szczegółowo

Baza danych. Baza danych to:

Baza danych. Baza danych to: Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego

Bardziej szczegółowo

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Laboratorium nr 4. Temat: SQL część II. Polecenia DML

Laboratorium nr 4. Temat: SQL część II. Polecenia DML Laboratorium nr 4 Temat: SQL część II Polecenia DML DML DML (Data Manipulation Language) słuŝy do wykonywania operacji na danych do ich umieszczania w bazie, kasowania, przeglądania, zmiany. NajwaŜniejsze

Bardziej szczegółowo

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas)

Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Dr Michał Tanaś(http://www.amu.edu.pl/~mtanas) Bazy danych podstawowe pojęcia Baza danych jest to zbiór danych zorganizowany zgodnie ze ściśle określonym modelem danych. Model danych to zbiór ścisłych

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

Bardziej szczegółowo

Język ludzki kod maszynowy

Język ludzki kod maszynowy Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza

Bardziej szczegółowo

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Wykład 12. Programowanie serwera MS SQL 2005 w C# Wykład 12 Programowanie serwera MS SQL 2005 w C# Budowa procedur składowanych w C# Budowa funkcji składowanych w C# Wykorzystanie funkcji składowanych w C# po stronie klienta Tworzenie typów definiowanych

Bardziej szczegółowo

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS UNIWERSYTET ZIELONOGÓRSKI INSTYTUT INFORMATYKI I ELEKTROTECHNIKI ZAKŁAD INŻYNIERII KOMPUTEROWEJ Przygotowali: mgr inż. Arkadiusz Bukowiec mgr inż. Remigiusz Wiśniewski LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Bardziej szczegółowo

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI

UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI LABORATORIUM TECHNOLOGIA SYSTEMÓW INFORMATYCZNYCH W BIOTECHNOLOGII Aplikacja bazodanowa: Cz. II Rzeszów, 2010 Strona 1 z 11 APLIKACJA BAZODANOWA MICROSOFT ACCESS

Bardziej szczegółowo

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact

Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013. Visual Basic.NET dostęp do bazy danych. Baza Microsoft SQL Server Compact Platforma.NET laboratorium 4 Aktualizacja: 15/11/2013 Prowadzący: mgr inż. Tomasz Jaworski Strona WWW: http://tjaworski.kis.p.lodz.pl/ Visual Basic.NET dostęp do bazy danych Baza Microsoft SQL Server Compact

Bardziej szczegółowo

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

Gdzie jest moja tabela?

Gdzie jest moja tabela? Gdzie jest moja tabela? Czyli jak sobie radzić w Javie i SQL gdy zmienia się schemat bazy danych. Tomasz Skutnik 21 Listopada 2011 r UWIELBIAM piratów programować. Dziś koduję sklep internetowy. Jak rozmawiać

Bardziej szczegółowo

akademia androida Składowanie danych część VI

akademia androida Składowanie danych część VI akademia androida Składowanie danych część VI agenda 1. SharedPreferences. 2. Pamięć wewnętrzna i karta SD. 3. Pliki w katalogach /res/raw i /res/xml. 4. Baza danych SQLite. 5. Zadanie. 1. SharedPreferences.

Bardziej szczegółowo

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze Cechy bloków nazwanych: w postaci skompilowanej trwale przechowywane na serwerze wraz z danymi wykonywane na żądanie użytkownika lub w

Bardziej szczegółowo

Smarty PHP. Leksykon kieszonkowy

Smarty PHP. Leksykon kieszonkowy IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK

Bardziej szczegółowo

DECLARE typ [( )] [ NOT NULL ] [ { := DEFAULT } ];

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ]; Braki w SQL obsługi zdarzeń i sytuacji wyjątkowych funkcji i procedur użytkownika definiowania złożonych ograniczeń integralnościowych Proceduralny SQL Transact- SQL używany przez Microsoft SQL Server

Bardziej szczegółowo

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Microsoft.NET: ASP.NET MVC + Entity Framework (Code First) Do realizacji projektu potrzebne jest zintegrowane środowisko programistyczne Microsoft Visual Studio 2012. W ramach projektu budowana jest prosta

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Kostki OLAP i język MDX

Kostki OLAP i język MDX Kostki OLAP i język MDX 24 kwietnia 2015 r. Opis pliku z zadaniami Wszystkie zadania na zajęciach będą przekazywane w postaci plików PDF sformatowanych jak ten. Będą się na nie składały różne rodzaje zadań,

Bardziej szczegółowo

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz Zagadnienia 1. Delegaty wiązane, właściwości indeksowane 2. Delegaty niewiązane 3. Nowa wersja kalkulatora, delegaty

Bardziej szczegółowo

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ

KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ Wykład 3 Katedra Inżynierii Komputerowej Jakub Romanowski jakub.romanowski@kik.pcz.pl POBIERANIE DANYCH C/AL Poniższe funkcje używane są do operacji pobierania

Bardziej szczegółowo

Wykład 4. Klasa List Kolejki Stosy Słowniki

Wykład 4. Klasa List Kolejki Stosy Słowniki Wykład 4 Klasa List Kolejki Stosy Słowniki Klasa List Poważną niedogodnością tablic jako kolekcji danych jest fakt, że muszą one mieć stały rozmiar. Programista musi wiedzieć z góry ile miejsca powinien

Bardziej szczegółowo

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych Projektowanie bazy danych Jarosław Kuchta Projektowanie Aplikacji Internetowych Możliwości projektowe Relacyjna baza danych Obiektowa baza danych Relacyjno-obiektowa baza danych Inne rozwiązanie (np. XML)

Bardziej szczegółowo

Zadania z SQLa (MS SQL Server)

Zadania z SQLa (MS SQL Server) Zadania z SQLa (MS SQL Server) Struktura testowej bazy danych (diagram ERD): opracował dr Robert Fidytek SPIS TYPÓW ZADAŃ 1 Projekcja wyników zapytań (SELECT FROM )... 3 2 Sortowanie wyników zapytań (ORDER

Bardziej szczegółowo

Administracja Internetowymi systemami baz danych (niestacjonarne) Laboratorium 2

Administracja Internetowymi systemami baz danych (niestacjonarne) Laboratorium 2 Administracja Internetowymi systemami baz danych (niestacjonarne) Laboratorium 2 Instalacja bazy danych AdventureWorks 2012, Zapytania typu SELECT, Indeksy, Plan wykonania zapytań Instrukcja do laboratorium

Bardziej szczegółowo

Podstawy programowania III WYKŁAD 2

Podstawy programowania III WYKŁAD 2 Podstawy programowania III WYKŁAD 2 Jan Kazimirski 1 Komunikacja z bazami danych 2 PHP i bazy danych PHP zapewnia dostęp do wielu popularnych baz danych. Kilka poziomów abstrakcji: Funkcje obsługujące

Bardziej szczegółowo

Wykład 6 Dziedziczenie cd., pliki

Wykład 6 Dziedziczenie cd., pliki Wykład 6 Dziedziczenie cd., pliki Autor: Zofia Kruczkiewicz 1. Dziedziczenie cd. 2. Pliki - serializacja Zagadnienia 1. Dziedziczenie aplikacja Kalkultory_2 typu Windows Forms prezentująca dziedziczenie

Bardziej szczegółowo

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP).

W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Procedury składowane c.d. Parametry tablicowe w Transact-SQL. W SQL Serwerze 2008 wprowadzono parametry tablicowe (Table Valued Parameters - TVP). Zadanie 1. Proszę napisad procedurę składowaną, która

Bardziej szczegółowo

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/

Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Paweł Rajba pawel@ii.uni.wroc.pl http://www.itcourses.eu/ Wprowadzenie WCF Data Services Obsługa żądania OData Podstawy języka OData Narzędzia i biblioteki Gdzie można skorzystać z OData OData w Web API

Bardziej szczegółowo

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl

Pawel@Kasprowski.pl Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski. pawel@kasprowski.pl Bazy danych Podstawy języka SQL Dr inż. Paweł Kasprowski pawel@kasprowski.pl Plan wykładu Relacyjne bazy danych Język SQL Zapytania SQL (polecenie select) Bezpieczeństwo danych Integralność danych Współbieżność

Bardziej szczegółowo

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij. Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice

Bardziej szczegółowo