Σημειώσεις για βάσεις δεδομένων Client Server

of 28/28
Τεχνικός Εφαρμογών Πληροφορικής Γλώσσα Προγραμματισμού V IEK ΣΥΡΟΥ 2013 [email protected] 27-Μαϊ-14 Σελ. 1 Γλώσσες Προγραμματισμού V Client Server με εργαλεία IDE στη διαχείριση RDBMS 1. Εισαγωγή Το μάθημα αυτό είναι μια λογική συνέχεια των μαθημάτων σε βάσεις δεδομένων και γλώσσες προγραμματισμού. Από τη μια μεριά, λοιπόν, αναπτύσσουμε εφαρμογές σε μια "κλασική" γλώσσα προγραμματισμού, όπως η C. Αυτές οι εφαρμογές εκτελού- νται τοπικά στον υπολογιστή, ανακαλώντας δεδομένα και ρυθμίσεις του χρήστη από τον τοπικό σκληρό δίσκο, εκτελώντας υπο- λογισμούς στον επεξεργαστή του υπολογιστή και προβάλλοντας αποτελέσματα στην οθόνη. Από την άλλη μεριά, υπάρχουν δε- δομένα, πληροφορίες. Πολλά. Και μοιραζόμενα σε πολλούς χρήστες. Οι οποίοι μπορούν και να τα ενημερώνουν. Ταυτόχρονα. Όλα αυτά σημαίνουν βάση δεδομένων. Μόνο που οι απλοί χρήστες δεν είναι σε θέση να γράφουν εντολές χειρισμού δεδομένων της SQL για να κάνουν δοσοληψίες, όπως είδαμε στα μαθήματα 'Βάσεις Δεδομένων'. Θα τους φτιάξουμε, λοιπόν, ωραίες και απλές εφαρμογές με γραφικά, μενού, κ.λπ., που πίσω από την κουρτίνα θα επικοινωνούν με τη βάση δεδομένων. Αυτός είναι ο στόχος του μαθήματος. Θεωρείται δεδομένο ότι τα δεδομένα δεν είναι προσωπικά, γιατί τότε θα αρκούσε μια λύση Mi- crosoft Access: σε ένα αρχείο θα αποθηκεύονταν τα δεδομένα σε πίνακες και θα φτιάχναμε και μερικές φόρμες / αναφορές για τον απλό χρήστη. Εδώ θα ασχοληθούμε με μεγαλύτερης κλίμακας καταστάσεις. Μιλάμε για οργανισμούς που λει- τουργούν ένα τοπικό δίκτυο υπολογιστών και οι υπάλληλοί τους χειρίζονται ένα πληροφοριακό σύστημα 1 . Καθένας έχει συγκεκριμένες ευθύνες και αρμοδιότητες και το πληροφοριακό σύστημα επιβάλλει τις επιχειρησιακές διαδικασίες – τον "σωστό" τρόπο που γίνεται η δουλειά. Να λοιπόν το προσδοκώμενο αποτέλεσμα από αυτό το μάθημα: να φτιάξουμε εφαρμογές, απλές στη χρήση (ο σωστός όρος είναι 'idiot-proof', δηλαδή ανθεκτικές στη χαζομάρα), που θα επι- βάλλουν ότι η δουλειά θα διεκπεραιώνεται σωστά (ή καθόλου), οι πληροφορίες που συλλέγονται θα είναι πάντοτε ορθές, και τα αποτελέσματα θα διαχέονται στους αρμόδιους και μόνον. Ας τοποθετήσουμε τώρα το στόχο μας στο πλαίσιο λειτουργίας ενός τυπικού οργανισμού. Η υποδομή είναι το τοπικό δίκτυο πά- νω στο οποίο κρέμονται οι σταθμοί εργασίας των χρηστών και ο εξυπηρετητής (server) που λειτουργεί αδιάλειπτα, αξιόπιστα και σε προστατευμένο περιβάλλον. Οι σταθμοί εργασίας είναι οι πελάτες που "καταναλώνουν" τις υπηρεσίες που "σερβίρει" ο εξυπη- ρετητής 2 . 1.1 Μοντέλο εξυπηρετητή αρχείων Ας πούμε ότι στοχεύετε σε μια απλή εφαρμογή που λειτουργεί σε μια μικρή επιχείρηση ή σε μια ομάδα 3-10 ατόμων. Κατά πάσα πιθανότητα το μοντέλο πελάτη εξυπηρετητή είναι ακριβό, γιατί απαιτεί ένα εξυπηρετητή που υπο- λειτουργεί, κοστίζει αρκετά λόγω προμήθειας εξοπλισμού και αδειών χρή- σης λογισμικού, ενώ πάνω του δεν μπορεί να εργαστεί κάποιος. Για παράδειγμα, σε ένα λογιστικό γραφείο συνεργάζονται τρεις λογιστές και δυο υπάλληλοι και θέλουν να μοιράζονται το κοινό βιβλίο διευθύνσεων. Ο καθένας τους έχει έναν υπολογιστή, όπως φαίνεται στην Εικόνα 2. Επιλέ- γουν τον υπολογιστή του πιο εργατικού τύπου που έρχεται πρωί -πρωί και φεύγει τελευταίος, ενώ δεν εγκαθιστά παιχνίδια για να παίζει όλη τη μέρα. Σε αυτόν τον υπολογιστή διαμοιράζουν έναν φάκελο με πλήρη δικαιώματα ανάγνωσης & εγγραφής και τοποθετούν εκεί μέσα τα κοινόχρηστα αρχεία. Αυτός εκτελεί χρέη εξυπηρετητή αρχείων. 1 Βέβαια, όπως βλέπετε στην Εικόνα 1, το τοπικό δίκτυο περιλαμβάνει και μια σύνδεση στο Διαδίκτυο, γιατί κάποιοι υπάλληλοι, πχ οι πωλητές, είναι έξω, στο δρόμο. Επίσης, εξωτερικοί συνεργάτες εργάζονται από το σπίτι τους. 2 Στις ημέρες μας θεωρείται δεδομένο ότι η γκάμα των πελατών δεν εξαντλείται στους επιτραπέζιους και φορητούς υπολογιστές. Μπορεί να λειτουργούν σε ετερογενείς πλατφόρμες υλικού-λογισμικού, όπως ταμπλέτες, έξυπνα κινητά και αυτή η διαφοροποίη- ση εισάγει πολυπλοκότητα λόγω των διαφορετικών χαρακτηριστικών των συσκευών, λειτουργικού συστήματος, κ .ά. Εικόνα 1 Εταιρικό δίκτυο Εικόνα 2 Ομότιμο δίκτυο
  • date post

    28-Dec-2015
  • Category

    Documents

  • view

    91
  • download

    3

Embed Size (px)

description

Για το ΙΕΚ Σύρου

Transcript of Σημειώσεις για βάσεις δεδομένων Client Server

  • V IEK 2013

    [email protected] 27--14 . 1

    V Client Server IDE RDBMS

    1. . , , "" , C. - , , - . , -, . . . . . . SQL , ' '. , , , , .., . .

    , Mi-crosoft Access: / .

    . - 1. "" .

    : , ( 'idiot-proof', ), - ( ), , .

    . - (server) , . "" "" -2.

    1.1

    3-10 . , -, - , .

    , . , 2. - - , . & . .

    1 , 1, , ,

    , , . , . 2 .

    -, , - , , ..

    1

    2

  • IEK 2013 V

    . 2 27--14 [email protected]

    , , PEL-DAT.ACCDB. .

    , PEL-APP.ACCDB,

    ( , Access3), , , . - Access - (attached tables). , Access Excel, - .

    , - , - (copy&paste clipboard) Windows.

    tblAddresses 3 ( - ), PEL-DAT.ACCDB. - . , ;

    , , :

    , - ( , , ) .

    , (backup).

    : -, PEL-APP.ACCDB, - - .

    , . - (file server), , . - . , , ... !

    , /. ,

    1.2

    . ,

    ( 5).

    .

    -

    , - ( ).

    Access POL-DAT.MDB : tblPelates tblPoliseis , ( 4).

    3 Microsoft Access ACCDB ( ACCess DataBase), -

    MDB ( Microsoft DataBase), ), , , ..

    3

    4

    5

    1

  • V IEK 2013

    [email protected] 27--14 . 3

    Access POL-APP.MDB POL-DAT.MDB.

    ( , , , ), . , .

    "" ( 6) - , . ' ', Visual Basic, Docmd.OpenForm Docmd.OpenReport Click . .

    file server . ( POL-DAT.MDB) . ( POL-APP.MDB) ( ' ') "" .

    1.3 /

    '' /. (Local Area Network, LAN) "" , Microsoft Windows Server. (), Microsoft

    SQL Server,

    Oracle,

    MySQL. , ' () database server. , .

    , , , ..

    (data access API, API Application Programmer's Interface). , SQL Server Express, Visual Basic ADO (ActiveX Data Objects ). SQL.

    : , . , . , . , , , .

    / . . , , .

    6

    7

    8 /

  • IEK 2013 V

    . 4 27--14 [email protected]

    2. - , .

    Visual Basic 2010 Express - Microsoft.

    2.1

    '' (imperative program-ming), ( 1), - (visual programming) (), 4.

    (component) , - . . ( , , ) - (, , ). Visual Basic - Toolbox ().

    (properties). . - , , , . . , ., - , . : frmKyria, frmKyria.BackColor = Color.Yellow

    (events). , , - .

    VB: (-), .

    2.2 Visual Basic

    Visual Basic (VB): (Graph-ical User Interface, GUI), . , Visual Basic 2010 Express (command completion) . .

    , , Basic ( 60!, 1) (object-oriented) 80 (Java, C++). , VB Microsoft Windows, Linux, Android, iOS.

    , , , (virtual machine). - (interpreted) -, (compiled) .

    VB 90 -, . !

    4 / (= -

    ) . .

    INPUT a, b

    apotel = a+ b

    PRINT a, b, apotel

    1 Basic

    1 ( www.tiobe.com)

  • V IEK 2013

    [email protected] 27--14 . 5

    (Form) frm

    Label lbl

    TextBox txt

    Button btn

    ComboBox cbo

    RadioButton rdo

    DateTimePicker dtp

    2

    2.3

    . (project) Windows Forms Application HelloProgram. , - , :

    Toolbox

    Design

    Solution Explorer , , ,

    Properties /

    () - frmHello. Solution Ex-plorer - FileName.

    - -, ., . -, ( -) ( ). - frm.

    Design Text ' !', BackgroundImage BackgroundImageLayout = Zoom . (bold) - Properties. , - -

    -:

    , , .

    () F5 ( 10). , ; , .

    Label Name = lblOnoma Text = ' ;' Font, ForeColor, BackColor , Appearance. , TextBox Name = txtOnoma Button Name = btnHello.

    - ( ). - (

    9 o VB

    10 VB

  • IEK 2013 V

    . 6 27--14 [email protected]

    ). . . .

    - main. VB .

    , . - , 2. , -. frmHello ( 1) ( 2) . 3-4 . , .

    , . . - btn_Click frmHello.

    . Public Private . frmHello (Public), . , btnHello_Click , . , frmHello, .

    txtOnoma.Text. - , ( , - C++, 5.

    , . , . - 3, Now .Hour .

    Me.Close() btnTerma Text = '' . , - , Application.Exit().

    . 3 - VB.

    VB . -, - Visual Studio.

    5 , ,

    ( Smalltalk Java) ( BlueJ).

    1 Public Class frmHello 2 Private Sub btnHello_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHello.Click

    3 Beep() 4 MessageBox.Show(" " & txtOnoma.Text) 5 End Sub 6 End Class

    2 Click

    Dim intOra As Integer, strXaire As String intOra = Now.Hour If intOra < 12 Then strXaire = "" ElseIf intOra < 20 Then strXaire = "" Else strXaire = "" End If MessageBox.Show(strXaire & " " & txtOnoma.Text)

    3

    Integer int

    Double dbl

    String str

    / Date dtm

    Char chr

    / Boolean bln

    3 VB

  • V IEK 2013

    [email protected] 27--14 . 7

    2.4

    . 1000 .

    . , , .

    , project LexoMetro, frmLexo :

    lblKeimeno Caption = ' :'

    txtKeimeno MultiLine ScrollBars = Both

    (RadioButtons) rdoLexeis rdoXaraktires, , Checked = True.

    lblMetritis, BorderStyle = FixedSingle.

    , 11. , . . .

    - txtKeimeno, - , , TextChanged - txtKeimeno frmLexo ( - 4). - - txt-txtKeimeno. 4-19.

    - (syntax-directed editor) - . , (indentation) - , , ..

    IfElseEnd If , (- Checked). : 18 Len ( 4) lblMetritis . : txtKeimeno . .Text , Len .

    5-16 . , - ( 6). 7 intPos ( Mid 4). booInWord

    1 Public Class frmLexo 2 Private Sub txtKeimeno_TextChanged(ByVal sender As System.Object, 3 ByVal e As System.EventArgs) Handles txtKeimeno.TextChanged 4 If rdoLexeis.Checked Then ' 5 Dim blnInWord As Boolean, intLexeis As Integer 6 For intPos As Integer = 1 To Len(txtKeimeno.Text) 7 If Mid$(txtKeimeno.Text, intPos, 1) = " " Then 8 blnInWord = False 9 Else

    10 If Not blnInWord Then 11 blnInWord = True 12 intLexeis += 1 ' 13 End If 14 End If 15 Next intPos 16 lblMetritis.Text = intLexeis 17 Else ' 18 lblMetritis.Text = Len(txtKeimeno.Text) 19 End If 20 End Sub 21 End Class

    4 / (' )

    Len(s) s s = 'abcd' Len(s) 4

    Left(s,n) n s Left(s, 2) 'ab'

    Right(s, n) Right(s, 2) 'cd'

    Mid(s, n,m) m n Mid(s, 2, 2) 'bc'

    4

    11

  • IEK 2013 V

    . 8 27--14 [email protected]

    , . , - . , , intLexeis.

    (debugging) VB. , (breakpoint) . , , . - F8 . -, F5 - .

    , . . , . . (' '), ( VB vbTab) , Enter ( vbCr, vbLf). If 7 4 Select Case 19 5.

    : , . , . - . -, .

    frmLexo , Metra, . . Metra -

    .

    5!

    BackColor 90 - 100. (

    , 6 Select VB. 25 26.)

    , - - ( TextBox) - 90% . Back-

    Color Color. .

    :

    1. - ' ,

    , ( ) , .

    2. .

    3. , . .

    1 Public Class frmLexo 2 Private Sub txtKeimeno_TextChanged(ByVal sender 3 Call Metra()' 4 End Sub 5 Private Sub rdoLexeis_CheckedChanged(ByVal sender 6 Call Metra() 7 End Sub 8 Private Sub rdoXaraktires_CheckedChanged(ByVal 9 Call Metra()

    10 End Sub 11 Private Sub Metra() ' 12 If rdoLexeis.Checked Then ' 13 Dim booInWord As Boolean, intLexeis As Integer 14 For intPos As Integer = 1 To Len(txtKeimeno.Text) 15 Select Case Mid$(txtKeimeno.Text, intPos, 1) 16 Case " ", vbTab, vbCr, vbLf 17 booInWord = False 18 Case Else ' 19 If Not booInWord Then 20 booInWord = True 21 intLexeis += 1 ' 22 End If 23 End Select 24 Next intPos 25 lblMetritis.Text = intLexeis 26 Else ' 27 lblMetritis.Text = Len(txtKeimeno.Text) 28 End If 29 End Sub 30 End Class

    5 /

    (' )

    Select Case intLexeis Case 0 To 89 lblMetritis.BackColor = Color.White Case 90 To 100 lblMetritis.BackColor = Color.Green Case Else lblMetritis.BackColor = Color.Red End Select

    6

  • V IEK 2013

    [email protected] 27--14 . 9

    3. Access VB, - . , Access VB. . -, : ' .

    1.2 - - . POL-DAT.MDB - MS Access ( 12).

    3.1

    Visual Studio New Project Poliseis.

    pro-ject, Form1 frmPelates Text = .

    Toolbox Data DataGridView. - , Excel, .

    DataGridView1. Choose Data Source. Add Project Data Source, Database, DataSet, New Connection. Da-ta Source Microsoft Access Database File Browse POL-DAT.MDB , - . - Test Connec-tion, .

    Next VB project. Next DataSet ( ). Choose Your Database Objects - Finish. VB Access.

    Data-GridView1 Data Source TblPelates . - Enable Adding, Editing Deleting - ( 13). Enable Column Reordering - . -, Dock In Parent Container '' - . , ,

    DataGridView1.

    voil VB - . - - . , . . 14 VB

    12 POL-DAT.MDB

    13 DataGridView

    14

  • IEK 2013 V

    . 10 27--14 [email protected]

    12 Access.

    , frmPoliseis Project, Add Windows Form .

    , frmKyria, btnPelates - frmPelates.Show

    -. ( 15).

    frmKyria. Project, Poliseis Properties, Startup form frmKyria ( 16).

    , - . -

    , , (wizard) - . , - .

    - - ( 17). - .

    - -. DataSet ( -) , , - . DataSet - , . - DataSet , "" SE-LECT SQL (view)

    6.

    TableAdapter (= ) DataGridView. - DataSet, .

    , BindingSource (= ) DataSet DataGridView.

    , , DataGridView , BindingSource, TableAdapter DataSet.

    "" . . (disconnected architecture). , .

    , . .

    6 CREATE VIEW onomateponyma AS SELECT eponymo, onoma FROM pelates WHERE topos = ''.

    15

    16

    17

  • V IEK 2013

    [email protected] 27--14 . 11

    . , .

    DataGridView Appearance (BorderStyle), (GridColor), (RowHeaderVisible) - . ColumnHeaders RowHeaders . DefaultCellStyle . .

    DataGridView Data-GridView Tasks Edit Columns. . -

    HeaderText,

    AutoSizeMode,

    / Visible,

    (, , , ) DefaultCellStyle.

    ' DataGridView ( 18). : () , .

    3.2

    , . , -. - .

    frmEnasPelatis Text = ''. lblKodikos, , - , .

    txtPelKodik. : PelKodik tblPelates ( 4) . txtPelKodik (DataBindings) - Text ( Text). Other Data Sources, Project Data Sources, poliseisDataSet, tbl-Pelates, PelKodik. .

    . - (PelOnom, PelPhone, PelAnigma). - CheckBox PelNtopios DataBindings.Checked. Check-Align = MiddleRight, Text = : , . , ;

    Data , Binding-Navigator (= ) . BindingSource TblPelatesBindingSource - . Access, , Dock Bottom. , - , , .

    , . ReadOnly = True, TextAlign, .

    VB. , Access '' VB.

    18 VB

    19

  • IEK 2013 V

    . 12 27--14 [email protected]

    4. SQL Server Access VB. , : / 7.

    : SQL Server Visual Studio , . . , -.

    , SQL Server (SQLEXPRESS) . SQL Server, '' ( Oracle, MySQL), - . CPU. SQL Server, services.msc '' , SQL Server (SQLEXPRESS). , 8 7, .

    :

    1. SQL Server VB

    2. DataSet VB

    3. DataSet

    Visual Studio Sailing, - . Solution Explorer - Add / New Item / Service-based Database SQL Server. , SailingDB.mdf. 'Choose a Database Model' - , .

    SailingDB.mdf. .mdf SQL Server.

    - Visual Stu-dio

    9. SailingDB - -, Database Explorer. , , Tables, Add New Table 20.

    Access, SQL Server.

    , CREATE TABLE SQL . , .

    , Table Designer Generate Change Script. SQL . , , SQL . , VB database server SQL . , , , SQL / , .., , SQL.

    7 , .

    Access. ; Access - , , - (Rapid Application Development). 8 , SQL Server -

    . SQL Server . 9 : SQL Server Management Studio, -

    . , VB .

    20 SailingDB

  • V IEK 2013

    [email protected] 27--14 . 13

    , , , - 20. Database Diagrams TyposID TyposSkafous SkafosTypos Skafi --. .

    , TyposSkafous Table Designer Check Constraints. (UNIQUE). , Skafi SkafosTypos , 10 ( Indexes/Keys).

    , , , .

    , . : -- Skafi Istioplooi. ;

    1, - Show Table Data - ( 21).

    frmTyposSkafous. Data, - Add New Data Source, Database, Dataset - SailingDB.mdf. Da-taSet.

    DataSet Data Sources ( 22) Sail-ingDBDataSet

    . DataSet - ( ) .

    4.1

    3, TyposSkafous. , ' Data Sources TyposSkafous - DataGridView. TyposSkafous . Dock in Par-ent Container BindingNavigator Dock = Bottom. - Name , Edit Columns - .

    ( 23)! , - , . - :

    .

    +, .

    Optimist :-( ;

    VB - SQL Server.

    4.2

    . Project, Add Windows Form frmSkafi. Data Sources Skafi

    Details , DataGridView -, . -

    10

    . .

    21 SailingDB

    22 SailingDBDataSet

    23

  • IEK 2013 V

    . 14 27--14 [email protected]

    . 22 - , SkafosEnergo Bit CheckBox - DateTimePicker ( ). SkafosTypos, TextBox ComboBox. ComboBox .

    Data Sources, Skafi frmSkafi. , DataNavigator ( 24). , , , ..

    , , frmKyria .Show 11. Project, Sailing Properties Startup Form = frmKyria.

    , . , . , TyposSkafous Data Sources. , -. - . - DataSet . (lookup fields).

    . , , , . . - .

    4.3

    . (TextBox), (CheckBox) Bit. - . , . .

    . Data Sources DataSet . , SkafosTypos . 1, Optimist. , : 4 , "" . , , - ' , (ComboBox) , .

    Edit Columns SkafosTypos. Bound Column Properties ColumnType DataGridViewComboBoxColumn. :

    DataSource TyposSkafous

    DisplayMember = TyposOnoma - TyposSkafous

    ValueMember = TyposId TyposSkafous

    DataPropertyName - ValueMember, (= SkafosTypos), () .

    , ( - ), ( ) ( ). 25, (, , .).

    11

    .Show(), .ShowDialog(). .

    24

    25

  • V IEK 2013

    [email protected] 27--14 . 15

    4.4 -

    - (master-detail) --. ( master) ( detail).

    , , SailingDB, -- 20.

    frmTyposKaiSkafi . Data Sources Ty-posSkafous Details. TyposSkafous . . ,

    , .

    : Data Sources Skafi TyposSkafous, . : TyposSkafous . DataGridView .

    ( - , Visible = False), 26. , .

    "" Skafi Data Sources. - . ( ) - .

    . . , .

    26 -

  • IEK 2013 V

    . 16 27--14 [email protected]

    28

    5. - -. .

    24 . - (, , , 3, , . - , . Binding-Navigator . , -, . . : - .

    Sailing Data Sources, Edit DataSet with Designer. -

    DataSet, ( 27). - 20 , - DataSet - VB

    12.

    TableAdapter , .

    SkafiTableAdapter Add, Query... . Use SQL statements SELECT which returns rows Specify a SQL SELECT statement.

    SELECT *

    FROM Skafi

    WHERE SkafosOnoma LIKE '%' + @parSkafosOnoma + '%'

    @parSkafosOnoma. , ' par. , SQL Server @. !

    topos LIKE %%

    topos '', '', ''.

    FillBySkafosOnoma GetDataBySkafosOnoma . Finish.

    SkafiTableAdapter .

    Solution Explorer - frmSkafi. - . SkafiTa-bleAdapter Add Query... - Select data source table Sailing-DBDataSet.Skafi Existing query name = FillBySkafosOno-FillBySkafosOnoma(parTyposOnoma) . , .

    12

    DataSet , , : , CHECK constraints, (referential integrity) .

    27 DataSet

  • V IEK 2013

    [email protected] 27--14 . 17

    . (- ToolStrip) . :

    ( ':'),

    ,

    ( Text '' Image -).

    , .

    5.1

    - . - Skafi , . DataSet, SkafiTableAdapter Add, Query :

    SELECT Skafi.*, TyposSkafous.TyposOnoma

    FROM Skafi INNER JOIN TyposSkafous ON SkafosTypos = TyposId

    WHERE TyposOnoma LIKE '%' + @parTyposOnoma + '%'

    (FROM)

    Skafi TyposOnoma TyposSkafi (SELECT)

    - TyposOnoma - (WHERE).

    SQL , Query Builder . - Execute Query . 30 - 'ptim' @parTyposOnoma, optimist. Query Builder.

    FillByTyposOnoma GetDataByTyposOnoma.

    frmSkafi. SkafiTableAdapter Add Query... data source table SailingDBDataSet.Skafi Existing query name = FillByTyposOnoma(parTyposOnoma) . .

    . , !

    , - .

    30 Query Builder Access.

    29

  • IEK 2013 V

    . 18 27--14 [email protected]

    6. , , . - - . .

    , , . - . . , . , , . -

    ( 31). , . (exception handling).

    Try...Catch. . , - . -, , .

    Try

    Catch ex As Exception

    End Try

    32 - , , -, .

    6.1

    - - . - data-base server, . - - .

    ( ) - _Load . "" . Try...Catch, -

    31

    Dim a, b, c As Integer Try a = 3 b = 0 c = a \ b Catch ex As Exception MessageBox.Show(": " & ex.Message) c = 0 End Try MessageBox.Show(": " & c)

    32

    Private Sub frmPliroma_Load... Try Me.NaftikoiTableAdapter.Fill(Me.SailingDBDataSet.Naftikoi) Catch ex As SqlException MessageBox.Show(" " & ex.Number & " " & ex.Message & vbCrLf & _ " SQLEXPRESS .") Application.Exit() End Try End Sub

    33

  • V IEK 2013

    [email protected] 27--14 . 19

    33.

    SqlException - (Type 'SqlException' is not defined.), . .

    Imports System.Data.SqlClient

    SqlException .

    Application.Exit() VB.NET End Basic (, , ). .

    6.2

    , - , (Not Null), (Check Constraint). , - ( , ). . .

    . - , NaftikoiDataGridView. , -, DataError - . MessageBox.Show, 34, - (Caption, Buttons, Icon).

    e DataError . e , .RowIndex - .Exception . - .

    ! .

    Private Sub NaftikoiDataGridView_DataError (ByVal sender As Object, ByVal e As System.Windows.Forms. DataGridViewDataErrorEventArgs) Handles NaftikoiDataGridView.DataError MessageBox.Show( _ ": " & (e.RowIndex + 1) & vbCrLf & _ ": " & e.Exception.Message, _ " ", _ MessageBoxButtons.OK, _ MessageBoxIcon.Exclamation) End Sub

    34

  • IEK 2013 V

    . 20 27--14 [email protected]

    7. (wizards) . - :

    (database server) . database server SQL Server, Oracle . , , .

    , - , . , - .

    , , . . .

    , . , .

    : , , . . , - , :-)

    , 13, .

    . - , - .

    . . Visual Basic. - . . , .

    7.1 MovieDb

    - -

    . VB pro-ject Windows Form Application - DataProApp.

    Database Explorer - Connect to Database, Data Source Microsoft SQL Server File-name = MovieDb.mdf. , tblMovies - 35. Eispraxeis >= 0.0. - SQL Server Management Studio DDL SQL ( 7.7). 3-4 - .

    -. , . - -. !

    13

    , ; ;

    , , - . , ! (concurrency control).

    35 tblMovies

  • V IEK 2013

    [email protected] 27--14 . 21

    7.2

    , frmMovies. DataSet , , , -, .

    frmMovies, . - 7. -.

    Imports - SQL Server. - Access, Oracle, MySQL. - Imports .

    frmMovies conn . .Open(), - , , .

    6.1 - .Open() TryCatch, 33.

    7.3

    , VB. - ( 3-5 8). - - - .

    , . - - datTbl - 14.

    SQL SELECT 9 . :

    ORDER BY Titlos -.

    , ,

    SELECT TOP 1000 * FROM tblMovies ORDER BY ImdbKod

    1000 .

    , - . , -.

    .

    14

    : (table) . (data table) = RAM

    Imports System.Data.SqlClient ' SQL Server ' Access .OleDb Public Class frmMovies Private conn As New SqlConnection ' Private Sub frmMovies_Load(ByVal sender As System.Object, conn.ConnectionString = "Data Source=.\SQLEXPRESS;" & _ "AttachDbFilename=D:\MovieDb.mdf;" & _ "Integrated Security=True;" & _ "User Instance=True" conn.Open() ' End Sub End Class

    7

    1 2 Private conn As New SqlConnection ' 3 Private datAdp As New SqlDataAdapter 4 Private cmdBld As New SqlCommandBuilder 5 Private datTbl As New DataTable ' 6 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As 7 8 conn.Open() ' 9 datAdp = New SqlDataAdapter("SELECT * FROM tblMovies", conn)

    10 cmdBld = New SqlCommandBuilder(datAdp) 11 datAdp.Fill(datTbl) ' 12 End Sub 13

    8

  • IEK 2013 V

    . 22 27--14 [email protected]

    7.4

    - . , . - (Label) (TextBox, CheckBox, DateTimePicker), 36. , . , - 2 , . - txtImdbKod CheckBox - chkExoDei.

    .

    datTbl - ( datTbl.Rows). , datTbl.Rows.Count, - - . - - , . 7 9.

    intTrexousaGram ( 3) . - 0 ( -).

    ( - ) - DeixeGrammh, -. intTrexousaGram. datGram . .ToString Null .

    , 9 . !

    7.5

    , , . - .

    '' '' btnPrin btnMeta. Click 10. , - DeixeGrammh, ( ) .

    36

    1 2 Private datTbl As New DataTable ' 3 Private intTrexousaGram As Integer ' 4 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As 5 6 datAdp.Fill(datTbl) ' 7 If datTbl.Rows.Count > 0 Then ' 8 intTrexousaGram = 0 ' 9 DeixeGrammh() '

    10 End If 11 End Sub

    12 Private Sub DeixeGrammh() 13 ' 14 ' 15 Dim datGram As DataRow = datTbl.Rows(intTrexousaGram) 16 txtImdbKod.Text = datGram("ImdbKod").ToString 17 txtTitlos.Text = datGram("Titlos").ToString 18 dtpHmKyklof.Text = datGram("HmKyklof").ToString 19 txtEispraxeis.Text = datGram("Eispraxeis") 20 txtSkinothetis.Text = datGram("Skinothetis").ToString 21 chkExoDei.Checked = datGram("ExoDei") 22 End Sub 23

    9

    Private Sub btnPrin_Click(ByVal sender If intTrexousaGram > 0 Then intTrexousaGram = intTrexousaGram - 1 DeixeGrammh() End If End Sub Private Sub btnMeta_Click(ByVal sender If intTrexousaGram < datTbl.Rows.Count - 1 Then intTrexousaGram = intTrexousaGram + 1 DeixeGrammh() End If End Sub

    10

  • V IEK 2013

    [email protected] 27--14 . 23

    . '' , , '' -.

    C, , Basic, . , - 0, 1, 2. , If .

    : '' , , '' .

    , - Access.

    7.6

    , - .

    - 11.

    2 - , - . - , , , .

    5-9 - - . , .

    10. - - . . , - , 6.2.

    , -. (default values) ( 17-18). . , - .

    . : ( 24) ( 25).

    ' ----------------------------------------------------- 1 Private Sub btnSose_Click(ByVal sender As System.Object, ByVal e As 2 If intTrexousaGram -1 Then ' 3 ' 4 datTbl.Rows(intTrexousaGram)("ImdbKod") = txtImdbKod.Text 5 datTbl.Rows(intTrexousaGram)("Titlos") = txtTitlos.Text 6 datTbl.Rows(intTrexousaGram)("HmKyklof") = dtpHmKyklof.Text 7 datTbl.Rows(intTrexousaGram)("Eispraxeis") = txtEispraxeis.Text 8 datTbl.Rows(intTrexousaGram)("Skinothetis") = txtSkinothetis.Text 9 datTbl.Rows(intTrexousaGram)("ExoDei") = chkExoDei.Checked

    10 datAdp.Update(datTbl) ' 11 End If 12 End Sub

    13 Private Sub btnNeo_Click(ByVal sender As System.Object, ByVal e As 14 Dim neaGram As DataRow = datTbl.NewRow() 15 datTbl.Rows.Add(neaGram) ' 16 intTrexousaGram = datTbl.Rows.Count - 1 ' 17 neaGram("Eispraxeis") = 0.0 ' 18 neaGram("ExoDei") = False ' 19 DeixeGrammh() ' 20 ': , '' 21 End Sub

    22 Private Sub btnDiagrafi_Click(ByVal sender As System.Object, ByVal e As 23 If intTrexousaGram -1 Then ' 24 datTbl.Rows(intTrexousaGram).Delete() ' 25 datAdp.Update(datTbl) ' 26 If datTbl.Rows.Count > 0 Then ' 27 intTrexousaGram = 0 ' 28 Else 29 intTrexousaGram = -1 ' 30 End If 31 DeixeGrammh() 32 End If 33 End Sub

    11

  • IEK 2013 V

    . 24 27--14 [email protected]

    7.7

    VB . , . - , . !

    Imports System.Data.SqlClient ' SQL Server ' Access .OleDb Public Class frmMovies ' ------------------------------------------------------------ Private conn As New SqlConnection ' Private datAdp As New SqlDataAdapter Private cmdBld As New SqlCommandBuilder Private datTbl As New DataTable ' Private intTrexousaGram As Integer ' ' --------------------------------------------------- Private Sub frmMovies_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load conn.ConnectionString = "Data Source=.\SQLEXPRESS;" & _ "AttachDbFilename=D:\My Documents\MovieDb.mdf;" & _ "Integrated Security=True;" & _ "User Instance=True" Try conn.Open() ' - Catch ex As SqlException MessageBox.Show(" " & ex.Number & " " & ex.Message & vbCrLf & _ " SQLEXPRESS .") Application.Exit() End Try datAdp = New SqlDataAdapter("SELECT * FROM tblMovies ORDER BY Titlos", conn) cmdBld = New SqlCommandBuilder(datAdp) datAdp.Fill(datTbl) ' If datTbl.Rows.Count > 0 Then ' intTrexousaGram = 0 ' Else intTrexousaGram = -1 ' End If DeixeGrammh() ' End Sub Private Sub frmMovies_FormClosed(ByVal sender As Object, ByVal e As Sys-tem.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed conn.Close() End Sub ' ------------------------------------------------------- Private Sub DeixeGrammh() ' If intTrexousaGram -1 Then ' Dim datGram As DataRow = datTbl.Rows(intTrexousaGram) ' txtImdbKod.Text = datGram("ImdbKod").ToString ' txtTitlos.Text = datGram("Titlos").ToString dtpHmKyklof.Text = datGram("HmKyklof").ToString txtEispraxeis.Text = FormatCurrency(datGram("Eispraxeis")) ' txtSkinothetis.Text = datGram("Skinothetis").ToString chkExoDei.Checked = datGram("ExoDei") Else txtImdbKod.Text = "" txtTitlos.Text = "" dtpHmKyklof.Text = "" txtEispraxeis.Text = "" txtSkinothetis.Text = "" chkExoDei.Checked = False

  • V IEK 2013

    [email protected] 27--14 . 25

    End If ' lblPlithos.Text = intTrexousaGram + 1 & "/" & datTbl.Rows.Count End Sub ' ------------------------------------------------------ Private Sub btnPrin_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn Prin.Click If intTrexousaGram > 0 Then ' intTrexousaGram = intTrexousaGram - 1 DeixeGrammh() End If End Sub Private Sub btnMeta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnMeta.Click If intTrexousaGram < datTbl.Rows.Count - 1 Then ' intTrexousaGram = intTrexousaGram + 1 DeixeGrammh() End If End Sub ' -------------------------------------------------------- Private Sub btnSose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSose.Click If intTrexousaGram -1 Then ' ' datTbl.Rows(intTrexousaGram)("ImdbKod") = txtImdbKod.Text datTbl.Rows(intTrexousaGram)("Titlos") = txtTitlos.Text datTbl.Rows(intTrexousaGram)("HmKyklof") = dtpHmKyklof.Text datTbl.Rows(intTrexousaGram)("Eispraxeis") = CDbl(txtEispraxeis.Text) ' datTbl.Rows(intTrexousaGram)("Skinothetis") = txtSkinothetis.Text datTbl.Rows(intTrexousaGram)("ExoDei") = chkExoDei.Checked Try datAdp.Update(datTbl) ' Catch ex As SqlException MessageBox.Show(": " & ex.Message, " ", _ MessageBoxButtons.OK, MessageBoxIcon.Exclamation) End Try End If End Sub Private Sub btnNeo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNeo.Click Dim neaGram As DataRow = datTbl.NewRow() datTbl.Rows.Add(neaGram) ' intTrexousaGram = datTbl.Rows.Count - 1 ' neaGram("Eispraxeis") = 0.0 ' neaGram("ExoDei") = False ' DeixeGrammh() ' ': , '' End Sub Private Sub btnDiagrafi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDiagrafi.Click If intTrexousaGram -1 Then ' datTbl.Rows(intTrexousaGram).Delete() ' datAdp.Update(datTbl) ' If datTbl.Rows.Count > 0 Then ' intTrexousaGram = 0 ' Else intTrexousaGram = -1 ' End If DeixeGrammh() ' End If End Sub End Class

  • IEK 2013 V

    . 26 27--14 [email protected]

    :

    SQL DDL :

    USE [D:\MY DOCUMENTS\MOVIEDB.MDF]

    GO

    CREATE TABLE [dbo].[tblMovies] (

    [ImdbKod] [int] NOT NULL,

    [Titlos] [nvarchar](50) NOT NULL,

    [HmKyklof] [date] NOT NULL,

    [Eispraxeis] [money] NULL,

    [Skinothetis] [nvarchar](50) NULL,

    [ExoDei] [bit] NOT NULL,

    CONSTRAINT [PK_tblMovies] PRIMARY KEY (

    [ImdbKod] ASC

    )

    WITH (ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)

    ON [PRIMARY]

    )

    ON [PRIMARY]

    GO

    ALTER TABLE [dbo].[tblMovies] WITH CHECK ADD CONSTRAINT [CK_tblMoviesEispraxeis]

    CHECK ([Eispraxeis] >= 0.0)

    GO

    VB2010 project. 7.1, . ConnectionString database server , 7.

  • V IEK 2013

    [email protected] 27--14 . 27

    8. A ........................................ 10

    .............................................. 4

    ................................................................. 8

    .............................................................. 18

    ................................................... 20

    .......................................................................... 13

    ...................................................................... 4

    .......................................................... 4

    - .............................................. 15

    ........................................... 2

    ................................................... 4

    o .............................................................. 14

    ......................................... 4

    ............................... 3

    .................................................................. 8

    ................................................................................. 4

    .......................................................... 2

    .......................................................... 18

    .......................................................................... 4

    9.

    1. ............................................................................................................................................................................ 1

    1.1 .......................................................................................................................................... 1

    1.2 .................................................................................................................................................................. 2

    1.3 / ........................................................................................................................................... 3

    2. ................................................................................................................................................. 4

    2.1 ................................................................................................................ 4

    2.2 Visual Basic ...................................................................................................................................... 4

    2.3 ...................................................................................................................................................................... 5 ...................................................................................................................................................... 6

    2.4 ............................................................................................................................................................... 7

    3. Access ................................................................................................................................................... 9

    3.1 ........................................................................................................................................................... 9 .......................................................................................................................................................................... 10 .................................................................................................................................................... 11

    3.2 .................................................................................................................................................. 11

    4. SQL Server .......................................................................................................................................... 12

    ........................................................................................................................................................................ 12 DataSet .................................................................................................................................................................. 13

    4.1 ............................................................................................................................................................. 13

    4.2 .......................................................................................................................... 13

    4.3 ............................................................................................................................................................. 14

    4.4 - ............................................................................................................................................ 15

    5. ........................................................................................................................................................................ 16

    ..................................................................................................................................... 16 ........................................................................................................................................................... 16

    5.1 ...................................................................................................................................................... 17

    6. ......................................................................................................................................................................... 18

    6.1 .............................................................................................................................................................. 18

    6.2 ........................................................................................................................................................... 19

  • IEK 2013 V

    . 28 27--14 [email protected]

    7. ........................................................................................................................................ 20

    7.1 MovieDb ................................................................................................................................................................... 20

    7.2 .............................................................................................................................................................. 21

    7.3 ..................................................................................... 21

    7.4 ...................................................................................................................................... 22

    7.5 ............................................................................................................................................... 22

    7.6 ................................................................................................................................................. 23 ............................................................................................................................................................................. 23 ............................................................................................................................................................................ 23 .................................................................................................................................................................................. 23

    7.7 .................................................................................................................................................... 24

    8. ................................................................................................................................................................ 27

    9. ..................................................................................................................................................... 27