Παρασκευή 20 Νοεμβρίου 2015

Απλή βάση δεδομένων με SQL ερώτημα (Μ2000)

Στη Μ2000 μπορούμε να φτιάχνουμε βάσεις δεδομένων.

Με τον απλό τρόπο:

Κ$="βαση1"
ΒΑΣΗ Κ$
ΤΥΠΩΣΕ "ΕΦΤΙΑΞΑ ΝΕΑ ΒΑΣΗ"
ΤΥΠΩΣΕ "ΣΤΟΝ ΚΑΤΑΛΟΓΟ "+ΚΑΤ$
\\ Φτιάχνουμε ένα αρχείο μέσα στη βάση με πεδία
ΑΡΧΕΙΟ Κ$, "ΛΟΓΑΡΙΑΣΜΟΙ", "ΚΩΔ", ΜΑΚΡΥΣ, 0, "ΤΙΤΛΟΣ", ΚΕΙΜΕΝΟ, 40, "ΠΡΟΣΗΜΟ", ΚΕΙΜΕΝΟ, 1
\\ Ορίζουμε τάξη
ΤΑΞΗ Κ$, "ΛΟΓΑΡΙΑΣΜΟΙ", "ΤΙΤΛΟΣ",ΑΥΞΟΥΣΑ
\\ Τώρα θα βάλουμε στοιχεία
ΣΩΡΟΣ ΝΕΟΣ {
      ΣΕΙΡΑ "ΒΕΝΖΙΝΕΣ","-","ΑΓΟΡΕΣ ΥΛΙΚΩΝ" ,"-", "ΑΤΟΜΙΚΑ", "-", "ΜΙΣΘΟΙ", "-", "ΕΞΩΤΕΡΙΚΑ", "+", "ΚΑΤΑΘΕΣΗ", "-", "ΑΝΑΛΗΨΗ", "+", "*", "*"
      ΔΙΑΒΑΣΕ Α$,Β$
      Κ=1
      ΕΝΩ Α$<>"*" {
            ΠΡΟΣΘΗΚΗ Κ$, "ΛΟΓΑΡΙΑΣΜΟΙ", Κ,Α$, Β$
            ΔΙΑΒΑΣΕ Α$,Β$
            Κ++
      }
}
Κ--
ΤΥΠΩΣΕ ΜΟΡΦΗ$("ΕΒΑΛΑ {0} ΛΟΓΑΡΙΑΣΜΟΥΣ", Κ)
\\ τώρα διαβάζουμε με σειρά ταξινόμησης
ΓΙΑ Ι=1 ΕΩΣ Κ
ΣΩΡΟΣ ΝΕΟΣ {
      ΑΝΑΚΤΗΣΗ Κ$, "ΛΟΓΑΡΙΑΣΜΟΙ", Ι,"",""
      ΔΙΑΒΑΣΕ ΠΟΣΑ, ΚΩΔ, ΤΙΤ$, ΠΡΟ$
      ΤΥΠΩΣΕ ΠΟΣΑ, ΚΩΔ, ΤΙΤ$,@(ΣΤΗΛΗ(4)), ΠΡΟ$
}
ΕΠΟΜΕΝΟ Ι







Με την εντολή ΕΚΤΕΛΕΣΗ που δίνουμε εντολή SQL για να δημιουργήσει πίνακα  (προχωρημένο θέμα).

ΒΑΣΗ "ΑΛΦΑ"  ' ΔΙΑΓΡΑΦΟΥΜΕ ΑΝ ΒΡΟΥΜΕ ΤΟ ΟΝΟΜΑ
ΕΚΤΕΛΕΣΗ "ΑΛΦΑ", { CREATE TABLE Employees(ID autoincrement primary key,  LastName   VARCHAR(40) ,  FirstName  VARCHAR(40)  NOT NULL, MyMemo TEXT )}
ΠΡΟΣΘΗΚΗ "ΑΛΦΑ","Employees",,"George","йваоаптаЭЭ","Γεια χαρά από Ελλάδα"
ΑΝΑΚΤΗΣΗ "ΑΛΦΑ", "Employees", 1,"",""
ΔΙΑΒΑΣΕ ΠΟΣΑ, ΑΝΑΓΝΩΡΙΣΤΙΚΟ, ΕΠΙΘΕΤΟ$, ΟΝΟΜΑ$, ΣΤΟΙΧΕΙΑ$
ΤΥΠΩΣΕ $(4, 6),  "Βάση:","ΑΛΦΑ"
ΤΥΠΩΣΕ  "ΟΝΟΜΑ:",ΟΝΟΜΑ$ + " " + ΕΠΙΘΕΤΟ$
ΤΥΠΩΣΕ "ΣΤΟΙΧΕΙΑ:"
ΤΥΠΩΣΕ "",
ΑΝΑΦΟΡΑ ΣΤΟΙΧΕΙΑ$
ΚΛΕΙΣΕ ΒΑΣΗ "ΑΛΦΑ"
ΤΥΠΩΣΕ



΄
Εκτός από αρχεία στο δίσκο μπορούμε να ανοίξουμε αρχεία μέσω ODBC ή άλλων παρόχων!
Η διαφορά είναι στο όνομα. Αντί να δώσουμε ένα όνομα όπως επάνω το ΑΛΦΑ που είναι ένα αρχείο ΑΛΦΑ.MDB, δίνουμε το (έναόνομα). Ο διερμηνευτής αναγνωρίζει τις παρενθέσεις και χρησιμοποιεί τον πάροχο βάσης.
Πρέπει να προετοιμάσουμε στη φόρμα των Windows για τις βάσεις ODBC, το testme, που θα συνδέει μια βάση με ένα όνομα χρήστη και ένα κωδικό, καθώς και αν χρειάζεται ένα κωδικό κρυπτογράφησης της βάσης.
ΒΑΣΗ.ΠΑΡΟΧΟΣ  "dsn=testme;Uid=root;Pwd=alfa;", "ODBC","κωδικόςκρυπτογράφησης"
όνομα.βάσης$ ="(έναόνομα)"



άλλος πάροχος βάσης:ΒΑΣΗ.ΠΑΡΟΧΟΣ  "Microsoft.Jet.OLEDB.4.0", "Jet OLEDB", "PASSWORD"
ΒΑΣΗ.ΠΑΡΟΧΟΣ "Microsoft.ACE.OLEDB.12.0","Jet OLEDB"

Επαναφορά στο βασικό:
ΒΑΣΗ.ΠΑΡΟΧΟΣ ""

Υπάρχει και ξεχωριστή εντολή για χρήστη βάσης:
ΒΑΣΗ.ΧΡΗΣΤΗΣ "dbusername","dbpassword"
Όλες οι εντολές για τις βάσεις είναι εδώ:
ΑΝΑΖΗΤΗΣΗ, ΑΝΑΚΤΗΣΗ, ΑΡΧΕΙΟ, ΑΦΑΙΡΕΣΗ, ΒΑΣΗ, ΒΑΣΗ.ΠΑΡΟΧΟΣ, ΒΑΣΗ.ΧΡΗΣΤΗΣ, ΔΕΙΞΕ, ΔΟΜΗ, ΕΚΤΕΛΕΣΗ, ΕΠΙΣΤΡΟΦΗ, ΠΡΟΣΘΗΚΗ, ΣΥΜΠΙΕΣΗ, ΤΑΞΗ

Και στα αγγλικά:
APPEND, BASE, COMPRESS, DB.PROVIDER, DB.USER, DELETE, EXECUTE, ORDER, RETRIEVE, RETURN, SEARCH, STRUCTURE, TABLE, VIEW

Εδώ είναι ένα πρόγραμμα που παίρνει την βοήθεια του προγράμματος, βγάζει τα αγγλικά κείμενα και τα βάζει σε ένα έγγραφο του Word. (Θα το μεταφράσω και θα το κάνω να βγάζει τα ελληνικά κείμενα, η βοήθεια έχει και τα δύο)


Flush
Data 24
Data 22,"ΓΕΝΙΚΑ, GENERAL"
Data 14,"ΔΙΕΡΜΗΝΕΥΤΗΣ, INTERPRETER"
Data 15,"ΧΕΙΡΙΣΜΟΣ ΤΜΗΜΑΤΩΝ, MODULE'S COMMANDS"
Data 3,"ΡΟΗ ΠΡΟΓΡΑΜΜΑΤΟΣ, FLOW CONTROL"
Data 9,"ΣΩΡΟΣ, STACK"
Data 7,"ΟΡΙΣΜΟΙ, DEFINITIONS"
Data 25,"ΕΓΓΡΑΦΑ, DOCUMENTS"
Data 11,"ΧΕΙΡΙΣΜΟΣ ΑΡΧΕΙΩΝ, FILE OPERATIONS"
Data 8,"ΦΟΡΜΑ ΟΘΟΝΗΣ, SCREEN FORM"
Data 16,"ΟΘΟΝΗ & ΑΡΧΕΙΑ, SCREEN & FILES"
Data 24,"ΧΕΙΡΙΣΤΕΣ ΤΗΣ ΤΥΠΩΣΕ, OPERATORS IN PRINT"
Data 13,"ΣΤΟΧΟΙ & ΕΠΙΛΟΓΗ, TARGET & MENU"
Data 1,"ΓΡΑΦΙΚΑ 2Δ, DRAWING 2D"
Data 4,"ΕΙΚΟΝΕΣ, BITMAPS"
Data 2,"ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ, DATABASES"
Data 5,"ΗΧΟΙ & ΤΑΙΝΙΕΣ, SOUNDS AND MOVIES"
Data 6,"ΔΕΙΚΤΗΣ, MOUSE"
Data 10,"ΙΣΤΟΣ, BROWSER"
Data 12,"ΚΟΙΝΕΣ ΦΟΡΜΕΣ, COMMON DIALOGS"
Data 19,"ΑΡΙΘΜΗΤΙΚΑ, ARITHMETIC FUNCTIONS"
Data 20,"ΑΛΦΑΡΙΘΜΗΤΙΚΑ, STRING FUNCTIONS"
Data 21,"ΜΕΤΑΒΛΗΤΕΣ ΣΥΣΤΗΜΑΤΟΣ, VARS READ ONLY"
Data 23,"ΣΤΑΘΕΡΕΣ, CONSTANTS"
Data 17,"ΕΚΤΥΠΩΣΕΙΣ, PRINTINGS"
            read myGroups
            Dim No(myGroups+1), Name$(myGroups+1)
            for i=1 to myGroups {
                  Read No(i), name$(i)
            }
document GreekInfo$, EnglishInfo$, GroupInfo$, AllGreek$, AllEnglish$
declare alfa "Word.Application"
declare doc use alfa, "Documents"
With alfa, "visible" as alfa.visible
try ok { alfa.visible=true }
if not ok then {
there1:
      declare doc nothing : declare alfa nothing
      Print "Can't open word document"
      break
} else {
      try ok_doc { method doc, "add" as doc1 }
       if not ok_doc then goto there1
}
try { \\ without variable to check
            method doc1, "activate"
            declare global selection use alfa, "selection"  \\ now we can make a selection
}


Dir APPDIR$
      For i=1 To myGroups {
           EnglishInfo$= RightPart$(name$(i),", ")
           GreekInfo$= LeftPart$(name$(i),", ")
           GreekInfo$={
           }
           EnglishInfo$={
           }
            method selection, "TypeText", EnglishInfo$
            Retrieve "HELP2000", "SELECT * FROM COMMANDS WHERE GROUPNUM ="+Str$(No(i)),1,"",""
            Read mywords
            IF no(i)<>22 Then {
            For j=1 To mywords {
                  retrieve  "HELP2000", "SELECT * FROM COMMANDS WHERE GROUPNUM ="+Str$(No(i))+" ORDER BY [ENGLISH]",j,"",""        \\USE BY DESCRIPTION FOR GREEK
                  read mywords
                  Read GreekName$, HelpText$, EnglishName$, groupnumFrom
                  method selection, "TypeText", EnglishName$
                  method selection, "TypeText", RightPart$(HelpText$,"__<ENG>__")
                  method selection, "TypeText", {
                  }
                  if mywords=j Then {
                        EnglishInfo$= EnglishName$
                   } Else {
                         EnglishInfo$= EnglishName$+", "
                   }
            }
         AllGreek$=GreekInfo$+{
         
         }
         AllEnglish$=EnglishInfo$+{
         
         }
         GroupInfo$=GreekInfo$+{
         __<ENG>__
         }+EnglishInfo$+{
        
         }
         print RightPart$(name$(i),", ")
         Clear GroupInfo$
         }
         Clear GreekInfo$
         Clear EnglishInfo$
        
      }  
      AllGreek$={
      __<ENG>__
      } + AllEnglish$
Print "DONE"
Flush
try {
      declare selection nothing : declare doc1 nothing
      }
try {
      declare doc nothing : declare alfa nothing

      }
 

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

You can feel free to write any suggestion, or idea on the subject.