Αίτημα πακέτου 1s 8.3. Αιτήματα παρτίδας για ανδρείκελα. Μέθοδοι Run() και RunBatch()

Ιστολόγιο της εταιρείας 1C GOODWILL

Η πλατφόρμα 1C Enterprise σάς επιτρέπει να εκτελείτε πολλά ερωτήματα διαδοχικά τη φορά. Στο 1C αυτό ονομάζεται πακέτο αιτήματος. Μέσα σε ένα πακέτο, κάθε αίτημα χωρίζεται με ερωτηματικό.

Για να επιτευχθεί βήμα προς βήμα εκτέλεση ερωτημάτων σε ένα πακέτο, κατά κανόνα δημιουργούνται αρχικά προσωρινοί πίνακες και στη συνέχεια διαμορφώνονται οι προϋποθέσεις για την κοινή χρήση τους, όπως φίλτρα, συνδέσεις και συνδέσεις. Χάρη σε αυτό, επιτυγχάνεται το τελικό αποτέλεσμα. Οι προσωρινοί πίνακες που λαμβάνονται ως αποτέλεσμα οποιωνδήποτε ερωτημάτων σε μια παρτίδα συνεχίζουν να υπάρχουν μέχρι το τέλος της παρτίδας στο σύνολό της ή έως ότου εκτελεστεί ένα ερώτημα που καταστρέφει τους προσωρινούς πίνακες.

Επιπλέον, η χρήση ερωτημάτων παρτίδας και προσωρινών πινάκων αυξάνει σημαντικά την αναγνωσιμότητα ολόκληρου του τμήματος αυτού του κώδικα. Πολύπλοκα ερωτήματα που περιέχουν επίσης ένθετα ερωτήματα μπορεί να είναι πολύ δύσκολο να γίνουν κατανοητά. Ωστόσο, εάν χωρίσετε ένα μεγάλο σύνθετο ερώτημα σε πολλούς, και χρησιμοποιήσετε ακόμη και προσωρινούς πίνακες, αυτό όχι μόνο θα βελτιώσει την αντίληψη, αλλά στις περισσότερες περιπτώσεις θα οδηγήσει σε αυξημένη απόδοση.

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

Ένα παράδειγμα δημιουργίας πακέτου αιτημάτων σε γλώσσα 1C

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

Ας δημιουργήσουμε ένα απλό αίτημα παρτίδας. Προτείνω να επικολλήσετε αμέσως το κείμενο του αιτήματος στην κονσόλα και στη συνέχεια να ανοίξετε τον κατασκευαστή και να δείτε πώς σχηματίζεται το πακέτο αιτήματος. Προσθέστε ένα νέο αίτημα στην κονσόλα και επικολλήστε το ακόλουθο κείμενο:

Αυτοσυντηρούμενος. Γονέας,

Κωδικός αυτοϋποστήριξης,

Κωδικός γρήγορης επιλογής,

Αυτοσυντηρούμενο Όνομα,

Αυτοστήριγμα.Τύπος,

Αυτοφερόμενο εκτός ισολογισμού,

Ποσοτική,

Λογιστικό Σχέδιο

////////////////////////////////////////////////////////////////////////////////

Αυτοϋποστηριζόμενοι ΤύποιΥποκοντό.Αριθμός γραμμής AS Αριθμός γραμμής,

Self-supportingTypes of Subconto.ViewSubconto AS TypeSubconto,

Self-supportingTypesSubconto.TypeSubconto.Name AS Όνομα,

Self-supportingTypesSubconto.TypeSubconto.ValueType ASValueType,

Self-supportingTypesSubconto.OnlyTurnover AS OnlyTurnover,

Self-supportingTypesSubconto.Summary AS Summative

Λογαριασμός αυτοϋποστήριξης

ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ

Αυτοϋποστήριξη TypesSubconto.NumberLines

Για μένα μοιάζει με αυτό:

Τώρα ας πάμε στον σχεδιαστή ερωτημάτων. Εδώ θα μας ενδιαφέρει η καρτέλα «Αίτημα πακέτου»:

Όπως μπορείτε να δείτε, έχουμε ένα πακέτο δύο αιτημάτων. Κάνοντας διπλό κλικ σε οποιοδήποτε από αυτά, μπορείτε να προχωρήσετε στην επεξεργασία του:

Κάντε κλικ στο κουμπί "Ok" και προσπαθήστε να δείτε το αποτέλεσμα του αιτήματος παρτίδας.

Ας ορίσουμε την παράμετρο "Λογαριασμός". Μπορείτε να επιλέξετε οποιονδήποτε λογαριασμό από το λογιστικό σχέδιο. Όπως πιθανώς ήδη μαντέψατε, αυτό το πακέτο αιτημάτων πρέπει να λαμβάνει ιδιότητες λογαριασμού. Κάντε κλικ στο «Εκτέλεση» και δείτε το αποτέλεσμα:

Μέθοδοι Run() και RunBatch()

Εκτός από τη μέθοδο Execute(), η οποία θα εκτελεί ένα προς ένα όλα τα αιτήματα σε μια παρτίδα και θα επιστρέψει το αποτέλεσμα της τελευταίας αίτησης, στο 1C υπάρχει μια μέθοδος ExecuteBatch(). Επιστρέφει μια σειρά από δείγματα κάθε αίτησης στην παρτίδα. Στο παραπάνω παράδειγμα, αυτή η μέθοδος εκτελείται.

ArrayResults = Query.ExecuteBatch();

Selection1 = ArrayResults.Select();

Αν Select1.Next() Τότε

//Ενέργειες με επιλογή 1

endIf;

SelectionViewsSubconto = ArrayResults.Select();

Η ανάρτηση Εργασία με αιτήματα παρτίδας σε 1C 8.3 και 8.2 εμφανίστηκε για πρώτη φορά στο ιστολόγιο της εταιρείας 1C GOODWILL.

Ο σχεδιαστής ερωτημάτων στα 1C 8.3 και 8.2 είναι ένα ισχυρό εργαλείο ανάπτυξης. Σας επιτρέπει να συνθέσετε ένα κείμενο αίτησης χρησιμοποιώντας ένα ειδικό οπτικό περιβάλλον. Έτσι, για να δημιουργήσετε ένα αίτημα 1C, δεν είναι απαραίτητο να γνωρίζετε την ενσωματωμένη γλώσσα ερωτήματος, αρκεί να πλοηγηθείτε στην απλή και διαισθητική διεπαφή του σχεδιαστή.

Το εργαλείο δημιουργίας ερωτημάτων είναι ένα σύνολο καρτελών, καθεμία από τις οποίες είναι υπεύθυνη για το δικό της μέρος του ερωτήματος. Συμπληρώνοντας λοιπόν την καρτέλα Πίνακες και πεδίαΕπιλέγουμε πίνακες από τους οποίους το ερώτημα 1C θα λάβει τα δεδομένα και τα πεδία αυτών των πινάκων που είναι απαραίτητα για την επίλυση ενός συγκεκριμένου προβλήματος. Γέμισμα στην τοιχοποιία Οροιεπιβάλλουμε όρους στους επιλεγμένους πίνακες για να επιλέξουμε από αυτούς μόνο τα δεδομένα που χρειαζόμαστε κ.ο.κ.

Περιγραφή του σχεδιαστή ερωτημάτων στον επίσημο ιστότοπο 1C 8: v8.1c.ru

Πίνακες και πεδία. ; ; ; ; ; Ένθετα ερωτήματα (σε ανάπτυξη).

Για να καλέσετε τον σχεδιαστή ερωτημάτων 1s 8 στον κώδικα του προγράμματος, πρέπει να:

  • Δημιουργήστε ένα νέο αίτημα
Request = New Request;
  • Ορίστε μια κενή γραμμή κειμένου αιτήματος
Request.Text = "";
  • Τοποθετήστε τον κέρσορα του ποντικιού ανάμεσα στα εισαγωγικά και πατήστε το δεξί κουμπί του ποντικιού. Στο μενού περιβάλλοντος που ανοίγει, επιλέξτε το στοιχείο Κατασκευαστής ερωτήματοςκαι απαντήστε Ναίστην ερώτηση σχετικά με τη δημιουργία νέου αιτήματος. Εάν το κείμενο της αίτησης έχει ήδη γραφτεί, τότε πρέπει να κάνετε κλικ οπουδήποτε μέσα σε αυτό και να καλέσετε τον κατασκευαστή ;

Ας δούμε όλες τις κύριες καρτέλες του εργαλείου δημιουργίας ερωτημάτων χρησιμοποιώντας μικρά παραδείγματα αυξανόμενης πολυπλοκότητας. Αυτή η προσέγγιση θα επιτρέψει σε έναν αρχάριο προγραμματιστή 1C να μελετήσει πιο αποτελεσματικά τον κατασκευαστή και όλες τις δυνατότητές του. Για παραδείγματα θα χρησιμοποιήσουμε τη διαμόρφωση Λογιστική 3.0.

Μάθημα #1. Το πρόγραμμα δημιουργίας ερωτημάτων είναι η απλούστερη περίπτωση χρήσης.

Εργασία: γράψτε ένα αίτημα στον κατάλογο ονοματολογίας, επιλέξτε ολόκληρη την ονοματολογία του καταλόγου.

Νέες καρτέλες: Πίνακες και πεδία.

Νέοι μηχανισμοί: προβολή και επεξεργασία του κειμένου αιτήματος χρησιμοποιώντας το κουμπί «Αίτηση».

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

Θεωρητικό μέρος του μαθήματος Νο 1

Αυτί Πίνακες και πεδίααποτελείται από τρεις ενότητες:

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

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

  • Ή κάντε διπλό κλικ στον πίνακα.
  • Ή χρησιμοποιήστε τα κουμπιά ">" ή ">>".

Το παραπάνω τμήμα ΠίνακεςΥπάρχουν πολλά κουμπιά. Τα περισσότερα από αυτά θα συζητηθούν με περισσότερες λεπτομέρειες στα επόμενα μαθήματα. Προς το παρόν θα δώσω μόνο σύντομες εξηγήσεις.

  • Δημιουργήστε ένα υποερώτημα(κόκκινη γραμμή). Σχεδιασμένο για τη δημιουργία ενός νέου υποερωτήματος.
  • Δημιουργία προσωρινής περιγραφής πίνακα(κίτρινη γραμμή). Σας επιτρέπει να καθορίσετε το όνομα ενός προσωρινού πίνακα που βρίσκεται εκτός αυτού του ερωτήματος, μπορεί επίσης να χρησιμοποιηθεί για τη μετάδοση ενός πίνακα τιμών στο ερώτημα.
  • Αλλαγή τρέχοντος στοιχείου(πράσινη γραμμή). Σας επιτρέπει να μεταβείτε στο επιλεγμένο δευτερεύον ερώτημα, στον προσωρινό πίνακα ή στην περιγραφή του προσωρινού πίνακα.
  • Αφαιρέστε το τρέχον στοιχείο(μπλε γραμμή). Αφαιρεί τον επιλεγμένο πίνακα από τους επιλεγμένους πίνακες.
  • Αντικαταστήστε τον πίνακα(μπλε γραμμή). Ανοίγει το παράθυρο διαλόγου για την αντικατάσταση του επιλεγμένου πίνακα. Χρήσιμο εάν έχετε επιλέξει λάθος εικονικό πίνακα καταχωρητή, καθώς η τοποθέτηση γίνεται στον τρέχοντα επιλεγμένο πίνακα στη λίστα.
  • Επιλογές εικονικού πίνακα(μωβ γραμμή). Ανοίγει τις παραμέτρους του πίνακα εικονικών καταχωρητών.

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

  • Ή κάντε διπλό κλικ στο πεδίο.
  • Ή χρησιμοποιήστε τα κουμπιά ">" ή ">>".
  • Μπορείτε επίσης να προσθέσετε ένα νέο πεδίο μόνοι σας, χρησιμοποιώντας μια αυθαίρετη έκφραση από τα πεδία επιλεγμένων πινάκων και συναρτήσεων γλώσσας ερωτήματος.

Το παραπάνω τμήμα ΠεδίαΥπάρχουν πολλά κουμπιά. Η δημιουργία πεδίων χρησιμοποιώντας αυθαίρετες εκφράσεις θα συζητηθεί με περισσότερες λεπτομέρειες στα ακόλουθα μαθήματα. Προς το παρόν θα δώσω μόνο σύντομες εξηγήσεις.

  • Προσθέτω(πράσινη γραμμή). Σχεδιασμένο για να προσθέτει ένα νέο πεδίο χρησιμοποιώντας το πρόγραμμα επεξεργασίας ελεύθερης έκφρασης.
  • Αλλαγή τρέχοντος στοιχείου(κόκκινη γραμμή). Σας επιτρέπει να αλλάξετε το επιλεγμένο πεδίο χρησιμοποιώντας το πρόγραμμα επεξεργασίας.
  • Διαγραφή ρεύματος(μπλε γραμμή). Καταργεί το επιλεγμένο πεδίο από τη λίστα.

Πρακτικό μέρος του μαθήματος Νο. 1

Ασχοληθήκαμε με τη θεωρία που είναι απαραίτητη για την ολοκλήρωση της εργασίας που παρέχεται σε αυτό το μάθημα. Επιτρέψτε μου να σας υπενθυμίσω πώς ακούγεται: γράψτε ένα αίτημα στον κατάλογο ονοματολογίας, επιλέξτε ολόκληρη την ονοματολογία του καταλόγου.

Ας ξεκινήσουμε τη δημιουργία ενός αιτήματος για στοιχεία:

  • Ας δημιουργήσουμε ένα νέο αίτημα και ας ανοίξουμε τον κατασκευαστή χρησιμοποιώντας τη μέθοδο που καθορίστηκε στην αρχή του μαθήματος.
  • Στην ενότητα Βάση δεδομένων, ας ανοίξουμε ένα νήμα καταλόγουςκαι θα βρούμε έναν οδηγό εκεί Ονοματολογία;
  • Επιλέξτε το και χρησιμοποιήστε το κουμπί ">" για να το μετακινήσετε στην ενότητα Πίνακες?
  • Στην ενότητα Πίνακεςανοίξτε τον κατάλογο ονοματολογίας χρησιμοποιώντας το εικονίδιο "+".
  • Στη λίστα των πεδίων που ανοίγει, βρείτε το πεδίο Σύνδεσμοςκαι μετακινήστε το στην ενότητα Πεδίαχρησιμοποιώντας το κουμπί ">".
  • Το αίτημα στοιχείου είναι έτοιμο, κάντε κλικ στο κουμπί "OK" στο κάτω μέρος του παραθύρου του σχεδιαστή.

Τα μαζικά ερωτήματα συμπληρώνουν λογικά τη λειτουργικότητα των προσωρινών πινάκων και παρέχουν περισσότερες επιλογές κατά την εργασία με ερωτήματα.

Σε ένα μαζικό ερώτημα, μπορείτε πραγματικά να περιγράψετε πολλά ερωτήματα, τόσο διασυνδεδεμένα με τη χρήση προσωρινών πινάκων όσο και άσχετα (είναι δυνατό, αλλά δεν είναι ξεκάθαρο γιατί;). Ως αποτέλεσμα, μπορείτε να εκτελέσετε όλα τα αιτήματα διαδοχικά και να λάβετε ως αποτέλεσμα είτε έναν πίνακα με τα αποτελέσματα κάθε αιτήματος είτε το αποτέλεσμα του τελευταίου. Για να αποκτήσετε έναν πίνακα με αποτελέσματα ερωτήματος, χρησιμοποιήστε τη μέθοδο ExecuteBatch()αντικείμενο αίτησης και για να λάβετε το αποτέλεσμα του τελευταίου αιτήματος RunQuery().

Στο κείμενο αιτήματος, τα αιτήματα πακέτου διαχωρίζονται με το σύμβολο ";" (άνω τελεία). Υπάρχει μόνο ένας χώρος ονομάτων για εικονικούς πίνακες ανά αίτημα παρτίδας. Η χρήση προσωρινού διαχειριστή πινάκων δεν απαιτείται, αλλά είναι δυνατή εάν θέλετε να μεταβιβάσετε προσωρινούς πίνακες από το ένα ερώτημα παρτίδας στο άλλο.
Code 1C v 8.x ProcessingProcedure (Αποτυχία, Λειτουργία επεξεργασίας)

Request = Νέο αίτημα;
Request.Text = "
|ΕΠΙΛΟΓΗ
| Ονοματολογία, SUM(Quantity) AS Quantity
|Τοποθέτηση DocTCH
|ΑΠΟ
|ΠΟΥ
| Σύνδεσμος = &Σύνδεσμος
|ΟΜΑΔΑ ΑΝΑ Ονοματολογία
|;
|ΕΠΙΛΟΓΗ ΔΙΑΦΟΡΩΝ
| Ονοματολογία
|Τοποθέτηση λίστας προϊόντων
|ΑΠΟ
| Έγγραφο.Αναλώσιμα.Εμπορεύματα
|ΠΟΥ
| Σύνδεσμος = &Σύνδεσμος
|;
|ΕΠΙΛΟΓΗ
| Ονοματολογία,
| Doc.Quantity AS Doc_Quantity,
| ISNULL(Reg.QuantityRemaining,0) AS Reg_Quantity
|ΑΠΟ
| DocTCH AS Έγγρ
| ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ
| RegisterAcumulations.Remains of Goods.Remains(,
| Ονοματολογία Β(ΕΠΙΛΟΓΗ ΔΙΑΦΟΡΩΝ
| Ονοματολογία
| ΑΠΟ
| Κατάλογος προϊόντων AS Κατάλογος προϊόντων)) AS Reg
| ΜΕ
| Doc.Nomenclature = Reg.Nomenclature";

Ενώ Βρόχος Select.Next().
//Έλεγχος αρνητικών υπολοίπων
//Περίβαση από το μητρώο
EndCycle;
Τέλος Διαδικασίας

Στην πραγματικότητα, αφαίρεσα τον ορισμό του αντικειμένου ερωτήματος και τη χρήση του προσωρινού διαχειριστή πινάκων, συνδύασα τα κείμενα ερωτημάτων (σημειώστε το διαχωριστικό «;» μεταξύ των κειμένων). Ως αποτέλεσμα, το κείμενο του ερωτήματος έχει γίνει πιο ευανάγνωστο (και όταν χρησιμοποιείται το εργαλείο δημιουργίας ερωτήματος, η αναγνωσιμότητα του ερωτήματος αυξάνεται σημαντικά).

Μετά την εκτέλεση ενός ερωτήματος σε μια μεταβλητή ArrayResultsθα έχουμε 3 στοιχεία. Τα δύο πρώτα θα περιέχουν έναν αριθμό που χαρακτηρίζει τον αριθμό των εγγραφών που τοποθετούνται στους προσωρινούς πίνακες DocTCH και ListProducts και το τρίτο θα περιέχει μια επιλογή με τα πεδία Ονοματολογία, Doc_Quantity και Reg_Quantity.

Σε μια μεταβλητή Αποτέλεσμα ερωτήματοςμόνο ένα δείγμα θα μπει.

Λοιπόν, αυτά είναι όλα για αιτήματα παρτίδας. Ένας πολύ βολικός μηχανισμός τόσο από την άποψη της σύνταξης ερωτημάτων όσο και από την άποψη της ανάγνωσης πολύπλοκων ερωτημάτων.

Πληροφορίες που λαμβάνονται από τον ιστότοπο

Ένα αίτημα παρτίδας απαιτείται όταν το αίτημα είναι πολύ περίπλοκο για να διατυπωθεί και να γίνει για να λειτουργήσει αποτελεσματικά. Για να κατανοήσετε τι είναι ένα αίτημα παρτίδας, μπορείτε να χρησιμοποιήσετε το ακόλουθο διάγραμμα:

Παρεμπιπτόντως, οι επιλογές ομαδικών ερωτημάτων έγιναν διαθέσιμες μόνο στη λύση 8.1.11.67.4 - επομένως μπορεί να μην γνωρίζετε ακόμη πώς λειτουργεί στην πράξη. Για να το θέσω απλά, αρκεί να δημιουργήσετε μια σειρά από ερωτήματα και να τα συνδέσετε μέσω του συμβόλου ";" Για παράδειγμα:

Το αποτέλεσμα επιστρέφεται μέσω του τελευταίου. Παρεμπιπτόντως, τα ερωτήματα παρτίδας υποστηρίζονται σε κάθε κανονική κονσόλα. Ένα παράδειγμα της εκτέλεσής του μέσω της κονσόλας ερωτημάτων:

Γιατί δεν μπορούμε να κάνουμε χωρίς αιτήματα παρτίδας;

Τοποθετούμε το ενδιάμεσο αποτέλεσμα σε έναν προσωρινό πίνακα και σχεδιάζουμε να το χρησιμοποιήσουμε σε κάποια μελλοντικά ερωτήματα. Χωρίς τη λειτουργία προσωρινού πίνακα, ένα τέτοιο ενδιάμεσο ερώτημα θα πρέπει να επαναληφθεί ξανά. Εάν δεν γνωρίζετε πώς λειτουργεί ένα ερώτημα δέσμης και πώς να το χρησιμοποιήσετε, τότε μπορείτε να εκτελέσετε πολλά ερωτήματα το ένα μετά το άλλο χρησιμοποιώντας δεδομένα από ένθετους πίνακες - αυτό ίσχυε πριν, τώρα δεν χρειάζεται να χάνετε χρόνο σε αυτό, γιατί έχουμε ένα αποτελεσματικό και απλό αίτημα παρτίδας σε 1C. Είναι βολικό, δεν χρειάζεται πλέον να θυμάστε πού πρέπει να βρίσκεται το προσωρινό τραπέζι. Για να ελαχιστοποιήσετε και να επιταχύνετε, χρησιμοποιήστε τις δυνατότητες του συστήματος ελέγχου πρόσβασης. Το σύστημα θα επιλέξει, θα ταξινομήσει, θα τοποθετήσει. Αυτός είναι ο τρόπος με τον οποίο οι προγραμματιστές αυτής της δημοφιλής και αξιόπιστης λύσης τοποθετούν αυτήν την καινοτομία.

Ανακοίνωση παρτίδων αιτημάτων από προγραμματιστές 1C
  • Σημαντική βελτιστοποίηση του προγράμματος στο σύνολό του.
  • Αύξηση της επεκτασιμότητας μιας γνωστής λύσης.
  • Αποτελεσματική απόδοση λόγω της εισαγωγής δυνατοτήτων τοποθέτησης παρτίδων.
  • Απλή και απλή διαχείριση συστήματος.
  • Οι καλύτερες ευκαιρίες για ενοποίηση με άλλες λύσεις.
Ποια είναι η λειτουργία ερωτήματος στην 8.1.11;

Είναι τα ερωτήματα που βελτιώνουν σημαντικά την εργασία με προσωρινούς πίνακες. Η λειτουργικότητα των ερωτημάτων παρτίδας υποδηλώνει ότι οποιοσδήποτε πίνακας που δημιουργείται για ένα συγκεκριμένο ερώτημα από μια παρτίδα λειτουργεί έως ότου το ερώτημα παρτίδας ολοκληρώσει πλήρως τη δράση του ή έως ότου επιτευχθεί μια εντολή για την καταστροφή του. Τώρα μπορείτε να λάβετε και το αποτέλεσμα του πιο πρόσφατου αιτήματος - αυτή θα είναι η εντολή Execute() και μια ολόκληρη σειρά αποτελεσμάτων χρησιμοποιώντας τη μέθοδο ExecutePackage().

Αλγόριθμος για την κατάλληλη δημιουργία ενός αιτήματος παρτίδας

Έτσι, τώρα γνωρίζουμε ότι ένα αίτημα δέσμης είναι πολλά αιτήματα που περιγράφουμε ως ένα γενικό αίτημα. Πρέπει να εκτελούνται το ένα μετά το άλλο. Οποιοδήποτε ενδιάμεσο αποτέλεσμα κατά την εκτέλεση ολόκληρης της αλυσίδας των ερωτημάτων που περιλαμβάνονται μπορεί να τοποθετηθεί σε έναν προσωρινό πίνακα. Με αυτήν τη δομή, κάθε αίτημα μπορεί να έχει πρόσβαση σε αυτά τα ενδιάμεσα δεδομένα. Είναι σημαντικό τα αποτελέσματα οποιουδήποτε ερωτήματος που τοποθετείται σε έναν προσωρινό πίνακα να μπορούν να χρησιμοποιηθούν επανειλημμένα. Σε αυτήν την περίπτωση, δεν χρειάζεται πλέον να καταχωρείτε το ίδιο πράγμα πολλές φορές.

Μειονεκτήματα της μεθόδου

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

Ως αποτέλεσμα, έχουμε έναν πίνακα:

Τώρα χρησιμοποιούμε ένα αίτημα παρτίδας, θυμηθείτε ότι χρειαζόμαστε ένα ερωτηματικό για αυτό, παίρνουμε:

Σημειώστε ότι το 3ο αίτημα συνδύασε τα αποτελέσματα των δύο πρώτων, ας δούμε τι συνέβη:

Τώρα ας προσπαθήσουμε να προσθέσουμε ομορφιά και να αλλάξουμε ελαφρώς το κείμενο για το 3ο αίτημα, ως εξής:

Τώρα έχουμε αυτό:

Το μόνο που μένει είναι να συνδυάσουμε τις στήλες με την Ονοματολογία και να βάλουμε μηδενικά στα κενά κελιά.



Ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: