Λύση 1

 

Για την υλοποίηση της άσκησης αυτής ακολουθήστε τα παρακάτω βήματα:

Χρησιμοποιείτε κεφαλαία γράμματα για την ονομασία Βάσεων δεδομένων, πινάκων, πεδίων για την διευκόλυνσή σας.

Επίσης εάν θέλετε το όνομα  βάσης, πίνακα ή πεδίου να αποτελείται από δύο ή περισσότερες λέξεις καλό είναι να τις ενώνετε με την κάτω παύλα (_) όπως βλέπετε και στο παραπάνω όνομα της βάσης

 

Β. Δημιουργήστε τον παραπάνω πίνακα:   FILOI

ΠΑΡΑΤΗΡΗΣΗ: Για να έχει ένα πεδίο Αυτόματη αρίθμηση θα πρέπει να αλλάξετε τις ιδιότητες Identity=Yes (Not for replication), Seed=1 που αναφέρετε στον γόνο από όπου θα ξεκινήσει η αρίθμηση, Increment=1 όπου ορίζετε το βήμα με το οποίο θα αυξάνει η αρίθμηση

Δώστε αυτόματη αρίθμηση στο πεδίο ΑΑ.

 

Γ. Καταχωρήστε 5 νέες εγγραφές στον πίνακα

Για να ανοίξετε τον πίνακα και να καταχωρήσετε εγγραφές πιέστε : Δεξί κλίκ πάνω στον πίνακα και επιλέξτε  Open Tableà  Return all rows

 

 

AA

EPITHETO

ONOMA

ON_PATROS

HM_GENNHSIS

ODOS

AR

TK

1

Γεωργίου

Απόστολος

Δημήτριος

7/4/1997

Βενιζέλου

12

62100

2

Παπαδόπουλος

Γεώργιος

Ιωάννης

4/5/1999

Μεραρχείας

7

62100

3

Μιχαηλίδης

Αντώνιος

Αθανάσιος

4/5/1997

Δελφών

34

45678

4

Καραλής

Ανδρέας

Περικλής

3/3/1984

Κηφησίας

67

12345

5

Τριανταφύλλου

Γρηγόριος

Βασίλειος

7/8/1997

Δωδώνης

90

65100

Συνέχεια κάθε εγγραφής

POLH

THL_ERGASIAS

THL_SPITIOY

KINHTO

SXOLIA

ΣΕΡΡΕΣ

23210-73234

23210-74321

6973434343

Φίλος

ΣΕΡΡΕΣ

23210-45667

23210-56789

6789032455

Γνωστός

ΘΕΣΣΑΛΟΝΙΚΗ

2310-554566

2310-567890

6945342312

Φίλος

ΑΘΗΝΑ

210-3456790

210-2345678

6967345673

Φίλος

ΙΩΑΝΝΙΝΑ

26510-32145

26510-89076

6978987654

Γνωστός

 

 

Δ. Δημιουργήστε όψεις (Views), εκτελέστε και αποθηκεύστε τα παρακάτω ερωτήματα.

1. Εμφανίστε όλα τα στοιχεία των φίλων σας που το επίθετό τους αρχίζει πχ από Κ

            (Select * From FILOI Where EPITHETO Like ‘K%’)

2. Εμφανίστε Επίθετο, Όνομα και Κινητό των φίλων σας που γεννήθηκαν μετά το  1997 και είναι από την πόλη Σέρρες.

3. Ομαδοποιήστε τους φίλους σας ανά πόλη και μετρήστε πόσοι είναι από κάθε πόλη

            (Select  POLH, Count(AA) As PLHTHOS 

From FILOI

Group By POLH)

4. Ομαδοποιήστε τους φίλους σας ανά Σχόλιο και μετρήστε πόσοι είναι φίλοι και πόσοι γνωστοί

            (Select  SXOLIA, Count(AA) As PLHTHOS 

From FILOI

Group By SXOLIO)

5. Προβάλετε τις καταχωρήσεις που κατάγονται από την ίδια πόλη που κατάγεται ο Γεωργίου (φωλιασμένο ερώτημα)

6. Προβάλετε σε ένα ερώτημα τις καταχωρήσεις που κατάγονται από Αθήνα και αυτές από Θεσσαλονίκη

 

Ε. Πάρτε Backup την βάση δεδομένων.

1. Δεξί κλικ πάνω στην βάση ΑΤΖΕΝΤΑ_ΕΠΙΘΕΤΟ à Όλες οι Εργρασίες à Backup Database

2. Στο παράθυρο που θα εμφανιστεί στην επιλογή Destination πιέστε το κουμπί Add… ώστε να προσθέσετε τη θέση προορισμού του αντιγράφου ασφαλείας.

 

.

3. Στο νέο παράθυρο που θα εμφανιστεί στην επιλογή File name πιέζοντας το κουμπί browse  επιλέξτε τη θέση προορισμού. Στην περίπτωση των εργαστηρίων όπου υπάρχουν περιορισμένα δικαιώματα πρόσβασης σε φακέλους πληκτρολογήστε την θέση του φακέλου σας στην θέση FileName. Πχ

C:\AYTOMATISMOY\ΒΑΣΕΙΣ2\ΤΡ_8_10\ΕΠΙΘΕΤΟ_ΣΑΣ

 και στην συνέχεια πατήστε ΟΚ στις καρτέλες.

 

Z. Διαγράψτε την Βάση ΑΤΖΕΝΤΑ_ΕΠΙΘΕΤΟ.

1. Δεξί κλικ πάνω στην βάση ΑΤΖΕΝΤΑ_ΕΠΙΘΕΤΟ à Διαγραφή à Yes

 

H. Κάντε Restore ή Attach την βάση που πήρατε πριν Backup

1. Δεξί κλικ πάνω στον φάκελο Databases à Όλες οι εργασίες à Restore database

 

 

2. Στο παράθυρο που θα εμφανιστεί δώστε τι παρακάτω επιλογές όπως φαίνεται στην  παραπάνω εικόνα,

α. Πληκτρολογήστε στην επιλογή Restore as Database: το όνομα της βάσης δεδομένων που διαγράψατε πχ. ΑΤΖΕΝΤΑ_ΕΠΙΘΕΤΟ_ΣΑΣ

β. Restore à From device

γ. Select Devices..

δ. Στο νέο παράθυρο που θα ανοίξει πιέστε Add..

ε. στην επιλογή File Name πιέστε το κουμπί browse   και επιλέξτε τη θέση στον δίσκο από την οποία θα πάρετε το αντίγραφο ασφαλείας και θα το επαναφέρετε.

Στην περίπτωση των εργαστηρίων όπου υπάρχουν περιορισμένα δικαιώματα πρόσβασης σε φακέλους πληκτρολογήστε την θέση του φακέλου σας στην θέση FileName. Πχ

C:\AYTOMATISMOY\ΒΑΣΕΙΣ2\ΤΡ_8_10\ΕΠΙΘΕΤΟ_ΣΑΣ\ΒΑΣΗ_BACKUP

και στην συνέχεια πατήστε ΟΚ στις καρτέλες.

Θ. Δημιουργήστε στον φάκελο σας  στον δίσκο μια κενή βάση σε ACCESS με όνομα ΑΤΖΕΝΤΑ_ΕΠΙΘΕΤΟ. Κλείστε την ACCESS. Μετατρέψτε και μεταφέρετε την δομή με τα δεδομένα της βάσης που δημιουργήσατε από τον SQL Server στην ACCESS με τις επιλογές του Data Transformation Services

1. Toolsà Data Transformation Services à Export DataàΕπόμενο

 

 

 

 

 

 

 

 

 

 

 

 


Βήμα1                                                                           Βήμα2

 

 

 

 

 

 

 

 

 


Βήμα3                                                                           Βήμα4

 

ΠΡΟΣΟΧΗ:

Στο βήμα 1   πηγή δεδομένων είναι η βάση ΑΤΖΕΝΤΑ από  DataSource=Microsoft OLE DB Provider for SQL Server

Στο βήμα 2   προορισμός δεδομένων είναι η βάση ΤΕΣΤ της ACCESS από  Destination=Microsoft Access

Μπορείτε να διαλέξετε ως πηγή ή προορισμό δεδομένων όλους τους διαθέσιμους οδηγούς που παρέχει ο SQL Server.


Λύση 2

 

1. Κάντε Restore την βάση ΑΤΖΕΝΤΑ_ΕΠΙΘΕΤΟ που πήρατε Backup στην άσκηση 1

 

2. Ανοίξτε τον Builder και στην φόρμα που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components).

ADOConnection                                               (γραμμή εργαλείων ADO)

ADOQuery  ή εναλλακτικά  ADOTable                (γραμμή εργαλείων ADO)

DataSource                                                      (γραμμή εργαλείων Data Aceess)

 

DBGrid                                                             (γραμμή εργαλείων Data Controls)

DBNavigator                                                    (γραμμή εργαλείων Data Controls)

 

2. Αποθηκεύστε το Project σε νέο υποφάκελο μέσα στον φάκελό σας πχ. ΕΠΙΘΕΤΟ\ΕΡΓΑΣΙΑ3

3. Σύνδεση Βάσης Δεδομένων με  C++ BUILDER

Ρυθμίστε τις παρακάτω ιδιότητες για τα παραπάνω χειριστήρια

 

ADOConnection           Connection StringàBuildàMicrosoft OLEDB Provider for SQL    Serverà                           1. Επιλογή διακομιστή

                                                                        2. Όνομα Χρήστη=sa

                                                                            Κωδικός πρόσβασης =κενό

                                                                        3. Επιλογή βάσης δεδομένων=ΑΤΖΕΝΤΑ

4. Δοκιμή σύνδεσης

                                    Connected=true

 

ADOQuery                    Connection=ADOConnection1

                                    SQL   … = Select * From FILOI

                                    Active =true

 

DataSource                  DataSet =ADOQuery1

 

Στην ιδιότητα SQL του ADOQuery μπορεί να γραφεί οποιοδήποτε ερώτημα SQL. Στον SQLServer υπάρχει η δυνατότητα σύνδεσης με πίνακα με το χειριστήριο ADOTable με το οποίο μπορεί να γίνει σύνδεση με οποιονδήποτε πίνακα της βάσης ρυθμίζοντας αντίστοιχα την ιδιότητα TableName

DBGrid                         DataSource= DataSource1

 

DBNavigator                DataSource= DataSource1                    

 

5. Αποθηκεύστε το Project του  Builder με την επιλογή Save All και εκτελέστε το με την επιλογή Run   Κάντε συχνά Αποθήκευση των αλλαγών σας.

 

4. Επεξεργαστείτε τα δεδομένα του πίνακα με τα πλήκτρα του Navigator                          

 

6. Εκτελέστε τα παρακάτω ερωτήματα με τον ίδιο τρόπο και προβάλετε τα αποτελέσματα σε νέα DBGrid μέσα στην ίδια φόρμα.

 

a. Select   *  from  FILOI   where   POLH=’ΣΕΡΡΕΣ

b. Select  EPITHETO, ONOMA, KINHTO  from FILOI where KINHTO Like ‘69%’

 

Προσοχή δεν χρειάζεται να τοποθετείτε νέο ADOConnection, αρκεί μόνο ένα για την σύνδεση με την βάση δεδομένων. Χρειάζονται νέα ADOQuery, DataSource, DBGrid και DBNavigator


Λύση 3

 

Για την υλοποίηση της άσκησης αυτής ακολουθήστε τα παρακάτω βήματα:

1. Δημιουργήστε μία νέα βάση δεδομένων στον SQL Server με όνομα ENOIKIASEIS_AYTOKINHTON_EPITHETO

 

Χρησιμοποιείτε κεφαλαία γράμματα για την ονομασία Βάσεων δεδομένων, πινάκων, πεδίων για την διευκόλυνσή σας.

Επίσης εάν θέλετε το όνομα  βάσης, πίνακα ή πεδίου να αποτελείται από δύο ή περισσότερες λέξεις καλό είναι να τις ενώνετε με την κάτω παύλα (_) όπως βλέπετε και στο παραπάνω όνομα της βάσης

 

ΑΥΤΟΚΙΝΗΤΑ                                                               PELATES

2. Δημιουργήστε τους πίνακες ΑΥΤΟΚΙΝΗΤΑ, PELATES, ENOIKIASH

 

 

ENOIKIASH

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


ΠΑΡΑΤΗΡΗΣΗ: Για να έχει ένα πεδίο Αυτόματη αρίθμηση θα πρέπει να αλλάξετε τις ιδιότητες Identity=Yes (Not for replication), Seed=1 που αναφέρετε στον γόνο από όπου θα ξεκινήσει η αρίθμηση, Increment=1 όπου ορίζετε το βήμα με το οποίο θα αυξάνει η αρίθμηση.

Ορίστε το πεδίο ΚΕΝ (που αναφέρεται στον Κωδικό Ενοικίασης αυτοκινήτου) να έχει αυτόματη αρίθμηση.

 

3.Δημιουργήστε νέο διάγραμμα (Diagram)  και ορίστε τις συσχετίσεις μεταξύ των πινάκων όπως βλέπετε στην παρακάτω εικόνα.

 

 

 

 

 

 

 

 

 

 


4.Καταχωρήστε τις παρακάτω εγγραφές για κάθε πίνακα

ΠΕΛΑΤΕΣ

KP

EPITHETO

ONOMA

ON_PATROS

HM_GENNHSIS

ODOS

AR

TK

1

Γεωργίου

Απόστολος

Ιωάννης

1/1/1999

ΔΕΛΦΩΝ

23

62100

2

Παπαδόπουλος

Γεώργιος

Δημήτριος

1/2/1966

ΒΕΝΙΖΕΛΟΥ

45

62100

3

Μιχαηλίδης

Αντώνιος

Βασίλειος

6/7/1998

ΕΡΜΟΥ

12

23456

4

Καραλής

Ανδρέας

Ιωάννης

3/4/1979

ΤΣΙΜΙΣΚΗ

67

45567

5

Τριανταφύλλου

Γρηγόριος

Νικόλαος

5/5/1995

ΔΩΔΩΝΗΣ

123

65100

POLH

AFM

DOY

THL_ERGASIAS

KINHTO

THL_SPITIOY

SXOLIA

ΣΕΡΡΕΣ

34455678

Α ΣΕΡΡΩΝ

23210-45678

6947898989

23210-56156

ΠΡΟΣΕΚΤΙΚΟΣ

ΣΕΡΡΕΣ

54378922

Β ΣΕΡΡΩΝ

23210-34567

6947676767

23210-45456

ΑΣΤΑΤΟΣ

ΑΘΗΝΑ

67846445

ΣΤ ΑΘΗΝΩΝ

210-3438438

6732212121

210-2324455

ΕΠΙΚΙΝΔΥΝΟΣ

ΘΕΣΣΑΛΟΝΙΚΗ

53739292

ΦΑΕ ΘΕΣ/ΝΙΚΗΣ

2310-937473

6946343434

2310-473476

ΠΡΟΣΕΚΤΙΚΟΣ

ΙΩΑΝΝΙΝΑ

189378737

Α ΙΩΑΝΝΙΝΩΝ

26510-83748

6978318976

26510-45354

ΑΠΑΡΑΔΕΚΤΟΣ

…συνέχεια πεδίων πίνακα…

 

 

ΑΥΤΟΚΙΝΗΤΑ

KA

MARKA

MONTELO

AR_KYKLOFORIAS

THESIS

PORTES

XROMA

1

FIAT

STILO

43567

5

5

KOKKINO

2

OPEL

CORSA

32456

5

5

ΛΕΥΚΟ

3

MERCEDES

SLK

45677

2

2

ΑΣΗΜΙ

4

VW

GOLF

32134

5

3

ΜΠΚΛΕ

5

ALFA ROMEO

156

89890

5

5

KOKKINO

…συνέχεια πεδίων πίνακα…

TIMH_ENOIKIASIS

TYPOS_KAYSIMOY

HMEROM_KYKLOFORIAS

XILIOMETRA

20

BENZINH

1/1/2004

56000

18

ΒΕΝΖΙΝΗ

1/5/2000

87000

70

ΒΕΝΖΙΝΗ

1/6/2006

12000

35

ΠΕΤΡΕΛΑΙΟ

1/2/2003

120000

45

BENZINH

1/3/2001

112000

 

ΕΝΟΙΚΙΑSH

KEN

KP

KA

HMER_ENOIKIASHS

HMER_EPISTROFHS

POSO_PLHROMHS

1

1

1

7/7/2007

17/7/2007

200

2

2

5

21/8/2007

25/8/2007

225

3

2

3

20/9/2007

25/9/2007

420

4

3

1

1/10/2007

2/10/2007

20

5

4

1

3/10/2007

13/10/2007

200

6

5

2

1/10/2007

10/10/2007

180

…συνέχεια πεδίων πίνακα…

PERIGRAFH_ZHMIAS

XREOSH_ZHMIAS

TELIKO_POSO

 

0

200

 

0

225

 

0

420

ΛΑΣΤΙΧΟ ΕΜΠΡΟΣ ΔΕΞΙΑ

20

40

 

 

200

 

 

180

 

 

 

 

 

 

 

5. Δημιουργήστε τα παρακάτω ερωτήματα SQL με την μορφή όψεων (Views)

i. Εμφανίστε αναλυτικά το ιστορικό ενοικιάσεων των πελατών

ii. Εμφανίστε τα αυτοκίνητα που δεν ενοικιάστηκαν ποτέ

iii. Προβάλετε τα στοιχεία του κάθε πελάτη με το συνολικό ποσό που πλήρωσε.

iv. Προβάλετε τα στοιχεία του κάθε πελάτη με το μέγιστο συνολικό ποσό.

v. Προβάλετε τα στοιχεία του αυτοκινήτου που προτιμούν να νοικιάζουν οι πελάτες.

vi. Εμφανίστε το ποσοστό των ενοικιάσεων κατά το οποίο συνέβη ζημία σε ενοικιαζόμενο αυτοκίνητο.

6. Πάρτε αντίγραφο ασφαλείας (Backup) από την βάση και αποθηκεύστε το με όνομα ΕΠΙΘΕΤΟ_ΑΥΤΟΚΙΝΗΤΑ_ΑΝΤΙΓΡΑΦΟ

 

7. Χρονοπρογραμματίστε τον SQL Server ώστε να παίρνει αντίγραφο ασφαλείας της βάσης σας κάθε  Τετάρτη στις 10:00 το βράδυ.

ToolsàDatabase Maintenance  Planerà Επόμενο à Επόμενο à Επόμενο à Επόμενο à

 

 

 

 

 

 

 

 

 

 

 

 

 


Επιλέξτε την βάση σας, την θέση που θα αποθηκευτεί το Backup, την ημέρα και ώρα που θα ξεκινήσει, κάθε πότε, την διάρκεια κά.

 

8. Σταματήστε τον SQL Server (δεξί κλικ στο εικονίδιο του SQL Server στην γραμμή εργασιώνà Stop)

9.   Βρείτε τα αρχεία ENOIKIASEIS_AYTOKINHTON_EPITHETO.MDF και ENOIKIASEIS_AYTOKINHTON_EPITHETO.LDF που αντιστοιχούν στην βάση δεδομένων που δημιουργήσατε και αντιγράψτε τα στον φάκελό σας πχ. ΕΠΙΘΕΤΟ\ΕΡΓΑΣΙΑ3

ΠΡΟΣΟΧΗ: Η αντιγραφή αυτών των αρχείων .mdf και .ldf  γίνεται μόνο στην περίπτωση που ο Server δεν τρέχει.

 

 

 

 

 

 

Λύση 4

 

Η σύνδεση θα γίνει με ADO (ActiveX  Data Object)

1. Κάντε Restore την βάση ΕΠΙΘΕΤΟ_ΑΥΤΟΚΙΝΗΤΑ_ΑΝΤΙΓΡΑΦΟ

 

2. Ανοίξτε τον Builder και στην φόρμα που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components) όπως στο παρακάτω σχήμα.

 

ADOConnection           (1 φορά)                        (γραμμή εργαλείων ADO)

ADOQuery                    (3 φορές)                       (γραμμή εργαλείων ADO)

DataSource                  (3 φορές)                       (γραμμή εργαλείων Data Aceess)

 

DBEdit (ένα για κάθε πεδίο)                               (γραμμή εργαλείων Data Controls)

DBNavigator                (1 φορά)                        (γραμμή εργαλείων Data Controls)

Label (ένα για κάθε πεδίο)                                 (γραμμή εργαλείων Standard)

PageControl                (1 φορά)                        (γραμμή εργαλείων Win32)

 

 

3. Αποθηκεύστε το Project σε νέο υποφάκελο μέσα στον φάκελό σας πχ. ΕΠΙΘΕΤΟ\ΕΡΓΑΣΙΑ4

4. Σύνδεση Βάσης Δεδομένων με  C++ BUILDER και ρύθμιση ιδιοτήτων

Ρυθμίστε τις παρακάτω ιδιότητες για τα παραπάνω χειριστήρια όπως στην Άσκηση2

 

ADOConnection           Connection StringàBuildàMicrosoft OLEDB Provider   for SQL Serverà                                        1. Επιλογή διακομιστή

                                                                        2. Όνομα Χρήστη=sa

                                                                            Κωδικός πρόσβασης =κενό

                                                                        3. Επιλογή βάσης δεδομένων=ΑΥΤΟΚΙΝΗΤΑ

4. Δοκιμή σύνδεσης

                                    Connected=true

Για κάθε πίνακα της βάσης θα υπάρχει ένα ADOQuery και ένα DataSource τα οποία ρυθμίζονται όπως παρακάτω για τον πίνακα PELATES

ADOQuery                    Connection=ADOConnection1

                                    SQL   … = Select * From PELATES

                                    Active =true

 

DataSource                  DataSet =ADOQuery1

Κάντε το ίδιο για τους υπόλοιπους πίνακες της βάσης.

 

PageControl                Δεξί κλικ  πάνω του à New Page            προσθέστε 3 σελίδες

                        Κλικ στο κέντρο ενός TabSheetàCaption=’Πελάτες’    το ίδιο για τις άλλες καρτέλες

DBEdit                          DataSource= DataSource1

                                    DataField=ΠΕΔΙΟ του ΠΙΝΑΚΑ

DBNavigator                DataSource= DataSource1        

 

Label                           Caption=Κείμενο πχ που περιγράφει τα πεδία     

 

5. Αποθηκεύστε το Project του  Builder με την επιλογή Save All και εκτελέστε το με την επιλογή Run

6.  Επεξεργαστείτε τα δεδομένα του πίνακα με τα πλήκτρα του Navigator 

7. Σε κάθε σελίδα του PageControl κάντε καρτέλες για κάθε πίνακα όπως στην εικόνα


Λύση 5

 

Η σύνδεση θα γίνει με ADO (ActiveX  Data Object)

1. Κάντε Restore την βάση ΕΠΙΘΕΤΟ_ΑΥΤΟΚΙΝΗΤΑ_ΑΝΤΙΓΡΑΦΟ

 

2. Ανοίξτε τον Builder και το project της άσκησης 3.

Στην φόρμα 1 παρουσιάζονται όλα τα components που τοποθετήθηκαν στην προηγούμενη άσκηση, τα οποία τα αφήνουμε και δεν τα πειράζουμε.

 

3. Προσθέστε νέα φόρμα : Fileà New Form

 

4. Στην φόρμα 2 που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components) όπως στο παρακάτω σχήμα.

 

ADOQuery             (2 φορές)                                   (γραμμή εργαλείων ADO)

DataSource          (1 φορά)                                    (γραμμή εργαλείων Data Aceess)

 

DBLookUpComboBox   (1 φορά)

                                              (γραμμή εργαλείων Data Controls)

 

DBGrid                  (1 φορά)                                    (γραμμή εργαλείων Data Controls)

 

Label                     (4 φορές)                                  (γραμμή εργαλείων Standard)

(όπου απαιτείται πχ Τίτλος καρτέλας)

 

Στην Form1 τοποθετήστε ένα κουμπί Button το οποίο θα ανοίγει την Form2 μέσα από την Form1

Button                   (1 φορά)                                    (γραμμή εργαλείων Standard)

 

όπως φαίνονται στην παρακάτω εικόνα

 

4. Επικοινωνία φορμών

Μεταβείτε στην Form1 κάνοντας κλικ πάνω στην φόρμα

FileàInclude Unit Hdr à Unit2

 

Μεταβείτε στην Form2 κάνοντας κλικ πάνω στην φόρμα

FileàInclude Unit Hdr à Unit1

Με τον τρόπο αυτό η κάθε φόρμα μπορεί να «βλέπει» τα αντικείμενα της άλλης φόρμας.

 

5. Ρυθμίσεις χειριστηρίων (components) της Φόρμας 2

ADOQuery1àConnection= Form1à ADOConnection1

DataSource1àDataSet=ADOQuery1

DBGridàDataSource= DataSource1

ADOQuery2àConnection= Form1à ADOConnection1

 

DBLookUpComboBox1à ListSource=Form1àDataSource1 (αντιστοιχεί στους Πελάτες)

            DBLookUpComboBox1à ListField=EPITHETO                 (το πεδίο που θα εμφανίζεται)

            DBLookUpComboBox1à KeyField=KP                           (το πρωτεύον κλειδί του πίνακα )

 

Με τις ρυθμίσεις αυτές στο DBLookUpComboBox1 ορίζουμε ότι θα συνδέεται με τα στοιχεία που θα προβάλει το ADOQuery1 της Form1 και όχι της Form2, και θα επιλέγει ένα από τα επίθετα του πίνακα PELATES.

ΠΡΟΣΟΧΗ: Η Ιδιότητα DataSource του DBLookupComboBox1 θα πρέπει να είναι κενή.

 

6. Εκτέλεση Δυναμικού Ερωτήματος SQL

Αφού επιλεχθεί το επιθυμητό επίθετο, θα εκτελεστεί ένα ερώτημα SQL και θα προβληθεί το ιστορικό ενοικιάσεων αυτοκινήτων του πελάτη που επιλέχθηκε στο DBGrid.

Επίσης σε ένα Label θα παρουσιάζεται το άθροισμα των ποσών που έχει πληρώσει ο πελάτης συνολικά.

Πατήστε διπλό κλικ πάνω στο DBLookUpComboBox1 ώστε να ανοίξει το παράθυρο του Unit2.cpp για να γραφτεί κώδικας εντολών. Γράψτε τις παρακάτω εντολές στην μέθοδο DBLookupComboBox1Click:

 

void __fastcall TForm2::DBLookupComboBox1Click(TObject *Sender)

{

//Προβολή ιστορικού ενοικιάσεων Πελάτη

//

ADOQuery1->SQL->Text="SELECT MARKA, MONTELO, XROMA,  HMER_ENOIKIASHS, \

                             HMER_EPISTROFHS, PERIGRAFH_ZHMIAS, TELIKO_POSO \

                      FROM  PELATES INNER JOIN (ENOIKIASH INNER JOIN AYTOKINHTA \

                              ON  ENOIKIASH.KA= AYTOKINHTA.KA)  \

                              ON   PELATES.KP=ENOIKIASH.KP  \

                      WHERE PELATES.EPITHETO='"+ DBLookupComboBox1->Text+"'";

                             

 

ADOQuery1->ExecSQL();      // Εκτέλεση ερωτήματος

ADOQuery1->Active=true;    // Ενεργοποίηση του ερωτήματος

 

// Υπολογισμός συνολικού ποσού πληρωμής ενός πελάτη

// που επιλέγεται από το DBLookupComboBox

 

ADOQuery2->SQL->Text="SELECT SUM(TELIKO_POSO)as TP \

                      FROM    PELATES INNER JOIN ENOIKIASH  \

                              ON   PELATES.KP=ENOIKIASH.KP \

                      WHERE PELATES.EPITHETO='"+ DBLookupComboBox1->Text+"'";

                            

 

ADOQuery2->ExecSQL();      // Εκτέλεση ερωτήματος

ADOQuery2->Open();         // Άνοιγμα ερωτήματος

ADOQuery2->FindFirst();    // Μετάβαση στην πρώτη εγγραφή του ερωτήματος

 

Label4->Caption=ADOQuery2->FieldValues["TP"]; 

// Με αυτόν τον τρόπο παίρνουμε την τιμή ενός πεδίου

// από ένα ερώτημα και την αναθέτουμε σε μια μεταβλητή της C++

 

ADOQuery2->Close();        // Κλείσιμο του Ερωτήματος πάντα μετά από άνοιγμα.

}

 

7. Άνοιγμα φόρμας από κουμπί (button)

Μεταβείτε στην Form1 κάνοντας κλικ πάνω στην φόρμα

Τοποθετήστε το κουμπί που θα ανοίγει την φόρμα2

Αλλάξτε την ιδιότητα Caption και γράψτε το κείμενο που θα εμφανίζεται πάνω στο κουμπί.

 

Button1àCaption=Open Form2

 

Πατήστε διπλό κλικ πάνω στο Button1 ώστε να ανοίξει το παράθυρο του Unit1.cpp για να γραφτεί κώδικας εντολών. Γράψτε την παρακάτω εντολή στην μέθοδο Button1Click:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

 

Form2->ShowModal();

  

// Ανοίγει την φόρμα2 χωρίς δυνατότητα μετακίνησης

// στην φόρμα1 πριν κλείσει η φόρμα 2

}

 

8. Αποθηκεύστε το Project του  Builder με την επιλογή Save All και εκτελέστε το με την επιλογή Run

Κάντε αποθηκεύσεις με την επιλογή Save All συχνά και την ανάπτυξη της εφαρμογής.

 

9. Επαναλάβετε τα βήματα από το 2 έως το 8 για να προβάλετε το ιστορικό ενοικιάσεων για κάθε αυτοκίνητο αυτή τη φορά και τον συνολικό τζίρο χρημάτων που αποφέρει το κάθε αυτοκίνητο.


Λύση 6

 

 

Η σύνδεση με την βάση θα γίνει με ADO (ActiveX  Data Object)

1. Κάντε Restore ή Attach την βάση ΕΠΙΘΕΤΟ_ΑΥΤΟΚΙΝΗΤΑ…

 

2. Ανοίξτε τον Builder και το project της άσκησης (3, 4, 5).

Στην φόρμα 1 παρουσιάζονται όλα τα components που τοποθετήθηκαν στην προηγούμενη άσκηση, τα οποία τα αφήνουμε και δεν τα πειράζουμε.

 

3. Προσθέστε νέα φόρμα : Fileà New Form

4. Στην φόρμα 3 που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components) όπως στο παρακάτω σχήμα.

 

ADOQuery             (5 φορές)                       (γραμμή εργαλείων ADO)

DataSource          (5 φορές)                       (γραμμή εργαλείων Data Aceess)

 

DBLookUpComboBox (4 φορές)

                                  (γραμμή εργαλείων Data Controls)

 

DBGrid                  (1 φορά)                        (γραμμή εργαλείων Data Controls)

 

Label                     (6 φορές)                       (γραμμή εργαλείων Standard)

(όπου απαιτείται πχ Τίτλος καρτέλας)

 

Στην Form1 τοποθετήστε ένα κουμπί Button το οποίο θα ανοίγει την Form3 μέσα από την Form1

Button                                                                   (γραμμή εργαλείων Standard)

 

όπως φαίνονται στην παρακάτω εικόνα

 

 

 

 

 

 

4. Επικοινωνία φορμών

Δεν ξεχνάμε να κάνουμε include τα  header files της νέας φόρμας στην αρχική και το αντίθετο ώστε να μπορεί η κάθε φόρμα να «βλέπει» τα αντικείμενα της άλλης φόρμας.

Μεταβείτε στην Form1 κάνοντας κλικ πάνω στην φόρμα

FileàInclude Unit Hdr à Unit3

 

Μεταβείτε στην Form2 κάνοντας κλικ πάνω στην φόρμα

FileàInclude Unit Hdr à Unit1

 

(ΠΡΟΣΟΧΗ: Σε περίπτωση που δεν υπάρχει η προηγούμενη άσκηση3,4,5 για να συνεχίσετε, δημιουργήστε νέο project και αποθηκεύστε το σε νέο φάκελο ΑΣΚΗΣΗ6. Η μόνη διαφορά είναι ότι θα πρέπει να προσθέσετε στην νέα φόρμα ένα ADOConnection ώστε να συνδεθείτε με την βάση δεδομένων. Σε αυτή την περίπτωση δεν χρειάζεται το βήμα 4 γιατί δεν υπάρχουν πολλές φόρμες)

 

5. Ρυθμίσεις χειριστηρίων (components) της Φόρμας 3

ADOQuery1àConnection= Form1à ADOConnection1

ADOQuery1àSQLà”Select * From AYTOKINHTA”

ADOQuery1àActive=true;

DataSource1àDataSet=ADOQuery1

 

DBLookUpComboBox1à ListSource=DataSource1       (αντιστοιχεί στα Αυτοκίνητα)

            DBLookUpComboBox1à ListField=MARKA                     (το πεδίο που θα εμφανίζεται)

            DBLookUpComboBox1à KeyField=KP                           (το πρωτεύον κλειδί του πίνακα )

 

Με τις ρυθμίσεις αυτές στο DBLookUpComboBox1 ορίζουμε ότι θα συνδέεται με τα στοιχεία που θα προβάλει το ADOQuery1 της Form2, και θα επιλέγει μια ΜΑΡΚΑ  από τα στοιχεία του πίνακα AYTOKINHTA.

ADOQuery2àConnection= Form1à ADOConnection1

ADOQuery3àConnection= Form1à ADOConnection1

ADOQuery4àConnection= Form1à ADOConnection1

ADOQuery5àConnection= Form1à ADOConnection1

Με τις ρυθμίσεις αυτές συνδέουμε όλα τα ερωτήματα με το ADOConnection της πρώτης φόρμας.

Label1àCaption= “ΚΑΡΤΕΛΑ ΕΠΙΛΟΓΗΣ ΑΥΤΟΚΙΝΗΤΟΥ»

Label2àCaption= “ΔΙΑΛΕΞΕ ΜΑΡΚΑ»

το ίδιο και για τα υπόλοιπα Labels

 

6. Διαδοχικά Δυναμικά Ερωτήματα SQL

 

Πατήστε διπλό κλικ πάνω στο DBLookUpComboBox1 ώστε να ανοίξει το παράθυρο του Unit3.cpp για να γραφτεί κώδικας εντολών. Με τις εντολές αυτές μόλις επιλεχθεί μια ΜΑΡΚΑ από την λίστα θα εκτελεστεί ένα ερώτημα που θα προβάλει τα ΜΟΝΤΕΛΑ των αυτοκινήτων που έχουν την μάρκα που επιλέχθηκε. Το ερώτημα αυτό εκτελείται από το ADOQuery2 και συνδέεται με το επόμενο DBLookUpComboBox2.

Γράψτε τις παρακάτω εντολές στην μέθοδο DBLookupComboBox1Click:

 

void __fastcall TForm3::DBLookupComboBox1Click(TObject *Sender)

{

ADOQuery2->SQL->Text="Select KA,MONTELO From AYTOKINHTA \

                        Where MARKA='"+DBLookupComboBox1->Text+"'";

ADOQuery2->ExecSQL();

ADOQuery2->Active=true;

DataSource2->DataSet=ADOQuery2;

DBLookupComboBox2->ListSource= DataSource2;

DBLookupComboBox2->ListField="MONTELO";

DBLookupComboBox2->KeyField="KA";

}

//-----------------------------------------------------------------------

 

Πατήστε διπλό κλικ πάνω στο DBLookUpComboBox2 ώστε να ανοίξει το παράθυρο του Unit3.cpp για να γραφτεί κώδικας εντολών. Με τις εντολές αυτές μόλις επιλεχθεί ένα ΜΟΝΤΕΛΟ από την λίστα θα εκτελεστεί ένα ερώτημα που θα προβάλει τα ΧΡΩΜΑΤΑ των αυτοκινήτων που έχουν την μάρκα και το μοντέλο που επιλέχθηκε στα δύο προηγούμενα DBLookUpComboBox. Το ερώτημα αυτό εκτελείται από το ADOQuery3 και συνδέεται με το επόμενο DBLookUpComboBox3.

 

void __fastcall TForm3::DBLookupComboBox2Click(TObject *Sender)

{

ADOQuery3->SQL->Text="Select KA,XROMA From AYTOKINHTA \

                        Where MARKA='"+DBLookupComboBox1->Text+"'  AND \

                             MONTELO='"+DBLookupComboBox2->Text+"'";

ADOQuery3->ExecSQL();

ADOQuery3->Active=true;

DataSource3->DataSet=ADOQuery3;

DBLookupComboBox3->ListSource= DataSource3;

DBLookupComboBox3->ListField="XROMA";

DBLookupComboBox3->KeyField="KA";

}

//-----------------------------------------------------------------------

 

Πατήστε διπλό κλικ πάνω στο DBLookUpComboBox3 ώστε να ανοίξει το παράθυρο του Unit3.cpp για να γραφτεί κώδικας εντολών. Με τις εντολές αυτές μόλις επιλεχθεί ένα ΧΡΩΜΑ από την λίστα θα εκτελεστεί ένα ερώτημα που θα προβάλει τις ΤΙΜΕΣ ΕΝΟΙΚΙΑΣΗΣ των αυτοκινήτων που έχουν την μάρκα και το μοντέλο και το χρώμα που επιλέχθηκε στα τρία προηγούμενα DBLookUpComboBox. Το ερώτημα αυτό εκτελείται από το ADOQuery4 και συνδέεται με το επόμενο DBLookUpComboBox4.

 

void __fastcall TForm3::DBLookupComboBox3Click(TObject *Sender)

{

ADOQuery4->SQL->Text="Select KA,TIMH_ENOIKIASIS From AYTOKINHTA \

                        Where MARKA='"+DBLookupComboBox1->Text+"'  AND \

                             MONTELO='"+DBLookupComboBox2->Text+"' AND \

                             XROMA='"+DBLookupComboBox3->Text+"'";

ADOQuery4->ExecSQL();

ADOQuery4->Active=true;

DataSource4->DataSet=ADOQuery4;

DBLookupComboBox4->ListSource= DataSource4;

DBLookupComboBox4->ListField="TIMH_ENOIKIASIS";

DBLookupComboBox4->KeyField="KA";

}

//-----------------------------------------------------------------------

 

Πατήστε διπλό κλικ πάνω στο DBLookUpComboBox4 ώστε να ανοίξει το παράθυρο του Unit3.cpp για να γραφτεί κώδικας εντολών. Με τις εντολές αυτές μόλις επιλεχθεί μια ΤΙΜΗ ΕΝΟΙΚΙΑΣΗ από την λίστα θα εκτελεστεί ένα ερώτημα που θα προβάλει ΟΛΑ τα στοιχεία των αυτοκινήτων που έχουν την μάρκα και το μοντέλο το χρώμα και την τιμή που επιλέχθηκε στα τέσσερα προηγούμενα DBLookUpComboBox. Το ερώτημα αυτό εκτελείται από το ADOQuery5 και συνδέεται με το DBGrig για να προβληθούν όλα τα στοιχεία από τα διαθέσιμα αυτοκίνητα που πληρούν τα παραπάνω κριτήρια.

 

void __fastcall TForm3::DBLookupComboBox4Click(TObject *Sender)

{

ADOQuery5->SQL->Text="Select * From AYTOKINHTA \

                        Where MARKA='"+DBLookupComboBox1->Text+"'  AND \

                             MONTELO='"+DBLookupComboBox2->Text+"' AND \

                             XROMA='"+DBLookupComboBox3->Text+"'AND \

                             TIMH_ENOIKIASIS='"+DBLookupComboBox4->Text+"'";

ADOQuery5->ExecSQL();

ADOQuery5->Active=true;

DataSource5->DataSet=ADOQuery5;

DBGrid1->DataSource= DataSource5;

}

//-----------------------------------------------------------------------

 

Το αποτέλεσμα θα είναι η παρακάτω φόρμα

 

 

7. Άνοιγμα φόρμας από κουμπί (button)

Μεταβείτε στην Form1 κάνοντας κλικ πάνω στην φόρμα

Τοποθετήστε το κουμπί που θα ανοίγει την φόρμα3

Αλλάξτε την ιδιότητα Caption και γράψτε το κείμενο που θα εμφανίζεται πάνω στο κουμπί.

Button1àCaption=”Open Form3”

 

Πατήστε διπλό κλικ πάνω στο Button1 ώστε να ανοίξει το παράθυρο του Unit1.cpp για να γραφτεί κώδικας εντολών. Γράψτε την παρακάτω εντολή στην μέθοδο Button1Click:

void __fastcall TForm1::Button1Click(TObject *Sender)

{

Form3->ShowModal();

// Ανοίγει την φόρμα3 χωρίς δυνατότητα μετακίνησης

// στην φόρμα1 πριν κλείσει η φόρμα 3.

// με την εντολή Form3->Show(); γίνεται μετακίνηση σε κάθε ανοιχτή φόρμα.

}

8. Αποθηκεύστε το Project του  Builder με την επιλογή Save All και εκτελέστε το με την επιλογή Run     Κάντε αποθηκεύσεις με την επιλογή Save All συχνά και την ανάπτυξη της εφαρμογής.


 Λύση 7

 

Για την υλοποίηση της άσκησης αυτής ακολουθήστε τα παρακάτω βήματα:

1.       Κάντε Restore ή Attach την βάση ENOIKIASEIS_AYTOKINHTON_EPITHETO που έχετε δημιουργήσει σε παλαιότερη άσκηση.

2.       Δημιουργία ODBC Connection.

α.   Έναρξη à Πίνακας Ελέγχου à Εργαλεία Διαχείρισης à Πηγές Δεδομένων(ODBC) à DSN χρήστη à Προσθήκη…

            β.         Επιλέξτε το πρόγραμμα οδήγησης (driver) SQL Server και πιέστε Τέλος.

 

                γ.             Γράψτε στην θέση               Όνομα : DB_ENOIKIASEIS_EPITHETO_SAS

    Αυτό είναι το όνομα που θα έχει το ODBC connection string και θα το καλείται.

                                                                Περιγραφή : Data Base ENOIKIASEIS AYTOKINHTON with ODBC

                   Είναι μια περιγραφή της βάσης που θα συνδεθείται

                                                                Διακομιστής: AYTOMATISMOY ή  localhost  ή  τίποτε

Είναι το όνομα του SQL Server με το οποίο θα συνδεθεί το ODBC. Εάν δεν το γνωρίζεται και ο SQL Server τρέχει στον υπολογιστή που δουλεύεται και θέλετε να μάθετε το όνομά του, τότε μετακινήστε το ποντίκι δεξιά κάτω στην γμαμμή εργασιών πάνω από το εικονίδιο του SQL Server και θα εμφανιστεί ένα μήνυμα με το όνομα του Server.

               

 

 

δ.             Στην καρτέλα αυτή ζητείται ο τρόπος με τον οποίο θα ελεγχθεί η ταυτότητα του χρήστη που   πρόκειται να συνδεθεί με την βάση. Υπάρχουν δύο τρόποι. Επιλέξτε τον δεύτερο τρόπο, που ελέγχει ο SQL Server την ταυτότητα του χρήστη από το όνομα και τον κωδικό. 

Αναγνωριστικό σύνδεσης : sa    (συνδέεστε ως System Administrators και έχετε πλήρη δικαιώματα)

Κωδικός Πρόσβασης: κενό                           (εκτός αν τον άλλαξε ο DBA)

                Επόμενο..

 

 

 

ε.  Στο παράθυρο αυτό αλλάξτε την προεπιλεγμένη βάση που είναι η master με την δική σας βάση δεδομένων. Επιλέξτε από την αναδιπλούμενη λίστα την βάση που δημιουργήσατε ENOIKIASEIS_AYTΟKINHTON_EPITHETO και πιέστε Επόμενο.

 

 

 

 

 

                στ.           Στην καρτέλα αυτή δεν επιλέγετε τίποτε. Απλά πιέστε Επόμενο.

 

               

ζ.             Πιέστε Δοκιμή του αρχείου προέλευσης δεδομένων  για να ελέγξετε αν συνδέεστε σωστά με την βάση που επιλέξατε. Εάν το μήνυμα που θα προβληθεί είναι ΜΕ ΕΠΙΤΥΧΙΑ τότε ολοκληρώσατε επιτυχώς την διαδικασία δημιουργίας ODBC Connection.

 

 

 

Μόλις δημιουργήσατε μία γέφυρα επικοινωνίας μεταξύ την βάσης σας και οποιασδήποτε εφαρμογής ή γλώσσας θελήσει να συνδεθεί με αυτή την βάση.

 

Στη συνέχεια ανοίγουμε την C++ Builder για δημιουργήσουμε τις φόρμες, που θα έχει η εφαρμογή και θα επικοινωνεί με την βάση ώστε να διαχειρίζεται τα δεδομένα.

3.       Ανοίξτε τον Builder και

4.       Στην νέα φόρμα που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components).

Query  ή εναλλακτικά  Table                              (γραμμή εργαλείων BDE)

DataSource                                                      (γραμμή εργαλείων Data Aceess)

 

DBGrid                                                             (γραμμή εργαλείων Data Controls)

DBNavigator                                                    (γραμμή εργαλείων Data Controls)

Label                                                               (γραμμή εργαλείων Standard)

 

 

 

5.       Αποθηκεύστε το Project σε νέο υποφάκελο μέσα στον φάκελό σας πχ. D:\....…\ΕΠΙΘΕΤΟ\ΕΡΓΑΣΙΑ8

 

Η διαδικασία σύνδεσης με την βάση και την εκτέλεση ερωτήματος είναι παρόμοια με αυτή που μάθατε και ακολουθείτε για την σύνδεση με  ADO.

Για να εμφανιστούν τα παραπάνω στην φόρμα σας θα πρέπει να ρυθμίσετε τις παρακάτω ιδιότητες των χειριστηρίων.

 

Query1             DataBaseName=DB_ENOIKIASEIS_EPITHETO_SAS    (το όνομα του ODBC

          driver που δημιουργήθηκε με την προηγούμενη διαδικασία)

                                    SQL   … = Select  *  From PELATES

                                    Active =true

DataSource1                DataSet =Query1

 

Στην ιδιότητα SQL του Query μπορεί να γραφεί οποιοδήποτε ερώτημα SQL. Στον Builder υπάρχει η δυνατότητα σύνδεσης με πίνακα με το χειριστήριο Table με το οποίο μπορεί να γίνει σύνδεση με οποιονδήποτε πίνακα της βάσης ρυθμίζοντας αντίστοιχα και την ιδιότητα TableName

ΠΡΟΣΟΧΗ: Μην συγχέεται το Query με το ADOQuery

DBGrid                         DataSource= DataSource1

 

DBNavigator                DataSource= DataSource1                    

 

 

6.       Δημιουργήστε Νέα Φόρμα

7.       Συνδέστε τις φόρμες μεταξύ τους με Include Unit

8.       Επαναλάβετε τα βήματα 4 έως 5 ώστε στην νέα φόρμα να εκτελείται ένα ερώτημα που θα παρουσιάζει  τα αυτοκίνητα και θα τα προβάλει στο DBGrid.

 

9.       Δημιουργήστε Νέα Φόρμα

10.   Εκτέλεση Δυναμικού Ερωτήματος SQL όπως στην Άσκηση 5

Αφού επιλεχθεί το επιθυμητό επίθετο, θα εκτελεστεί ένα ερώτημα SQL και θα προβληθεί σε ένα DBGrid, το ιστορικό ενοικιάσεων αυτοκινήτων του πελάτη που επιλέχθηκε.

Σε αυτή την περίπτωση θα χρησιμοποιείτε πάντα Query από την γραμμή εργαλείων BDE του Builder και όχι από την γραμμή εργαλείων ADO.

 

 


Λύση 8

 

Για την υλοποίηση της άσκησης αυτής ακολουθήστε τα παρακάτω βήματα:

1.       Κάντε Restore ή Attach την βάση ENOIKIASEIS_AYTOKINHTON_EPITHETO που έχετε δημιουργήσει σε παλαιότερη άσκηση.

2.       Προσθέστε τον πίνακα ΑΥΤΟΚΙΝΗΤΑ μια στήλη (πεδίο) με όνομα FOTO τύπου varchar(100). Η προσθήκη αυτή θα γίνει με την εκτέλεση ερωτήματος.

Δεξί κλίκ πάνω στον πίνακα AYTOKINHTA à Open Table à Query

 

 

3.   Ενημερώστε τον πίνακα ΑΥΤΟΚΙΝΗΤΑ έτσι ώστε η εγγραφή με ΚΑ=1 να  έχει στο πεδίο FOTO το παρακάτω Path

 

3.       Ανοίξτε την ζωγραφική

Δημιουργήστε τέσσερις (4) εικόνες bmp και αποθηκεύστε τις στην διαδρομή (path) D:\AYT\Database\Baseis2 με ονόματα FOTO1.bmp, FOTO2.bmp, FOTO3.bmp, FOTO4.bmp    

  

4. Ανοίξτε τον Builder και

 

5. Στην φόρμα 1 που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components) όπως στο παρακάτω σχήμα.

 

ADOConnection   (1 φορά)                        (γραμμή εργαλείων ADO)

 

ADOQuery             (2 φορές)                       (γραμμή εργαλείων ADO)

DataSource          (2 φορές)                       (γραμμή εργαλείων Data Aceess)

 

DBEdit                   (4 φορές)                       (γραμμή εργαλείων Data Controls)

 

Label                     (4 φορές)                       (γραμμή εργαλείων Standard)

(όπου απαιτείται πχ Όνομα Πεδίο, Τίτλος καρτέλας κλπ)

Image                              (1 φορά)                                    (γραμμή εργαλείων Additional)

OpenPictureDialog           (1 φορά)                                    (γραμμή εργαλείων Dialogs)

 

DBLookUpComboBox              (1 φορά)

                                                          (γραμμή εργαλείων Data Controls)

 

DBNavigator                           (1 φορά)                                    (γραμμή εργαλείων Data Controls)

 

Button                               (1 φορά)                                    (γραμμή εργαλείων Standard)

όπως φαίνονται στην παρακάτω εικόνα

 

 

6. Αποθηκεύστε το Project σε νέο υποφάκελο μέσα στον φάκελό σας πχ. ΕΠΙΘΕΤΟ\ΕΡΓΑΣΙΑ9

 

7. Σύνδεση Βάσης Δεδομένων με  C++ BUILDER και ρύθμιση ιδιοτήτων

Ρυθμίστε τις παρακάτω ιδιότητες για τα παραπάνω χειριστήρια όπως στην Άσκηση2

 

ADOConnection1         Connection StringàBuildàMicrosoft OLEDB Provider   for SQL Serverà                                        1. Επιλογή διακομιστή

                                                                        2. Όνομα Χρήστη=sa

                                                                            Κωδικός πρόσβασης =κενό

                                                                        3. Επιλογή βάσης δεδομένων=ΑΥΤΟΚΙΝΗΤΑ

4. Δοκιμή σύνδεσης

                                    Connected=true

ADOQuery1                  Connection=ADOConnection1

                                    SQL   … =        Select    * ,  MARKA+'  '+MONTELO   AS   MM

From AYTOKINHTA

                                   

                                    Active =true

 

DataSource1                DataSet =ADOQuery1

 

ADOQuery2                  Connection=ADOConnection1

DBEdit1                        DataSource= DataSource1

                                    DataField=ΚΑ

Ομοίως για τα υπόλοιπα DBEdit όπου DataField ίσο με το αντίστοιχο πεδίο του πίνακα.

Label1                         Caption=Κείμενο που περιγράφει τα πεδία πχ KA

DBNavigator                DataSource= DataSource1

 

DBLookUpComboBox1à ListSource=DataSource1       (αντιστοιχεί στo ADOQuery1, Αυτοκίνητα)

DBLookUpComboBox1à ListField=MM               (το πεδίο ΜΜ=MARKA και MONTELO μαζί)

DBLookUpComboBox1à KeyField=KA               (το πρωτεύον κλειδί του πίνακα )

 

 

Τα αντικείμενα  Image1 και OpenPictureDialog1 τα προγραμματίζουμε γράφοντας κώδικα.

Το Image1 το χρησιμοποιούμε για να προβάλει τις εικόνες που αντιστοιχούν σε κάθε εγγραφή αυτοκινήτου.

Το OpenPictureDialog1 το χρησιμοποιούμε για να βρίσκουμε στον δίσκο αρχεία με εικόνες έτσι ώστε όταν τα επιλέξουμε, να αποθηκευτεί η διαδρομή τους (path) και το όνομα του αρχείου στο πεδίο FOTO του πίνακα AYTOKINHTA.

 

8. Πατήστε διπλό κλικ στο Button1 και γράψτε τις παρακάτω εντολές

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

// Όταν πιεστεί με κλικ το Button1 τότε εκτελείται το OpenPictureDialog1

// Αφου βρεθεί ένα αρχείο από το δίσκο κρατάμε το όνομα και το path

// το αναθέτουμε στην μεταβλητή fotoname

// εκτελούμε το ερώτημα  ADOQuery2 ώστε να αλλάξουμε την τιμή του πεδίου FOTO

// ώστε να γίνει ίδια με το path της μεταβλητής fotoname για την εγγραφή

// με ΚΑ ίσο με την τιμή του DBEdit1

 

AnsiString fotoname;

OpenPictureDialog1->Execute();

fotoname=OpenPictureDialog1->FileName;

DBEdit4->Text=fotoname;

ADOQuery2->SQL->Text="Update AYTOKINHTA Set Foto='"+fotoname+"' where \

                        KA="+DBEdit1->Text;

 

ADOQuery2->ExecSQL();           //εκτελούμε το ερώτημα

ADOQuery1->Active=false;        // απενεργοποιούμε το ερώτημα

ADOQuery1->Active=true;         // ΞΑΝΑενεργοποιούμε το ερώτημα

                                // για να φρεσκαριστούν τα δεδομένα

//  Φορτώνεται η εικόνα της κάθε εγγραφής όταν το πεδίο DBEdit4

//  δεν είναι κενό. Όταν είναι κενό φορτώνεται μια φώτο χωρίς περιεχόμενο

 

if (DBEdit4->Text != "")  Image1->Picture->LoadFromFile(DBEdit4->Text);

if (DBEdit4->Text == "")  \

Image1->Picture->LoadFromFile("d:\\AYT\\Database\\Baseis2\\no_image.bmp");

 

// χρησιμοποιούμε το διπλό \\ όταν γράφουμε το path ενός αρχείου στον Builder

// γιατί το σύμβολο \ μόνο του δηλώνει την συνέχιση μια γραμμής εντολής στην

// επόμενη  γραμμή.

// Το διπλό slash // δηλώνει σχόλια.

}

9. Πατήστε διπλό κλικ στην  Form1 και γράψτε τις παρακάτω εντολές

 

void __fastcall TForm1::FormCreate(TObject *Sender)

{                                              

// Μόλις ανοίξει η φόρμα1 Φορτώνει την εικόνα που

// αντιστοιχεί στην 1η εγγραφή του πίνακα ΑΥΤΟΚΙΝΗΤΑ

 

Image1->Picture->LoadFromFile(DBEdit4->Text);   }

 

 

10. Πατήστε διπλό κλικ στο DBNavigator1 και γράψτε τις παρακάτω εντολές

 

void __fastcall TForm1::DBNavigator1Click(TObject *Sender,

      TNavigateBtn Button)

{

//  Όταν πιέζονται τα κουμπιά του DBNavigator για μετακίνηση στις εγγραφές

//  τότε φορτώνεται η εικόνα της κάθε εγγραφής όταν το πεδίο DBEdit4

//  δεν είναι κενό. Όταν είναι κενό φορτώνεται μια φώτο χωρίς περιεχόμενο

 

if (DBEdit4->Text != "")  Image1->Picture->LoadFromFile(DBEdit4->Text);

if (DBEdit4->Text == "")  \

Image1->Picture->LoadFromFile("d:\\AYT\\Database\\Baseis2\\no_image.bmp");

}

 

11. Πατήστε διπλό κλικ στο DBLookupComboBox1 και γράψτε τις παρακάτω εντολές

void __fastcall TForm1::DBLookupComboBox1Click(TObject *Sender)

{

//  Όταν επιλέγεται μια τιμή από το DBLookupComboBox1 για μετακίνηση στις

//  εγγραφές τότε φορτώνεται η εικόνα της κάθε εγγραφής όταν το πεδίο DBEdit4

//  δεν είναι κενό. Όταν είναι κενό φορτώνεται μια φώτο χωρίς περιεχόμενο

 

if (DBEdit4->Text != "")  Image1->Picture->LoadFromFile(DBEdit4->Text);

if (DBEdit4->Text == "")  \

Image1->Picture->LoadFromFile("d:\\AYT\\Database\\Baseis2\\no_image.bmp");

}

 

12. Αποθηκεύστε το Project στον υποφάκελο σας με την επιλογή FileàSave All

 

13. Εκτελέστε το Project με την επιλογή Run. Το αποτέλεσμα θα είναι μια εφαρμογή όπως η παρακάτω εικόνα.


 Λύση 9

 

1. Συνδεθείτε με Attach (ή κάντε Restore) στην βάση ENOIKIASEIS_AYTOKINHTON.

 

 

 

2. Ανοίξτε τον Builder και

 

3. Στην φόρμα 1 που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components)

 

ADOConnection   (1 φορά)                        (γραμμή εργαλείων ADO)

 

ADOQuery             (1 φορά)                        (γραμμή εργαλείων ADO)

 

QuickRep               (1 φορά)                        (γραμμή εργαλείων QReport)

 

Button                   (1 φορά)                        (γραμμή εργαλείων Standard)

 

 

4. Αποθηκεύστε το Project σε νέο υποφάκελο μέσα στον φάκελό σας πχ. ΕΠΙΘΕΤΟ\ΕΡΓΑΣΙΑ_9

 

5. Σύνδεση Βάσης Δεδομένων με  C++ BUILDER και ρύθμιση ιδιοτήτων

Ρυθμίστε τις παρακάτω ιδιότητες για τα παραπάνω χειριστήρια

 

ADOConnection1         Connection StringàBuildàMicrosoft OLEDB Provider for SQL    Serverà                           1. Επιλογή διακομιστή

                                                                        2. Όνομα Χρήστη=sa

                                                                            Κωδικός πρόσβασης =κενό

                                                                        3. Επιλογή βάσης δεδομένων=ΕΝΟΙΚΙΑΣΕΙΣ_ΑΥΤ

4. Δοκιμή σύνδεσης

                                    Connected=true

 

ADOQuery1                  Connection=ADOConnection1

                                    SQL   … = Select * From PELATES Order by EPITHETO

                                    Active =true

 

QuickRep1                   DataSet= ADOQuery1

 Από τις ιδιότητες του QuickRep1 ρυθμίστε τα παρακάτω

             

   Bandsà         HasColumnHeader=true              (εμφανίζει την κεφαλίδα για ονόματα πεδίων)

                        HasDetailr=true              (εμφανίζει τις λεπτομέρειες με τις τιμές των πεδίων)

                        HasPageFooter=true      (εμφανίζει το υποσέλιδο της σελίδας)

                        HasPageHeader=true     (εμφανίζει την κεφαλίδα της σελίδας)

 

 

6. Πάνω στο  QuickRep1 τοποθετήστε τα παρακάτω χειριστήρια (components)

QRDBText            (4 φορές)                       (γραμμή εργαλείων QReport)

 

QRLabel              (7 φορές)                       (γραμμή εργαλείων QReport)

 

 

 

Τοποθετήστε το πρώτο QRLabel στην περιοχή του QuickReport που ονομάζεται PageHeader

QRLabel1à Caption=ΑΛΦΑΒΗΤΙΚΗ ΚΑΤΑΣΤΑΣΗ ΠΕΛΑΤΩΝ

 

Τοποθετήστε  QRLabel στην περιοχή του QuickReport που ονομάζεται ColumnHeader

QRLabel2à Caption=ΚΩΔΙΚΟΣ

QRLabel3à Caption=ΕΠΙΘΕΤΟ             ομοίως για τα υπόλοιπα

 

Τοποθετήστε  QRLabel στην περιοχή του QuickReport που ονομάζεται PageFooter

QRLabel6à Caption=ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩ ΙΙ

QRLabel7à Caption=ΑΣΚΗΣΗ10          

 

Τοποθετήστε  QRDBText  στην περιοχή του QuickReport που ονομάζεται Detail

QRDBText1      à         DataSet=ADOQuery1  

                                    DataField=KP

 

QRDBText2      à         DataSet=ADOQuery1  

                                    DataField=ΕPITHETO

 Ομοίως για τα υπόλοιπα

 

 

Button1à Caption= Show Report

 

Διπλό κλικ στο Button1

Και γράψτε τον παρακάτω κώδικα

 

 

 

 

 

6. Τρέξτε το πρόγραμμα και πατήστε το κουμπί Show Report ώστε να εμφανιστεί η παρακάτω φόρμα. Τα αποτελέσματα αυτά μπορείτε να τα μορφοποιήσετε, να τα εκτυπώσετε να μετακινηθείτε ανάμεσα στις πιθανές σελίδες της αναφοράς.

 

 

 

7. Επαναλάβετε τα παραπάνω βήματα, δημιουργώντας μια έκθεση-αναφορά που θα παρουσιάζει αλφαβητικά τα αυτοκίνητα ανά μάρκα και μοντέλο.

 

8. (Άσκηση για το Σπίτι) Επαναλάβετε τα παραπάνω βήματα, δημιουργώντας μια έκθεση-αναφορά που θα παρουσιάζει ένα ερώτημα ομαδοποίησης. Δηλ. στην αρχή της ομάδος να φαίνεται το Επίθετο και Όνομα του πελάτη και κάτω από αυτό να παρουσιάζονται αναλυτικά το ιστορικό των ενοικιάσεων που έχει κάνει καθώς και το συνολικό ποσό που πλήρωσε.


Λύση 10

 

1. Συνδεθείτε με Attach (ή κάντε Restore) στην βάση ENOIKIASEIS_AYTOKINHTON.

 

2. Στις Αποθηκευμένες διαδικασίες (Stored Procedures)  πιέστε:

 δεξί κλικàNew Stored Procedure..   και γράψτε την παρακάτω διαδικασία η οποία παίρνει μία τιμή εισόδου που την κρατάει στην μεταβλητή @POSOSTO και ενημερώνει την ΤΙΜΗ ΕΝΟΙΚΙΑΣΗΣ του πίνακα ΑΥΤΟΚΙΝΗΤΑ αυξάνοντας την κατά το ποσοστό εισόδου.

 

 

 

Για να ελέγξετε την σωστή σύνταξη της διαδικασίας πιέστε το κουμπί Check Syntax και σε περίπτωση που όλα είναι σωστά θα σας εμφανίσει το παρακάτω μήνυμα.

 

Ανοίξτε το πίνακα αυτοκίνητα Δεξί κλικàOpen TableàReturn All Rows  θα σας εμφανίσει τις γραμμές του πίνακα Αυτοκίνητα πριν εκτελέσετε τη διαδικασία AFXISI_TIMIS

 

2.       Για να εκτελέσετε την παραπάνω διαδικασία Δεξί κλικàOpen TableàQuery 

Γράψτε την παρακάτω εντολή και τρέξτε το ερώτημα με το   Όταν εκτελεστεί η διαδικασία θα αυξηθεί η τιμή ενοικίασης κατά 10%.

 

 

 

Ανοίξτε πάλι τον πίνακα αυτοκίνητα Δεξί κλικàOpen TableàReturn All Rows  θα σας εμφανίσει τις ενημερωμένες γραμμές του πίνακα Αυτοκίνητα

 

 

ΔΗΜΙΟΥΡΓΙΑ ΣΚΑΝΔΑΛΗΣ (trigger)

 

Σκανδάλες ονομάζουμε τις διαδικασίες οι οποίες εκτελούνται αυτόματα μόλις ενημερώσουμε ή εισάγουμε ή διαγράψουμε τιμές σε ένα πίνακα.

Θα χρησιμοποιήσουμε μια σκανδάλη  για να ενημερώνουμε αυτόματα το  υπολογιζόμενο πεδίο ΤΕΛΙΚΟ ΠΟΣΟ το οποία προκύπτει από το άθροισμα του ΠΟΣΟΥ ΠΛΗΡΩΜΗΣ και της ΧΡΕΩΣΗΣ ΖΗΜΙΑΣ

 

3.       Στον πίνακα ΕΝΟΙΚΙΑΣΗ πιέστε δεξί κλικàΌλες οι Εργασίες àManage Triggers

 

 

Γράψτε τις παρακάτω εντολές και ελέγξτε για την σωστή σύνταξη.

 

 

4. Ανοίξτε το πίνακα ΕΝΟΙΚΙΑΣΗ και εισάγετε μια νέα εγγραφή χωρίς να δώσετε τιμή στο πεδίο TELIKO_POSO. Θα δείτε ότι μόλις εισάγετε τιμές στο POSO_PLHROMHS και στο XREOSH_ZHMIAS και πατήσετε TAB για να πάτε στην νέα εγγραφή, τότε θα ενημερωθεί αυτόματα το πεδίο TELIKO_POSO.

 

5. Στον Πίνακα PELATES προσθέστε ένα ακόμη πεδίο με όνομα HLIKIA τύπου INT (ακέραιος) και αποθηκεύστε τον πίνακα.

 

6. Στον Πίνακα PELATES δημιουργήστε μια νέα σκανδάλη (trigger) η οποία θα υπολογίζει την ηλικία του κάθε πελάτη από την Ημερομηνία Γέννησης που θα καταχωρείται.  Για το υπολογισμό αυτό θα χρησιμοποιηθούν δύο νέες συναρτήσεις του SQL Server

 

DATEDIFF( YEAR, Ημερομηνία αρχής, Ημερομηνία Τέλους)

 

Η συνάρτηση αυτή υπολογίζει την διαφορά μεταξύ δύο ημερομηνιών και επιστρέφει την διαφορά αυτή σε ημέρες (DAY), χρόνια (YEAR), εβδομάδες (WEEK) κλπ.

 

GETDATE( )      Η συνάρτηση αυτή επιστέφει την τρέχουσα Ημερομηνία.

 

Γνωρίζοντας αυτές τις συναρτήσεις γράψτε την παρακάτω σκανδάλη.

 

 

7. Ανοίξτε το πίνακα PELATES και εισάγετε μια νέα εγγραφή χωρίς να δώσετε τιμή στο πεδίο HLIKIA. Θα δείτε ότι μόλις εισάγετε τιμή στην ΗΜ_GENNHSIS και πατήσετε TAB για να πάτε στην επόμενη εγγραφή, τότε θα ενημερωθεί αυτόματα το πεδίο HLIKIA.


Λύση 11

 

 

1. Ανοίξτε τον SQL Query Analyzer , εντοπίστε την βάση δεδομένων που δημιουργήσατε στην άσκηση 3 ΕΝΟΙKIASEIS_AYTOKINHTON και πατήστε διπλό κλικ για να αναδιπλωθούν τα αντικείμενα της.

 

2. Επιλέξτε τον Πίνακα ΑΥΤΟΚΙΝΗΤΑ. Δεξί κλικ πάνω του. Εμφανίζεται το παρακάτω μενού της εικόνας όπου μπορείτε να δημιουργήσετε δικά σας script σε παράθυρο, σε αρχείο ή στο πρόχειρο με τις διαθέσιμες εντολές Create, Drop, Select, Insert, Update, Delete. Όλες αυτές οι εντολές αφορούν τον πίνακα που επιλέξατε. Πχ επιλέξτε

 

Script object to New Window AsàCreate

 

 

Θα εμφανιστεί το παρακάτω ερώτημα:

 

CREATE TABLE [AYTOKINHTA] (

                [KA] [int] NOT NULL ,

                [MARKA] [varchar] (20) COLLATE Greek_CI_AS NULL ,

                [MONTELO] [varchar] (20) COLLATE Greek_CI_AS NULL ,

                [AR_KYKLOFORIAS] [varchar] (20) COLLATE Greek_CI_AS NULL ,

                [THESIS] [int] NULL ,

                [PORTES] [int] NULL ,

                [XROMA] [varchar] (10) COLLATE Greek_CI_AS NULL ,

                [TIMH_ENOIKIASIS] [real] NULL ,

                [TYPOS_KAYSIMOY] [varchar] (10) COLLATE Greek_CI_AS NULL ,

                [HMEROM_KYKLOFORIAS] [smalldatetime] NULL ,

                [XILIOMETRA] [int] NULL ,

                CONSTRAINT [PK_AYTOKINHTA] PRIMARY KEY  CLUSTERED

                (

                                [KA]

                )  ON [PRIMARY]

) ON [PRIMARY]

GO

 

Μπορείτε να το αποθηκεύσετε με την εντολή FileàSave As σε ένα αρχείο το οποίο θα έχει κατάληξη .sql

Συγχαρητήρια, δημιουργήσατε το πρώτο σας script file.

 

2. Επαναλάβετε το ίδιο για όλους τους πίνακες της βάσης και αποθηκεύσετε όλα τα Create Table σε ένα αρχείο Επίθετο_script.sql στον φάκελό σας. Εάν καλέσετε αυτό το αρχείο από οποιαδήποτε βάση θα δημιουργηθεί η ίδια δομή πινάκων.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Λύση  12

 

Δημιουργήστε μια ΝΕΑ Βάση Δεδομένων με όνομα  ΑPOTHΙΚΙ_ΕPΙΤΗΕΤΟ

  1. Η βάση αυτή θα περιέχει τους παρακάτω πίνακες:

ΠΡΟΣΟΧΗ: Αντικαταστήστε παρακάτω όλους τους τύπους δεδομένων char με varchar.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


2. Στους παραπάνω πίνακες προσθέστε όσα επιπλέον πεδία πιστεύετε ότι χρειάζονται και περιγράφουν καλύτερα τις οντότητες των πινάκων. Όπως πχ στον Πίνακα

Paragelies

προσθέστε τα πεδία    ΗΜ_Paraggelias                      date,

Tropos_Pliromis                       varchar(20),

Topos_Paradosis                     varchar(20),

 

Pelates

προσθέστε τα πεδία    HM_GENNHSIS             date,

FOTO                                       varchar(100),

HLIKIA                                     int       

 

3. Δημιουργήστε τις συσχετίσεις και το αντίστοιχο Διάγραμμα σχέσεων.

 

4.       Εισάγετε δεδομένα στους πίνακες, τουλάχιστον 3 εγγραφές σε κάθε πίνακα.

 

 

Ανοίξτε τον Builder και

 

5.        Στην φόρμα 1 που θα παρουσιασθεί τοποθετήστε τα παρακάτω χειριστήρια (components) όπως στο παρακάτω σχήμα.

 

ADOConnection   (1 φορά)                        (γραμμή εργαλείων ADO)

 

ADOQuery             (5 φορές)                       (γραμμή εργαλείων ADO)

DataSource          (5 φορές)                       (γραμμή εργαλείων Data Aceess)

DBGrid                  (3 φορές)                       (γραμμή εργαλείων Data Controls)

 

DBNavigator                (4 φορές)                       (γραμμή εργαλείων Data Controls)

 

DBEdit                   (4 φορές)                       (γραμμή εργαλείων Data Controls)

Label                     (8 φορές)                       (γραμμή εργαλείων Standard)

(όπου απαιτείται πχ Όνομα Πεδίο, Τίτλος καρτέλας κλπ)

Button                   (1 φορά)                        (γραμμή εργαλείων Standard)

 

όπως φαίνονται στην παρακάτω εικόνα

 

 

 

 

6. Αποθηκεύστε το Project σε νέο υποφάκελο μέσα στον φάκελό σας πχ. EΠΙΘEΤΟ\EΡΓΑΣΙΑ12

 

7. Σύνδεση Βάσης Δεδομένων με  C++ BUILDER και ρύθμιση ιδιοτήτων

Ρυθμίστε τις παρακάτω ιδιότητες για τα παραπάνω χειριστήρια όπως στην Άσκηση2

ADOConnection1         Connection StringàBuildàMicrosoft OLEDB Provider   for SQL Serverà                                        1. 7.πιλογή διακομιστή

                                                                        2. Όνομα Χρήστη=sa

                                                                            Κωδικός πρόσβασης =κενό

                                                                        3. 7.πιλογή βάσης δεδομένων=ΑPΟΤΗΙΚΙ

4. Δοκιμή σύνδεσης

                                    Connected=true

 

ADOQuery1                  Connection=ADOConnection1

                                    SQL   … =        Select    *

From Apothiki

                                   

                                    Active =true

 

DataSource1                DataSet =ADOQuery1

 

Το ίδιο για τα υπόλοιπα ADOQuery2 μέχρι AQOQuery4 τα οποία θα συνδεθούν με τους πίνακες Pelates, Praggelies, Paraggelies_Pelaton αντίστοιχα

 

Στο ADOQuery5 ρυθμίστε μόνο την σύνδεση με την βάση

ADOQuery5                  Connection=ADOConnection1

 

DBEdit1                        DataSource= DataSource4

                                    DataField=Kodikos_Polisis

Ομοίως για τα υπόλοιπα DBEdit

 

Label1                         Caption=ΑΠΟΘΗΚΗ      

Label2                         Caption=Κείμενο που περιγράφει τα πεδία πχ KA

……….

DBNavigator1               DataSource= DataSource1

DBNavigator2               DataSource= DataSource2

DBNavigator3               DataSource= DataSource3

DBNavigator4               DataSource= DataSource4

 

Button1                         Caption=Update

 

 

 

8. Από την καρτέλα Standard εισάγουμε ένα Button, στο οποίο δίνουμε όνομα Update και το προγραμματίζουμε ανάλογα, έτσι ώστε όταν καταχωρούμε δεδομένα στον πίνακα Παραγγελιές Πελατών, να ενημερώνεται με το πάτημα του κουμπιού η Αποθήκη.

 

 

9.       Αποθηκεύστε τα αρχεία (FileàSave All) και εκτελέστε το πρόγραμμα (Run).

 

 

 

 

10. Ομοίως δημιουργήστε μία φόρμα για την εισαγωγή και την ενημέρωση της αποθήκης όταν γίνονται αγορές από τους προμηθευτές. Σε αυτή την περίπτωση η ποσότητα αγοράς θα προστίθεται στην ποσότητα της αποθήκης.

 

11. Δημιουργήστε νέα φόρμα που θα προβάλει το ιστορικό παραγγελιών ενός πελάτη που θα επιλέγεται από ένα DBLookupComboBox και θα υπολογίσει το συνολικό ποσό για όλες τις παραγγελίες που έκανε ο συγκεκριμένος πελάτης, και θα το προβάλει σε ένα Label όπως στην άσκηση 5.

 

12. Δημιουργήστε νέα φόρμα που θα προβάλει το ιστορικό αγορών από έναν προμηθευτή που θα επιλέγεται από ένα DBLookupComboBox. Θα υπολογίζει το συνολικό ποσό για όλες τις αγορές που έγιναν από τον συγκεκριμένο προμηθευτή και θα το προβάλει σε ένα Label όπως στην άσκηση 5.

 

13. Δημιουργήστε νέα φόρμα που θα προβάλει το ιστορικό κίνησης προϊόντων της αποθήκης.

Θα επιλέγεται ένα προϊόν της αποθήκης από ένα DBLookupComboBox.

Θα προβάλλονται σε ένα DBGrid οι κινήσεις παραγγελιών του προϊόντος.

Σε άλλο DBGrid  θα προβάλλονται οι κινήσεις αγορών του συγκεκριμένου προϊόντος.

Θα υπολογίζεται το συνολικό ποσό για όλες τις παραγγελίες που έγιναν για το συγκεκριμένο προϊόν και θα το προβάλει σε ένα Label όπως στην άσκηση 5.

Θα υπολογίζεται το συνολικό ποσό για όλες τις αγορές που έγιναν για το συγκεκριμένο προϊόν και θα το προβάλει σε ένα Label όπως στην άσκηση 5.

 

14. Δημιουργήστε νέα φόρμα που θα προβάλει την καρτέλα με τα σταθερά στοιχεία του ΠΕΛΑΤΗ, στην οποία θα προβάλλεται και η φωτογραφία του όπως στην άσκηση 8.

 

15. Δημιουργήστε νέα φόρμα που θα προβάλει την καρτέλα με τα σταθερά στοιχεία της ΑΠΟΘΗΚΗΣ, στην οποία θα προβάλλεται και η φωτογραφία του κάθε είδους της αποθήκης όπως στην άσκηση 8.

 

16. Δημιουργήστε μια σκανδάλη στον SQL SERVER με όνομα CALC_AGE  που θα υπολογίζει την ΗΛΙΚΙΑ του κάθε πελάτη μόλις καταχωρείται η Ημερομηνία Γέννησης όπως στην άσκηση 10.

 

17. Δημιουργήστε νέα φόρμα με αναφορά εκτύπωσης QuickReports για τον πίνακα ΠΕΛΑΤΕΣ όπου θα προβάλλονται αλφαβητικά τα σταθερά στοιχεία των ΠΕΛΑΤΩΝ όπως στην άσκηση 9.

 

18. Δημιουργήστε νέα φόρμα με αναφορά εκτύπωσης QuickReports για τον πίνακα ΑΠΟΘΗΚΗ όπου θα προβάλλονται αλφαβητικά τα σταθερά στοιχεία της ΑΠΟΘΗΚΗΣ όπως στην άσκηση 9.

 

19. Αντιγράψτε τα .MDF και .LDF αρχεία της βάσης σας και μαζί με τον φάκελο που έχει όλο το Project του Builder γράψτε τα σε ένα CD φέρτε τα στο εργαστήριο

 

20. Θα εξετασθείτε προφορικά για τη άσκηση αυτή.